3960 lines
185 KiB
HTML
3960 lines
185 KiB
HTML
<html>
|
|
<head>
|
|
<title>Ansicht Verwaltungs</title>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
<meta http-equiv="content-type" content="text/html; charset=utf-8">
|
|
<meta name="author" content="Stefan Pichel">
|
|
|
|
<link rel="stylesheet" type="text/css" href="css/bestformat.css?v=1.4.13">
|
|
|
|
<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/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.mobile-1.4.5.min.js"></script>
|
|
<script src="utilities.js"></script>
|
|
<script src="elements/tablemap.js"></script>
|
|
<script src="elements/roommap.js"></script>
|
|
<script src="elements/groundplan.js"></script>
|
|
|
|
<link href="php/3rdparty/hayageek_uploadfile.css" rel="stylesheet">
|
|
<script src="php/3rdparty/hayageek_jquery_uploadfile.js"></script>
|
|
|
|
<style>
|
|
@media all
|
|
{
|
|
.printpart {display: none;}
|
|
}
|
|
@media print
|
|
{
|
|
.printpart {display: inline;};
|
|
}
|
|
@media print
|
|
{
|
|
.noprint {display: none;};
|
|
}
|
|
</style>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
<script>
|
|
|
|
var MAN_CANCEL = ["Abbrechen","Cancel","Cancelar"];
|
|
var MAN_APPLY = ["Anwenden","Apply","Aplicar"];
|
|
var MAN_ACCOUNT_EXPORT = ["Abrechnung und Datenexport","Accounting and Data Export","Calculo y export de datos"];
|
|
var MAN_CLOSING = ["Tagesabschluss","Closing","Conclusión"];
|
|
var MAN_CLOSING2 = ["Tageslosung ","Closing ","Conclusión "];
|
|
var MAN_INFO_ACCOUNT_EXPORT = ["Hier finden sich die Menüpunkte zum Tagesabschluss oder Datenexport.",
|
|
"Here you can handle the closings and the data export.",
|
|
"Aquí hay los punto para administrar las conclusiones y el export de datos"];
|
|
var MAN_USER = ["Benutzer","Users","Usarios"];
|
|
var MAN_CONFIG = ["Konfiguration","Configuration","Configuración"];
|
|
var MAN_DB = ["Datenbank","Data base","Base de datos"];
|
|
var MAN_NEW_USER = ["Neuer Benutzer","New user","Nuevo usario"];
|
|
var MAN_NEW_ROLE = ["Neue Rolle","New Role","Nuevo Derechos"];
|
|
var MAN_ROLE = ["Rolle","Role","Derechos"];
|
|
var MAN_ROLE_NAME = ["Name","Name","Nombre"];
|
|
var MAN_ROLES = ["Rollen","Rolen","Derechos"];
|
|
var MAN_ADMIN = ["Administrator","Administrator","Administrador"];
|
|
var MAN_WAITER = ["Kellner","Waiter","Camarero"];
|
|
var MAN_KITCHEN = ["Küche","Kitchen","Cocina"];
|
|
var MAN_BAR = ["Bar","Bar","Bar"];
|
|
var MAN_SUPPLY = ["Bereitstellung","Supplydesk","Preparados"];
|
|
var MAN_PAYDESK = ["Kasse","Paydesk","Caja"];
|
|
var MAN_STAT = ["Statistik","Statistics","Estadisticas"];
|
|
var MAN_BILLS = ["Kassenbons","Receipts","Tiques"];
|
|
var MAN_PRODUCTS = ["Angebot","Products","Productos"];
|
|
var MAN_RESERVATION = ["Reservierung","Reservation","Reserva"];
|
|
var MAN_RATING = ["Bewertung","Rating","Valoración"];
|
|
var MAN_CHANGEPRICE = ["Preisänderung während Bestellung","Change price during ordering","Modificar precio durante ordenar"];
|
|
var MAN_CUSTOMERS = ["Gäste","Guests","Clientes"];
|
|
var MAN_MANAGER = ["Verwaltung","Administration","Administración"];
|
|
var MAN_CLOSINGRIGHT = ["Tageserfassung","Closing","Cerrar día"];
|
|
var MAN_DASHRIGHT = ["Dashboard","Dashboard","Dashboard"];
|
|
var MAN_USER_NAME = ["Benutzername","User name","Nombre de usario"];
|
|
var MAN_USER_PASS = ["Passwort","Password","Contraseña"];
|
|
var MAN_YES = ["Ja","Yes","Si"];
|
|
var MAN_NO = ["Nein","No","No"];
|
|
var MAN_CREATE = ["Erstellen","Create","Crear"];
|
|
var MAN_CREATE_WITH_REC = ["... mit Bon","... with receipt","... con tiquet"];
|
|
var MAN_CREATE_WITHOUT_REC = ["... ohne Bon","... without receipt","... sin tiquet"];
|
|
|
|
var MAN_SPEISEKARTE = ["Speisekarte","Menu","Menú"];
|
|
var MAN_ROOMPLAN = ["Raumplan","Plan of rooms","Mapa de espacio"];
|
|
var MAN_DATAEXPORT = ["Datenexport","Data export","Grabar datos"];
|
|
var MAN_CLOSINGDET_TXT = ["Hier können Sie die seit dem letzten <i>Abschluss</i> getätigten neuen Transaktionen zu einem neuen Abschluss führen. Anschließend sind alle bis zu diesem Zeitpunkt erstellten Transaktionen/Kassenbons nicht mehr stornierbar!",
|
|
"Here you can create a closing of all new transactions since the last closing. All transactions that are part of a closing cannot be cancelled later on.",
|
|
"En este parte se puede cerrar todas las transacciones despues de la última cerramiento. Después las transacciones cerradas no se puede anular ya no."];
|
|
var MAN_MONTH = ["Monat:","Month:","Mes:"];
|
|
var MAN_JAN = ["Januar","January","Enero"];
|
|
var MAN_FEB = ["Februar","February","Febrero"];
|
|
var MAN_MAR = ["März","March","Marzo"];
|
|
var MAN_APR = ["April","April","Abril"];
|
|
var MAN_MAY = ["Mai","May","Mayo"];
|
|
var MAN_JUN = ["Juni","June","Junio"];
|
|
var MAN_JUL = ["Juli","July","Julio"];
|
|
var MAN_AUG = ["August","August","Agosto"];
|
|
var MAN_SEP = ["September","September","Septiembre"];
|
|
var MAN_OCT = ["Oktober","October","Octubre"];
|
|
var MAN_NOV = ["November","November","Noviembre"];
|
|
var MAN_DEC = ["Dezember","December","Diciembre"];
|
|
var MAN_CLOSING_INCOME = ["Tageseinnahme","Day takings","Ingreso diario"];
|
|
var MAN_CLOSING_INCOME_CASH = ["Bareinnahme","Cash day takings","Ingreso diario de contado"];
|
|
var MAN_CLOSING_DET_TXT = ["Ein Export im CSV-Format lässt sich mit Tabellenverarbeitungs-Programmen wie beispielsweise Excel verarbeiten.",
|
|
"An export in the format CSV can be used in spreadsheet applications like Excel.",
|
|
"Una grabación en el formato CSV se puede usar con programas como Excel."];
|
|
var MAN_CSV_EXP_RECEIPTS = ["CSV-Export Bons","CSV export of Receipts","Grabar tiques en CSV"];
|
|
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"];
|
|
|
|
var MAN_ID = ["Bon-ID","ID","Nú."];
|
|
var MAN_DATE = ["Zahlungsdatum","Pay date","Fecha de pago"];
|
|
var MAN_PROD = ["Produkt","Product","Producto"];
|
|
var MAN_BRUTTO = ["Bruttopreis","Gross","Bruto"];
|
|
var MAN_NETTO = ["Nettopreis","Net","Neto"];
|
|
var MAN_MWST = ["MwSt (%)","Tax (%)","IVA (%)"];
|
|
var MAN_PAYWAY = ["Zahlungsart","Method of payment","Modo de pago"];
|
|
var MAN_USER_ID = ["Benutzer-ID","User id","Id del usario"];
|
|
var MAN_STATE = ["Status","State","Estado"];
|
|
var MAN_REF = ["Referenz-Bon-ID","Reference Receipt id","Tique referenciado"];
|
|
var MAN_CHANGE = ["Ändern","Change","Modificar"];
|
|
var MAN_CONFIG_CHANGED = ["Konfiguration geändert","Configuration saved","Configuración modificado"];
|
|
var MAN_CONFIG_CHANGE_ERROR = ["Falsches Zahlenformat oder Serverproblem","Error","Error"];
|
|
|
|
var MAN_DATEXPDETTXT = ["Hier können Sie eine csv-Datei erzeugen lassen, die <ul><li>alle abgerechneten und in Tagesabschlüssen enthaltenen Bonabrechungen im unten auswählbaren Zeitraum beinhaltet.</li><li>alle Stammdaten (Produkte) und deren Änderungen seit der Installation aufführt.</li></ul>",
|
|
"In this control field you can create a csv file with <ul><li>all receipts transactions of the specified period that are part of a closing.</li><li>all product data and their changes in history since the installation.</li></ul>",
|
|
"En esta parte se puede crear un fichero con <ul><li>todos los tiques en un período que estan ya cerrados.</li><li>todos los productos y sus modificaciones desde la instalación."];
|
|
var MAN_ROOM_LABEL = ["Räume","Rooms","Espacios"];
|
|
var MAN_TABLE_LABEL = ["Tische","Tables","Mesas"];
|
|
var MAN_TABLE_TXT = ["Tisch","Table","Mesa"];
|
|
var MAN_LANG_OF_RECEIPT = ["Bonsprache","Receipt language","Idioma de tique"];
|
|
var MAN_PRINT_CONCEPT = ["Druckkonzept","Print concept","Concepto de impresión"];
|
|
var MAN_PAYMENT_CONFIG = ["Menü Zahlungsweg","Menu Payment Type","Selección tipo de pagar"];
|
|
var MAN_ADD_RECPRINTER = ["Kassenbon zusätzlich auf","Receipt additionally on","Imprimir tiques también a"];
|
|
var MAN_WORKFONT_CONFIG = ["Arbeitsbon Schriftgröße","Font size work receipt","Tamaño de letras en tiques de trabajo"];
|
|
var MAN_PROMINENT_SEARCH = ["Prominente Produktsuche","Prominent Product search","Buscar de productos ariba"];
|
|
var MAN_DISCOUNT1 = ["Rabatt 1 (%)","Discount 1 (%)","Descuento 1 (%)"];
|
|
var MAN_DISCOUNT2 = ["Rabatt 2 (%)","Discount 2 (%)","Descuento 2 (%)"];
|
|
var MAN_DISCOUNT3 = ["Rabatt 3 (%)","Discount 3 (%)","Descuento 3 (%)"];
|
|
var MAN_AUSTRIA = ["Österreich","Austria","Austria"];
|
|
var MAN_DIGI_GOPAY_SET_READY = ["Bestell-Kassenbutton deklariert Produkte 'fertig'","Waiter's paydesk button declares products be served","Boton caja en vista de camarero pone declara productos servidos"];
|
|
var MAN_DIGI_GOPAY_DESCR = ["Im Arbeitsablauf 'nur digital' bestimmt diese Einstellung, ob bei Druck auf den Button 'Kasse' in der Bestellansicht mit anschließender Bezahlung die Produkte als serviert behandelt werden sollen.",
|
|
"In the 'only digital' workflow this setting specifies if after pressing the 'paydesk' button in the waiter's view and paying the products shall be handled as served.",
|
|
"En el modus 'digital' este boton especifica si los productos deben declarados como servidos despues pagar por click en el boton 'caja' en la vista de camarero."];
|
|
var MAN_WAITER_GOPAY_PRINT = ["Bestell-Kassenbutton druckt Arbeitsbons","Waiter's paydesk button prints also work receipts","Boton caja en vista de camarero imprime también tiquets de trabajo"];
|
|
var MAN_ONE_PROD_WORKREC_F = ["Nur ein Produkt pro Speise-Arbeitsbon","Max. one product on a food work receipt","Sólo un producto en un tique de trabajo (comidas)"];
|
|
var MAN_ONE_PROD_WORKREC_D = ["Nur ein Produkt pro Getränke-Arbeitsbon","Max. one product on a drink work receipt","Sólo un producto en un tique de trabajo (bebidas)"];
|
|
var MAN_DIGI_PRINTWORK = ["Arbeitsbons in Küchen-/Baransicht","Work receipts in kitchen/bar view","Tiques de trabajo en modulo de cocina"];
|
|
var MAN_DIGI_PRINTWORK_HINT = ["Sollen Arbeitsbon erstellt werden, wenn in der Küchen-/Baransicht Produkte als zubereitet markiert werden?",
|
|
"Shall work receipts be printed if products are declared cooked in the kitchen or bar view?",
|
|
"Imprimir tiques de trabajo si productos estan declarados cocinados en el module cocina or bar?"];
|
|
var MAN_PRINT_AND_QUEUE_HINT = ["Wird dieser Wert auf 'ja' gesetzt, so werden die Druckaufträge im digitalen Workflow zusätzlich auf Arbeitsbons ausgedruckt.",
|
|
"If this setting is set to 'yes' in the digital workflow the orders are additionally printed.",
|
|
"Si el valor esta 'si', orders van a ser imprimidos también en el modo digital."];
|
|
var MAN_CASH_HINT = ["Die Kassen kann mit dieser Einstellung übergangen werden (Einstellung: nein). Jede Bestellung wird dann sofort mit der Übermittlung an den Server als als bar bezahlt deklariert.",
|
|
"The cash function can be skipped ('no'). In this case every order will be declared as paid by cash automatically.",
|
|
"Si configurado a 'no', cada ordern va a ser declarada pagada."];
|
|
var MAN_RETURN_TO_ORDER_HINT = ["Wird der Wert auf 'ja' gesetzt, so wechselt die Desktopansicht automatisch wieder in den Bestellmodus über, nachdem ein ausgewählter Tisch komplett abgerechnet oder im Kassenmodus auf einen leeren Tisch geklickt wurde.",
|
|
"If this value is set to 'true' the mode of the desktop view automatically returns to the ordering after all products of the selected table are marked paid or an empty table was selected.",
|
|
"Si es 'si' el modus vuelve a ordenar despues de declarar todos los productos de la mesa estado pagado o si el usario ha seleccionado una mesa vacia."];
|
|
var MAN_WAITER_GOPAY_DESCR = ["Im Arbeitsablauf 'nur Arbeitsbons' bestimmt diese Einstellung, ob bei Druck auf den Button 'Kasse' Arbeitsbons gedruckt werden sollen.",
|
|
"In the 'only work receipts' workflow this setting specifies if after pressing the 'paydesk' button in the waiter's view work receipts shall be printed.",
|
|
"En el modus 'solo tiques de trabajar' este boton especifica se debe imprimido el tique de trabajar despues el click en el boton 'caja' en la vista de camarero."];
|
|
var MAN_ADD_RECPRINTER_DESCR = ["Wird hier ein weiterer Drucker angegeben, so werden alle Kassenbons beim Druck über die Kassenansicht zusätzlich auf diesem Drucker ausgedruckt.",
|
|
"If a printer is set every print job that is invoked on the paydesk view will be printed also on the specified printer",
|
|
"Si esta seleccionado una imprimadora aquí cada tiquet va a ser imprimido en la imprimidora también"];
|
|
var MAN_GROUP_WORK_ITEMS_F = ["Artikelzus.fass. Speise-Arbeitsbons","Summary articels on food work receipt", "Agrupación articulos tique d. tr. (comidas(" ];
|
|
var MAN_GROUP_WORK_ITEMS_D = ["Artikelzus.fass. Getränke-Arbeitsbons","Summary articels on drink work receipt", "Agrupación articulos tique d. tr. (bebidas)" ];
|
|
var MAN_RES_NOTE = ["Reservierungsbestätigung","Confirmation reservation","Text de email para reservación"];
|
|
var MAN_CHANGE_CONFIG_HEAD = ["Konfiguration ändern?","Change configuration?","Modificar configuración?"];
|
|
var MAN_CHANGE_CONFIG_CONTENT = ["Sollen folgende Werte geändert werden? ","Do you want to change these values? ","Debe ser cambiado estos datos? "];
|
|
|
|
var MAN_RECEIPT_FONTSIZE = ["Schriftgröße Bon (Bildschirm)","Font size receipt (screen)","Tamaño de letra en tiques (pantalla)"];
|
|
var MAN_EMAIL_DATA = ["Email senden","Send email","Enviar email"];
|
|
var MAN_EMAIL_WRONG_FORMAT = ["Keine gültige Email-Adresse angegeben.","No valid email address.","Dirección de email invalida."];
|
|
var MAN_EMAIL_EMPTY = ["Keine Email-Adresse angegeben.","No email address given.","No hay ningún dirección de email."];
|
|
var MAN_HOSTTEXT_TXT = ["Vorlage Bewirtungsbeleg","Template Host Area","Bewirtungsbeleg"];
|
|
var MAN_EMAIL_SENDER_TXT = ["Email-Absender:","Email sender:","Remitente de email:"];
|
|
var MAN_DEFAULT_EMAIL_TO = ["Standard-Email-Empfänger:","Standard email receiver","Destinario estandard de emails"];
|
|
var MAN_NEW_VERSION_AVAIL = ["Neue Version verfügbar", "New version available", "Hay una versión nueva"];
|
|
var MAN_BAK_REST_INFO = ['Die Datensicherung sichert die aktuelle Konfiguration. Beim Import kann diese wieder zurückimportiert '
|
|
+ 'werden. Dabei werden alle anderen Daten gelöscht.<br><br>',
|
|
'The backup functionality saves the current configuration. With the import functionality the configuration can be re-imported. '
|
|
+ 'During the import all other data is deleted.<br><br>',
|
|
'Exportar guarda la configuración. Con "Importar" la configuración se puede re-importado. '
|
|
+ 'Durante la importación todo el resto de los datos va a ser borrado.'];
|
|
var MAN_BAK_REST_INFO_ALL = ['Die Datensicherung kann auch die gesamte Datenbank sichern. Beim Import kann diese wieder zurückimportiert '
|
|
+ 'werden. Die Aktionen werden protokolliert und sind für Betriebsprüfer einsehbar.<br><br>',
|
|
'The backup functionality can also save the complete data base. With the import functionality the data can be re-imported. '
|
|
+ 'All actions are logged and can be controlled by authorized people.<br><br>',
|
|
'Exportar puede guarda la base de datos completamente. Con "Importar" este data se puede re-importado. '
|
|
+ 'Las acciones estan escritos en un log.'];
|
|
var MAN_REST_INFO = ["Der Import dauert eine Weile...","The import takes a while...","Importar necesita un rato..."];
|
|
var MAN_BAK_REST_HEAD = ["Sicherung und Import","Backup and Restore","Exportar y Importar"];
|
|
var MAN_BAK_BTN = ["Sicherung (Konfiguration)","Backup (Configuration)","Exportar (configuración)"];
|
|
var MAN_BAK_GUEST_BTN = ["Sicherung (Konfiguration + Gäste)","Backup (Configuration + guests)","Exportar (configuración y clientes)"];
|
|
var MAN_BAK_BTN_ALL = ["Sicherung (Alles ohne Logs)","Backup (all without logs)","Exportar (todo sin protocolo)"];
|
|
var MAN_BAK_BTN_ALL_LOGS = ["Sicherung (Alles mit Logs)","Backup (all with logs)","Exportar (todo y protocolo)"];
|
|
var MAN_BAK_FTP_ALL = ["FTP-Sicherung (Alles ohne Logs)","Ftp backup (all without logs)","Ftp (todo sin protocolo)"];
|
|
var MAN_UPDATE_HEAD = ["Versionsupdate","Version update","Actualizar la versión"];
|
|
var MAN_CHECK_UPDATE_BTN = ["Update starten","Start update","Empezar actualizar"];
|
|
var MAN_UPDATE_HINT = ["Das Updaten über diesen Weg funktioniert nur, wenn die Dateien im Webverzeichnis beschreibbar sind und eine Verbindung zum OrderSprinter-Webserver besteht.",
|
|
"This update function only works if the files in the web directory are not write-protected and if a internet connection to the OrderSprinter webserver is available.",
|
|
"Esta función the actualizar solo funciona si los ficheros no sin protegidos de escribirt y si hay una conección al servidor de OrderSprinter por Internet."];
|
|
var MAN_UPDATE_URL = ["Updateserver","Update Server","Servidor"];
|
|
var MAN_AVAIL_UPD_VERSION = ["Neueste verfügbare Version","Newest released version","ùltima version"];
|
|
var MAN_UPD_PROGRESS = ["Fortschritt","Progress","Progreso"];
|
|
var MAN_GO_LIVE = ["Starte Produktivbetrieb","Start productive mode","Empezar trabajar realmente"];
|
|
var MAN_SHUTDOWN = ["Server herunterfahren","Shutdown server","Apagar servidor"];
|
|
var MAN_SHUTDOWN_HINT = ["(Herunterfahren nur möglich, wenn Webserver die erforderlichen Rechte besitzt).",
|
|
"(Shutdown only possible if web server has the required privileges to do so.)",
|
|
"(Apagar el servidor sólo es posible si webserver tiene el derecho para hacerlo.)"];
|
|
var MAN_OPTIMIZE = ["Datenbank optimieren","Optimize database","Arreglar base de datos"];
|
|
var MAN_OPTIMIZE_HINT = ["Beim Optimieren der Datenbank werden Haupttabellen aufgeräumt. Dieser Prozess kann bei einer großen Datenbank etwas Zeit in Anspruch nehmen. Die Optimierung sollte immer dann vorgenommen werden, wenn die Server-Geschwindigkeit abgenommen hat.",
|
|
"Optimize data base means that the main tables are cleaned. This process may take a while for big databases. The optimization should always be executed in ase the server's performance has worsened.",
|
|
"La arreglación de la base de datos es para mejorar la velocidad del servidor. El proceso puede durar un poco."];
|
|
var MAN_UPLOAD_LOGO = ["Logo-Datei hochladen","Upload Logo image","Leer imagen de logo"];
|
|
var MAN_NO_LOGO_BTN = ["Kein Logo","No logo","No imagen"];
|
|
var MAN_WORKFLOW = ["Arbeitsablauf","Workflow","Modo de trabajar"];
|
|
var MAN_WORKFLOW_BOTH = ["Digital und Arbeitsbons","Digital and work receipts","Digital y tiques de trabajar"];
|
|
var MAN_WORKFLOW_ONLY_DIGI = ["Nur digital","Only digital","Solo digital"];
|
|
var MAN_WORKFLOW_ONLY_WR = ["Nur Arbeitsbons","Only work receipts","Solo tiques de trabajar"];
|
|
var MAN_WORKFLOW_WR_AND_TRANSFER = ["Arbeitsbons mit Serverübermittlung", "Work receipts and server transmit","Tiques de trabajar y enviar a servidor"];
|
|
var MAN_WORKFLOW_WR_AND_TRANSFER_HLP = ["Hinweis: 'Arbeitsbons mit Serverübermittlung': In der Bestellansicht werden die Artikel bei Druck auf 'Bestellung senden' an den Server übermittelt, durchlaufen aber nicht die Ansichten Küche/Bar und Bereitstellung und es wird in diesem Fall kein Arbeitsbon gedruckt.",
|
|
"Hint: 'Work receipts and server transmit': In the waiter's view the orders can be sent to the server without printining a work receipt. In this case the items won't pass the modules kitchen/bar and supplydesk.",
|
|
"Información: 'Tiques de trabajar y enviar a servidor': El camarero puede enviar las ordenes al servidor sin imprimir un tique de trabajo."];
|
|
var MAN_RECTEMPLATE_HINT = ["Hinweis: Die Anpassung der Bonvorlage ist in der Anleitung und auf der Produktwebseite beschrieben.",
|
|
"Hint: The customization of the receipt template is described in the manual and on the product home page.",
|
|
"Nota: La adapción del template esta explicada en la página web y el manual."];
|
|
var MAN_FOODTEMPLATE_HINT = ["Hinweis: Die Anpassung der Bonvorlage ist in der Anleitung und auf der Produktwebseite beschrieben.",
|
|
"Hint: The customization of the receipt template is described in the manual and on the product home page.",
|
|
"Nota: La adapción del template esta explicada en la página web y el manual."];
|
|
var MAN_DRINKTEMPLATE_HINT = ["Hinweis: Die Anpassung der Bonvorlage ist in der Anleitung und auf der Produktwebseite beschrieben.",
|
|
"Hint: The customization of the receipt template is described in the manual and on the product home page.",
|
|
"Nota: La adapción del template esta explicada en la página web y el manual."];
|
|
var MAN_CANCELTEMPLATE_HINT = ["Hinweis: Die Anpassung der Bonvorlage ist in der Anleitung und auf der Produktwebseite beschrieben.",
|
|
"Hint: The customization of the receipt template is described in the manual and on the product home page.",
|
|
"Nota: La adapción del template esta explicada en la página web y el manual."];
|
|
var MAN_NO_ADMIN = ["Um Admin-Rechte zu bearbeiten, muss der Benutzer selbst Adminrechte besitzen.", "Modifying admin rights require that the changing user has also admin rights.", "Necesitas derecho de admin para modificar derecho de admin para otros usarios."];
|
|
var MAN_NO_ADMIN_CREATE = ["Nur Admin-Benutzer können andere Admin-Benutzer anlegen",
|
|
"Only admin users can create other admin users",
|
|
"Solo usarios con derecho de admin pueden crear otros usarios de admin"];
|
|
var MAN_NO_ADMIN_DEL = ["Benutzer ohne Admin-Rechte können keine Admin-Benutzer löschen",
|
|
"Users without admin rights cannot delete admin users",
|
|
"Usarios sin derecho de admin no estan permitidos remover usarios con derecho de admin"];
|
|
var MAN_LAST_ADMIN = ["Letzter Benutzer mit Admin-Rechten kann nicht gelöscht werden!",
|
|
"Last user with admin rights cannot be deleted",
|
|
"No se puede remover el último usario can derecho de admin"];
|
|
var MAN_SAMPLE_MENU = ["Beispielspeisekarte","Sample menu","Ejemplo de menú"];
|
|
var MAN_EMAIL_BAD_RATING = ["Email für schlechte Bewertungen:","Email for bad ratings:","Email para valoraciones malas:"];
|
|
var MAN_EMAIL_RATING_CONTACT = ["Email für Kundenkontaktwunsch:","Email if customers request contact:","Email si clientes quieren contacto:"];
|
|
var MAN_REMOTE_ACCESS = ["Fernzugriffscode","Remote access code","Contrasueña Control remoto"];
|
|
var MAN_PRINTJOBS = ["Druckerwarteschlangen","Print queues","Cola de impresión"];
|
|
var MAN_PRINTER = ["Kassenbon-Drucker","Receipts Printer","Impresora de tiques"];
|
|
var MAN_FOOD_PRINTER = ["Speisearbeitsbon-Drucker","Food work ticket printer","Impreso de tiques de comida"];
|
|
var MAN_DRINK_PRINTER = ["Getränkearbeitsbon-Drucker","Drinks work ticket printer","Impreso de tiques de bebidas"];
|
|
var MAN_UPDATE_PRINTJOBS = ["Aktualisieren","Update","Actualizar"];
|
|
var MAN_CLEAR_PRINTJOBS = ["Alle Druckjobs löschen","Clear all print jobs","Remover todo"];
|
|
var MAN_PRINT_JOBS_COUNT = ["Druckaufträge","print jobs","tareas de impresión"];
|
|
var MAN_REPRINT = ["Erneut drucken","Print again","Imprimir de nuevo"];
|
|
var MAN_PARSE_ERROR = ["Speisekarte konnte nicht erfolgreich eingelesen werden. Stimmt die Syntax, z.B. die korrekte Einrückung?",
|
|
"Menu could not be parsed - is the intendation correct?",
|
|
"Menú no se puede leido - esta correcto la intendación?"];
|
|
var MAN_PARSE_ERROR_LINE = ["Lesefehler nahe Zeile oder Element","Read error close to line or element","Problema de leer texto o elemento"];
|
|
var MAN_TM_DEL = ["Löschen","Delete","Removar"];
|
|
var MAN_TM = ["Laden","Load","Leer"];
|
|
var MAN_TM_HINT = ["<b>Bildauswahl:</b> Wählen Sie ein Bild, welches nicht zu groß ist! <b>Tischzuweisung:</b> Klicken Sie zunächst den Tisch an, dann legen Sie die Position im Bild fest. Für die restlichen Tische genauso verfahren.",
|
|
"<b>Selection of image:</b> Load an image which size is not too big! <b>Table assignment:</b> Click on the table button, then on the position in image. Assign the next table with the same mechanism.",
|
|
"<b>El imagen:</b> El imagen no debe ser tan grande! <b>Asignar las mesas:</b> Click en un boton de mesa, después en la imagen para la posición. El mismo para otras mesas."];
|
|
var MAN_NO_CLOSINGS = ["Es sind noch keine Tagesabschlüsse durchgeführt worden.","You have not performed any closings.","No hay ningún cerramientos"];
|
|
var MAN_SMTPHOST = ["SMTP-Host","SMTP-Host","SMTP-Host"];
|
|
var MAN_SMTPAUTH = ["SMTP-Authentifizierung","SMTP Authentication","SMTP Authentification"];
|
|
var MAN_SMTPUSER = ["SMTP-Benutzername","SMTP User name","SMTP usario"];
|
|
var MAN_SMTPPASS = ["SMTP-Passwort","SMTP password","SMTP contraseña"];
|
|
var MAN_SMTPSECURE = ["SMTP-Protokoll","SMTP Protocol","SMTP Seguridad"];
|
|
var MAN_SMTPPORT = ["SMTP-Port","SMTP Port","SMTP Port"];
|
|
var MAN_STARTPRODSEARCH = ["Starte Produktsuche ab # Zeichen","Start product search after # characters","Initiar busqueda de productos después x letras"];
|
|
var MAN_DISCOUNTNAME1 = ["Bezeichnung Rabatt 1","Name of discount 1","Nombre del descuento 1"];
|
|
var MAN_DISCOUNTNAME2 = ["Bezeichnung Rabatt 2","Name of discount 2","Nombre del descuento 2"];
|
|
var MAN_DISCOUNTNAME3 = ["Bezeichnung Rabatt 3","Name of discount 3","Nombre del descuento 3"];
|
|
var MAN_MEMORYLIMIT = ["PHP Memory Limit (MB)","PHP Memory Limit (MB)","PHP Memory Limit (MB)"];
|
|
var MAN_UPDATEURL = ["Update-Server","Update server","Servidor de actualizar"];
|
|
var MAN_TMPDIR = ["PHP-Temp-Verzeichnis","PHP temp directory","PHP Tmp"];
|
|
var MAN_FTPHOST = ["Ftp-Server","Ftp server","Ftp servidor"];
|
|
var MAN_FTPUSER = ["Ftp-Benutzername","Ftp user name","Ftp usario"];
|
|
var MAN_FTPPASS = ["Ftp-Passwort","Ftp password","Ftp contraseña"];
|
|
var MAN_HS3REFRESH = ["HS/3 Updateinterval (Sek.)","HS/3 Update interval (sec.)","HS/3 Update Interval (sec)"];
|
|
var MAN_WEBIMPRESSUM = ["Webimpressum","Web company info","www café info"];
|
|
var MAN_TAX_ASSIGN = ["Umsatzsteuer-Zuweisung","Taxes assigment","Asignar impuestos"];
|
|
var MAN_TAX_ASS_DESC = ["An dieser Stelle können pauschal zwei unterschiedliche Steuersätze den Speisen und den Getränken zugewiesen werden. Das ist für die Nutzung der Software in Österreich interessant. <b>Die Zuweisungen wirken sich nur im Betriebsmodus 'Österreich' aus!</b></b>",
|
|
"At this place it is possible to assign two different taxes to the foods and to the drinks. This is of interest for the use of this software in Austria. <b>Only in the mode 'Austria' the assignment are used!</b>",
|
|
"En esta locación se puede asignar impuestos diferentes a comidas y a bebidas"
|
|
];
|
|
var MAN_TAX_ASS_DESC2 = ["(Die vorausgewählten Werte stellen nicht die aktuelle Zuweisung dar.)",
|
|
"(The displayed values do not show the current assignments.)",
|
|
"(Los valores mostrados no son los valores asignados de momento.)"];
|
|
var MAN_FOOD = ["Speisen/Küche","Food/Kitchen","Comidas/Cocina"];
|
|
var MAN_DRINKS = ["Getränke/Bar","Beverage/Bar","Bebidas/Bar"];
|
|
var MAN_WRONG_NUMBER_FORMAT = ["Zuweisung unmöglich. Stimmt das Zahlenformat?","Assignment impossible. Is the number format correct?","Asignar no es posible. Es corecto el formato de los numeros?"];
|
|
var MAN_TAX_USE = ["Wenn kein Steuersatz beim Produkt angegeben ist: MwSt/Tax/IVA für Tischbestellungen, -Togo für Außer-Haus-Verkauf. <b>Für Österreich gelten andere Steuersätze</b>, siehe Einstellungen unten!",
|
|
"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_USERNAME = ["Benutzer","User","Usario"];
|
|
var MAN_BILLSUMALL = ["Gesamtbrutto","Total (brutto)","Todo (brutto)"];
|
|
var MAN_BILLSUMNETTO = ["Gesamtnetto","Total (netto)","Todo (netto)"];
|
|
var MAN_BILLSUMBAR = ["In bar","Cash only","Todo de contado"];
|
|
var MAN_BILLSUMCASH = ["Ein-/Auslagen","Cash inserts","Entradas"];
|
|
|
|
var MAN_SIZE_NORMAL = ["normal","normal","normal"];
|
|
var MAN_SIZE_BIG = ["groß","big","grande"];
|
|
|
|
var MAN_UNPAID1 = ["Es wurden folgende Tische noch nicht abgerechnet: ",
|
|
"These tables have unpaid products: ",
|
|
"Estas mesas tienen productos que no son pagados: "];
|
|
var MAN_UNPAID2 = ["Soll die Tageserfassung vorgenommen werden? In diesem Fall wird die Tisch-Zuweisung der unbezahlten Artikel gelöscht!",
|
|
"Do you want to continue create the closing? In this case these products will be unassigned from the tables!",
|
|
"Quieres continuar y removar estos productos?"];
|
|
var MAN_AUSTRIA_INCOMPLETE = ["Aktuell ist OrderSprinter noch nicht kompatibel mit der RKSV in Österreich!","Currently OrderSprinter is still incompatible with the RKSV in Austria!","De momento OrderSprinter no esta acuerdo con la RKSV en Austria!"];
|
|
var MAN_PAYDESKID = ["Kassenidentifikationsnummer","Paydesk ID","Caja identificación"];
|
|
var MAN_AESKEY = ["AES256 Schlüssel","AES256 Key","AES256 LLave"];
|
|
var MAN_AESKEY_WRONG_LENGTH = ["Ein AES256-Schlüssel muss in Hex-Darstellung 64 Zeichen haben.","An AES256 key requires to have 64 characters in a hex string.", "Una llave de AES256 tiene que contener 64 characteres en forma hex."];
|
|
var MAN_AESKEY_NO_HEX = ["Der AES-Schlüssel muss als Hex-Zahl angegeben werden.","The AES key must be specified as hex number","La llava AES tiene que especificado en formato hex."];
|
|
var MAN_CERTIFICATE_SN = ["Zertifikatsseriennummer", "Certificate Serial No","Certificado ID"];
|
|
var MAN_RKSVSERVER = ["RKSV-Server-URL","RKSV server URL","RKSV-Server URL"];
|
|
var MAN_TAX = ["Steuersatz (%)","Tax (%)","Impuesto (%)"];
|
|
var MAN_CONFIRM_GO_LIVE = ["Die Umsatz- und Logdaten wurden gelöscht und nur die Konfiguration übernommen. Deswegen ist nun ein erneutes Einloggen erforderlich.",
|
|
"The sales and log data is deleted and configuration is recreated. Therefore a log-in is required now.",
|
|
"La configuración esta re-creado. Entonces es necesario registrar de nuevo."];
|
|
var MAN_GENSECTION_TXT = ["Allgemeine Einstellungen:","General settings:","Configuración general:"];
|
|
var MAN_MOBILSECTION_TXT = ["Einstellungen für die Mobilansicht:","Settings for the mobil view:","Configuración para la vista mobil:"];
|
|
var MAN_DESKTOP_SECTION_TXT = ["Einstellungen für die Desktop-Ansicht:","Settings for the desktop view","Configuración para la vista de PC"];
|
|
var MAN_PRINT_AND_QUEUE = ["Drucke Jobs und zeige sie auch in der Küchen-/Baransicht an","Print jobs and show them also in the kitchen/bar view","Imprimir orders y también inserta en la vista de cocina/bar"];
|
|
var MAN_CASH = ["Kassenfunktion aktiviert","Enabled cash function","Caja activada"];
|
|
var MAN_RETURNTOORDER = ["Rücksprung Bestellung","Go back to order","Volver a ordenar"];
|
|
var MAN_BEEP_COOKED = ["Signalton, wenn neues Produkt serviert werden kann (experimentell)","Audio signal if new product can be served (experimental)","Señal audio si un producto nuevo esta cocinado"];
|
|
var MAN_CLOSSHOWCI = ["Betriebsinfo auf Tagesabschlussbon","Print company info on closing receipt","Imprimir info del café en el cerramiento"];
|
|
var MAN_CLOSSHOWPAYTAXES = ["Individuelle Steuerbeträge pro Zahlungsweg auf Tagesabschluss","Print each tax per payment way on closing","Imprimir cada impuesto por cada camino de pagar en el cerramiento"];
|
|
var MAN_CLOSSHOWPRODS = ["Produktstatistik auf Tagesabschlussbon","Product statistics on closung","Statistica de productos en el cerramiento"];
|
|
var MAN_SHOWPAYMENT2 = ["EC-Karte","EC card","EC"];
|
|
var MAN_SHOWPAYMENT3 = ["Kreditkarten","credit card","tarjeta de credito"];
|
|
var MAN_SHOWPAYMENT4 = ["Rechnung","Bill","Factura"];
|
|
var MAN_SHOWPAYMENT5 = ["Überweisung","Transfer","transferencia"];
|
|
var MAN_SHOWPAYMENT6 = ["Lastschrift","debitsCard","Débito"];
|
|
var MAN_SHOWPAYMENT7 = ["Hotelzimmer","Hotel room","Habitación"];
|
|
var MAN_SHOWPAYMENT8 = ["Gast","Guest","Huésped"];
|
|
var MAN_DBLOG = ["Debug-Logging","Debug logging","Debug logging"];
|
|
var MAN_PRICE_IN_LIST = ["Preisangabe neben Produkt","List price next to product","Mostrar precio en lista de productos"];
|
|
var MAN_GUEST_JOB_PRINT = ["Gastbestelljob drucken","Print guest order","Imprimir orden de remote"];
|
|
var MAN_ASK_DAYCODE = ["Abfrage Tageslosung","Require input of day code in guest system","Pregunta código del dia en sistema de huéspedes"];
|
|
var MAN_SHOW_DAYCODE = ["Tageslosung in Bestellansicht anzeigen","Show day code in order view","Mostrat códiga del dia en vista de ordenes"];
|
|
var MAN_ASK_TABLECODE = ["Abfrage Tischcode","Require input of table code","Pregunta código de la mesa en sistem de huéspedes"];
|
|
var MAN_GUEST_TIMEOUT = ["Timeout (Min)","Timeout (min)","Timeout (min)"];
|
|
var MAN_GUESTTIMEOUT_HINT = ["Ein Timeout von 0 bedeutet, dass gar ein Timeout abläuft.","A timeout value of 0 means that there is no timeout at all.","Un valor de timeout de 0 significa que no hay ningún timeout."];
|
|
var MAN_RESTAURANT_MODE = ["Restaurantmodus","Restaurant mode","Usar para restaurantes"];
|
|
var MAN_REST_MODE_HINT = ["Hinweis: Wird der Restaurantmodus auf <i>Nein</i> gesetzt, wird in der <b>Desktopansicht</b> die Tischauswahl deaktiviert. Alle Produkte werden als Außer-Haus-Verkauf gebucht.","Hint: If the restautant mode is set to <i>no</i> in the <b>desktop view</b> the table selection is deactivated and all products are ordered as <i>to-go</i>","Nota: Si el modus del restaurante es configurado a <i>no</i> en la vista de <b>Desktop</b> la selección de las mesas es deactivada y todos los productos son ordenados como <i>to-go</i>"];
|
|
var MAN_SPECIAL_SETTINGS_TXT = ["Einstellungen für spezielle Abläufe:","Settings for special workflows:","Configuración para workflows muy escpeciales:"];
|
|
var MAN_GUEST_SYSTEM_TXT = ["Einstellungen für das Gastsystem","Settings for the Guest system","Especificación del sistema de clientes"];
|
|
var MAN_PRINT_ON_CLOSINGS = ["Tageserfassungsbons","Closing receipts","Tiques de cerramiento"];
|
|
var MAN_SHOW_PAYMENTS_DLG = ["Zahlungswege im Zahldialog","Payment ways in payment dialog","Que modos de pagar"];
|
|
var MAN_ROOMCHANGE_WARNING = ["Alten Raumplan löschen und neuen festlegen? Bestellungen offener Tische gehen verloren!","Replace room map? Orders of open tables will be lost!","Sustituir mapa de mesas? Orders de mesas abiertas van a ser borradas!"];
|
|
|
|
var MAN_HOTELINTERFACE = ["Anbindung Hotelsoftware","Interface hotel software","Conección programa de hotel"];
|
|
var MAN_HSINFILE = ["HS/3 Datei HS3CASH.IN","HS/3 file HS3CASH.IN","HS/3 file HS3CASH.IN"];
|
|
var MAN_HSOUTFILE = ["HS/3 Datei HS3CASH.OUT","HS/3 file HS3CASH.OUT","HS/3 file HS3CASH.OUT"];
|
|
var MAN_HSCURRENCY = ["HS/3 Währungsangabe","HS/3 Currency","HS/3 Moneda"];
|
|
var MAN_DEL_HINT = ["Zum Löschen anklicken","Click to delete","Click para removar"];
|
|
var MAN_FONTSIZE_HINT = ["Die Schriftgröße hat nur Einfluss, wenn kein eigenes Layout festgelegt wurde.","The font size only effects receipts if they do not use a specified layout.","El valor sólo funciona si no se usa un layout individual."];
|
|
var MAN_INIT_AUSTRIA = ["Erstelle Startbeleg (Österreich)","Create initial receipt (Austria)","Crear tiquet inicial (Austria)"];
|
|
var MAN_GOLIVE_WAIT_HINT = ["Bitte beachten Sie, dass diese Aktion auf langsamen Servern mehrere Minuten dauern kann. Schließen Sie diesen Dialog und warten Sie auf die Meldung, dass der Vorgang abgeschlossen wurde.","Please be aware that this action may take a while on slow servers. Please close this dialog and wait for the message that the process has completed.","Esta acción puede durar unos minutos. Por favor confirme este dialogo y espere por el mensaje que la acción esta completada."]
|
|
var MAN_CLOSING_TIME_LIMIT_ERROR = ["Ein Tagesabschluss wurde nicht erzeugt, weil zwischen zwei Tagesabschlüssen etwas Zeit (mind. 2 Min.) vergehen sollte.","No closure was created because between two clsoings there should be some time (at least 2 minutes).","No conclusión esta creado porque el tiempo entre dos conclusiones debe ser un rato (min, 2 minutos)."];
|
|
var MAN_DB_PROPERTIES = ["Größe der Datenbanktabellen","Sizes of the data base tables","Tamaño de los tabulas de la base de datos"];
|
|
var MAN_DBTABLENAME = ["Tabelle","Table","Tabula"];
|
|
var MAN_DBTABLESIZE = ["Größe (KB)","Size (KB)","Tamaño (KB)"];
|
|
var MAN_PRINT_INSTANCE_ASS_HEADER = ["Druckerinstanzen","Printer instances","Impresoras"];
|
|
var MAN_PRINT_INSTANCE = ["Druckerinstanz","Printer instance","Impresora"];
|
|
var MAN_RECEIPT_TXT = ["Kasse","Receipts","Recibos"];
|
|
var MAN_DRINKS_REC_TXT = ["Getränke","Drinks","Bebidas"];
|
|
var MAN_FOOD_REC_TXT = ["Speisen","Food","Comidas"];
|
|
var MAN_PRINSTANCE_HINT = ["Die Zuordnungen wirken erst ab Printserverversion 1.3.14 oder höher!","The assignments only work with print server versions 1.3.14 and higher!","Esta configuración sólo funciona con printservers de una version 1.3.14 o despues!"];
|
|
var MAN_DASHSLOT1 = ["Dashboard Slot 1","Dashboard Slot 1","Dashboard Slot 1"];
|
|
var MAN_DASHSLOT2 = ["Dashboard Slot 2","Dashboard Slot 2","Dashboard Slot 2"];
|
|
var MAN_DASHSLOT3 = ["Dashboard Slot 3","Dashboard Slot 3","Dashboard Slot 3"];
|
|
var MAN_CREATECLOS_TXT = ["Tageserfassung erstellen","Create closing","Crear cerramiento"];
|
|
var MAN_TMPDIRHINT = ["Wird das PHP-Tmp-Verzeichnis angegeben, so können z.B. komprimierte Backups erstellt werden. In der Regel sollte der Default-Wert der PHP-Umgebung stimmen, aber einige Provider biegen den Pfad um, ohne die PHP-Konfiguration anzupassen!",
|
|
"If the PHP tmp directory is set it is possible to create compressed backups and more. Usually the default value of the PHP framework should fit, but sometimes the providers change the tmp directory without adapting the PHP framework!",
|
|
"Si el tmp esta espcificado es posible crear backups comprimidos por ejemplo. Normalmente el valor default es corecto pero de vez en cuando los providers cambian el valor sin adaptar el PHP framework!"];
|
|
var MAN_IMPORT_IN_PROGRESS = ["Der Importvorgang ist aktiv. Bitte warten...","The import process is activated. Please wait...","El proceso del importe esta activo. Por favor espere un poco...."];
|
|
|
|
var lang = 0;
|
|
var generalVals = [12,2,0,3,0,1,1,0,0,1, 0,50,20,10,1,0,0,0,1,0,1,0,0,1,1, 1,1,1,1,1,1,1,1,1,1, 1,2,3, 1,0, 1,0,1, 1,1,0];
|
|
|
|
var numberOfClosings = 0;
|
|
|
|
var unpaidTables = "";
|
|
var version = '';
|
|
var newerversionavailable = 0;
|
|
var adminIsLoggedIn = false;
|
|
var managerIsLoggedIn = false;
|
|
var defaulttmp = '';
|
|
var rolesOnceExtended = false;
|
|
|
|
var generalValuesSettings = [
|
|
["usstval","MwSt","i",2,"Mehrwertsteuer ist kein Zahlenwert"],
|
|
["togotaxval","ToGo-MwSt","i",2,"Togo-Mehrwertsteuer ist kein Zahlenwert"],
|
|
["taxaustrianormalval","Österreich Steuer 'Normal'","i",2,"Angabe Österreich-Steuersatz 'normal' ist kein Zahlenwert"],
|
|
["taxaustriaerm1val","Österreich Steuer 'Ermäßigt 1'","i",2,"Angabe Österreich-Steuersatz 'Ermäßigt 1' ist kein Zahlenwert"],
|
|
["taxaustriaerm2val","Österreich Steuer 'Ermäßigt 2'","i",2,"Angabe Österreich-Steuersatz 'Ermäßigt 2' ist kein Zahlenwert"],
|
|
["taxaustriaspecialval","Österreich Steuer 'Besonders'","i",2,"Angabe Österreich-Steuersatz 'Besonders' ist kein Zahlenwert"],
|
|
["stornocode","Stornocode","i",1,"Stornocode wurde nicht angegeben!"],
|
|
["printpass","Printcode","i",1,"Printcode wurde nicht angegeben"],
|
|
["companyinfo","Betriebsinfo","i",0],
|
|
["hosttext","Bewirtungsbeleg","i",0],
|
|
["rectemplate","Bonvorlage ","i",0],
|
|
["foodtemplate","Arb.bonvorlage Speisen","i",0],
|
|
["drinktemplate","Arb.bonvorlage Getränke","i",0],
|
|
["canceltemplate","Storno Arb.bonvorlage","i",0],
|
|
["serverUrl","Serveradresse","i",0],
|
|
["guesturl","Gastsystem-URL","i",0],
|
|
["guestcode","Gastsystem-Zugriffscode","i",0],
|
|
["dailycode","Gastsystem-Tageslosung","i",0],
|
|
["email","Emailadresse","i",0],
|
|
["emailbadrating","Emailadresse schlechte Bewertung","i",0],
|
|
["emailratingcontact","Emailadresse Kontaktwunsch","i",0],
|
|
["receiveremail","Empfänger-Emailadresse","i",0],
|
|
["payprinttype",MAN_PRINT_CONCEPT[lang],"s",1],
|
|
["paymentconfig",MAN_PAYMENT_CONFIG[lang],"s",3],
|
|
["bigfontworkreceipt",MAN_WORKFONT_CONFIG[lang],"s",7],
|
|
["prominentsearch",MAN_PROMINENT_SEARCH[lang],"s",8],
|
|
["groupworkitemsf",MAN_GROUP_WORK_ITEMS_F[lang],"s",9],
|
|
["discount1",MAN_DISCOUNT1[lang],"s",11],
|
|
["discount2",MAN_DISCOUNT2[lang],"s",12],
|
|
["discount3",MAN_DISCOUNT3[lang],"s",13],
|
|
["austria",MAN_AUSTRIA[lang],"s",10],
|
|
["digigopaysetready",MAN_DIGI_GOPAY_SET_READY[lang],"s",14],
|
|
["waitergopayprint",MAN_WAITER_GOPAY_PRINT[lang],"s",15],
|
|
["oneprodworkrecf",MAN_ONE_PROD_WORKREC_F[lang],"s",17],
|
|
["digiprintwork",MAN_DIGI_PRINTWORK[lang],"s",18],
|
|
["printandqueuejobs",MAN_PRINT_AND_QUEUE[lang],"s",19],
|
|
["cashenabled",MAN_CASH[lang],"s",20],
|
|
["beepcooked",MAN_BEEP_COOKED[lang],"s",21],
|
|
|
|
["closshowci",MAN_CLOSSHOWCI[lang],"s",25],
|
|
["closshowpaytaxes",MAN_CLOSSHOWPAYTAXES[lang],"s",26],
|
|
["closshowprods",MAN_CLOSSHOWPRODS[lang],"s",27],
|
|
|
|
["showpayment2",MAN_SHOWPAYMENT2[lang],"s",28],
|
|
["showpayment3",MAN_SHOWPAYMENT3[lang],"s",29],
|
|
["showpayment4",MAN_SHOWPAYMENT4[lang],"s",30],
|
|
["showpayment5",MAN_SHOWPAYMENT5[lang],"s",31],
|
|
["showpayment6",MAN_SHOWPAYMENT6[lang],"s",32],
|
|
["showpayment7",MAN_SHOWPAYMENT7[lang],"s",33],
|
|
["showpayment8",MAN_SHOWPAYMENT8[lang],"s",34],
|
|
|
|
["restaurantmode",MAN_RESTAURANT_MODE[lang],"s",23],
|
|
["returntoorder",MAN_CASH[lang],"s",24],
|
|
["addreceipttoprinter",MAN_ADD_RECPRINTER[lang],"s",16],
|
|
["workflowconfig",MAN_WORKFLOW[lang],"s",4],
|
|
["receiptfontsize",MAN_RECEIPT_FONTSIZE[lang],"s",0],
|
|
["billlanguage",MAN_LANG_OF_RECEIPT[lang],"s",2],
|
|
["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,""],
|
|
["smtphost",MAN_SMTPHOST[lang],"i",0,""],
|
|
["smtpauth",MAN_SMTPAUTH[lang],"s",5],
|
|
["smtpuser",MAN_SMTPUSER[lang],"i",0,""],
|
|
["smtppass",MAN_SMTPPASS[lang],"i",0,""],
|
|
["smtpsecure",MAN_SMTPSECURE[lang],"s",6],
|
|
["smtpport",MAN_SMTPPORT[lang],"i",0,""],
|
|
["startprodsearch",MAN_STARTPRODSEARCH[lang],"i",0,""],
|
|
["webimpressum",MAN_WEBIMPRESSUM[lang],"i",0,""],
|
|
|
|
["paydeskid",MAN_PAYDESKID[lang],"i",0,""],
|
|
["aeskey",MAN_AESKEY[lang],"i",0,""],
|
|
["certificatesn",MAN_CERTIFICATE_SN[lang],"i",0,""],
|
|
["rksvserver",MAN_RKSVSERVER[lang],"i",0,""],
|
|
["hotelinterface",MAN_HOTELINTERFACE[lang],"s",22],
|
|
["hsinfile",MAN_HSINFILE[lang],"i",0],
|
|
["hsoutfile",MAN_HSOUTFILE[lang],"i",0],
|
|
["hscurrency",MAN_HSCURRENCY[lang],"i",0],
|
|
|
|
["discountname1",MAN_DISCOUNTNAME1[lang],"i",0,""],
|
|
["discountname2",MAN_DISCOUNTNAME2[lang],"i",0,""],
|
|
["discountname3",MAN_DISCOUNTNAME3[lang],"i",0,""],
|
|
|
|
["memorylimit",MAN_MEMORYLIMIT[lang],"i",0,""],
|
|
["updateurl",MAN_UPDATEURL[lang],"i",0,""],
|
|
["tmpdir",MAN_TMPDIR[lang],"i",0,""],
|
|
["ftphost",MAN_FTPHOST[lang],"i",0,""],
|
|
["ftpuser",MAN_FTPUSER[lang],"i",0,""],
|
|
["ftppass",MAN_FTPPASS[lang],"i",0,""],
|
|
["hs3refresh",MAN_HS3REFRESH[lang],"i",0,""],
|
|
["dashslot1",MAN_DASHSLOT1[lang],"s",35],
|
|
["dashslot2",MAN_DASHSLOT2[lang],"s",36],
|
|
["dashslot3",MAN_DASHSLOT3[lang],"s",37],
|
|
["groupworkitemsd",MAN_GROUP_WORK_ITEMS_D[lang],"s",38],
|
|
["oneprodworkrecd",MAN_ONE_PROD_WORKREC_D[lang],"s",39],
|
|
["dblog",MAN_DBLOG[lang],"s",40],
|
|
["priceinlist",MAN_PRICE_IN_LIST[lang],"s",41],
|
|
["guestjobprint",MAN_GUEST_JOB_PRINT[lang],"s",42],
|
|
["askdaycode",MAN_ASK_DAYCODE[lang],"s",43],
|
|
["asktablecode",MAN_ASK_TABLECODE[lang],"s",44],
|
|
["guesttimeout",MAN_GUEST_TIMEOUT[lang],"i",0,""],
|
|
["showdaycode",MAN_SHOW_DAYCODE[lang],"s",45]
|
|
];
|
|
|
|
var predef = "";
|
|
|
|
function setLanguage(l) {
|
|
lang = l;
|
|
|
|
$("#closingcreationtxt").html(MAN_CREATECLOS_TXT[l]);
|
|
$("#closingtxt").html(MAN_CLOSING[l]);
|
|
$("#acc_exporttxt").html(MAN_ACCOUNT_EXPORT[l]);
|
|
$("#info_acc_exporttxt").html(MAN_INFO_ACCOUNT_EXPORT[l]);
|
|
$("#usertxt").html(MAN_USER[l]);
|
|
$("#rolestxt").html(MAN_ROLES[l]);
|
|
$("#configtxt").html(MAN_CONFIG[l]);
|
|
$("#dbtxt").html(MAN_DB[l]);
|
|
$("#speisekarte").html(MAN_SPEISEKARTE[l]);
|
|
$("#roomplantxt").html(MAN_ROOMPLAN[l]);
|
|
$("#dataexporttxt").html(MAN_DATAEXPORT[l]);
|
|
$("#closingdetailstxt").html(MAN_CLOSINGDET_TXT[l]);
|
|
|
|
var monthHtml = createMonthSelection("select-month");
|
|
$("#monthpart").html(monthHtml);
|
|
$("#monthpart").trigger("create");
|
|
|
|
monthHtml = createMonthSelection("select-month-export-start");
|
|
$("#datexportstartmonthpart").html(monthHtml);
|
|
$("#datexportstartmonthpart").trigger("create");
|
|
|
|
monthHtml = createMonthSelection("select-month-export-end");
|
|
$("#datexportendmonthpart").html(monthHtml);
|
|
$("#datexportendmonthpart").trigger("create");
|
|
|
|
$("#createclosing").html(MAN_CREATE_WITH_REC[l]);
|
|
$("#createclosingnoprint").html(MAN_CREATE_WITHOUT_REC[l]);
|
|
|
|
$("#changeConfig").html(MAN_CHANGE[l]);
|
|
$("#dataexportdettxt").html(MAN_DATEXPDETTXT[l]);
|
|
|
|
$("#readspeisekarte").html(MAN_APPLY[l]);
|
|
|
|
$("#hosttexttxt").html(MAN_HOSTTEXT_TXT[l]);
|
|
$("#fromemailtxt").html(MAN_EMAIL_SENDER_TXT[l]);
|
|
$("#toemailtxt").html(MAN_DEFAULT_EMAIL_TO[l]);
|
|
|
|
$("#smtphosttxt").html(MAN_SMTPHOST[l]);
|
|
$("#smtpusertxt").html(MAN_SMTPUSER[l]);
|
|
$("#smtppasstxt").html(MAN_SMTPPASS[l]);
|
|
$("#smtpporttxt").html(MAN_SMTPPORT[l]);
|
|
$("#guesttimeouttxt").html(MAN_GUEST_TIMEOUT[l]);
|
|
|
|
$("#startprodsearchtxt").html(MAN_STARTPRODSEARCH[l]);
|
|
|
|
$("#discountname1txt").html(MAN_DISCOUNTNAME1[l]);
|
|
$("#discountname2txt").html(MAN_DISCOUNTNAME2[l]);
|
|
$("#discountname3txt").html(MAN_DISCOUNTNAME3[l]);
|
|
|
|
$("#memorylimittxt").html(MAN_MEMORYLIMIT[l]);
|
|
$("#updateurltxt").html(MAN_UPDATEURL[l]);
|
|
$("#tmpdirtxt").html(MAN_TMPDIR[l]);
|
|
$("#tmpdirhint").html(MAN_TMPDIRHINT[l]);
|
|
$("#ftphosttxt").html(MAN_FTPHOST[l]);
|
|
$("#ftpusertxt").html(MAN_FTPUSER[l]);
|
|
$("#ftppasstxt").html(MAN_FTPPASS[l]);
|
|
$("#hs3refreshtxt").html(MAN_HS3REFRESH[l]);
|
|
|
|
$("#paydeskidtxt").html(MAN_PAYDESKID[l]);
|
|
$("#austriahint").html(MAN_AUSTRIA_INCOMPLETE[l]);
|
|
$("#digigopaysetreadyhint").html("<p style='padding-left: 50px;padding-right: 50px;'><i>" + MAN_DIGI_GOPAY_DESCR[l] + "</i></p>");
|
|
$("#waitergopayprinthint").html("<p style='padding-left: 50px;padding-right: 50px;'><i>" + MAN_WAITER_GOPAY_DESCR[l] + "</i></p>");
|
|
$("#addrecprinterhint").html("<p style='padding-left: 50px;padding-right: 50px;'><i>" + MAN_ADD_RECPRINTER_DESCR[l] + "</i></p>");
|
|
$("#aeskeytxt").html(MAN_AESKEY[l]);
|
|
$("#certificatesntxt").html(MAN_CERTIFICATE_SN[l]);
|
|
$("#rksvservertxt").html(MAN_RKSVSERVER[l]);
|
|
|
|
$("#emailbadratingtxt").html(MAN_EMAIL_BAD_RATING[l]);
|
|
$("#emailratingcontacttxt").html(MAN_EMAIL_RATING_CONTACT[l]);
|
|
|
|
$("#bakresinfotxt").html(MAN_BAK_REST_INFO[l]);
|
|
$("#bakresinfotxtall").html(MAN_BAK_REST_INFO_ALL[l]);
|
|
$("#bakrestxt").html(MAN_BAK_REST_HEAD[l]);
|
|
$("#updatetxt").html(MAN_UPDATE_HEAD[l]);
|
|
$('#dbproptxt').html(MAN_DB_PROPERTIES[l]);
|
|
$("#updatebtntxt").html(MAN_CHECK_UPDATE_BTN[l]);
|
|
$("#updatehinttxt").html(MAN_UPDATE_HINT[l]);
|
|
$("#availableversiontxt").html(MAN_AVAIL_UPD_VERSION[l]);
|
|
$("#urltxt").html(MAN_UPDATE_URL[l]);
|
|
$("#backupbtntxt").html(MAN_BAK_BTN[l]);
|
|
$("#backupguestsbtntxt").html(MAN_BAK_GUEST_BTN[l]);
|
|
$("#backupbtntxtall").html(MAN_BAK_BTN_ALL[l]);
|
|
$("#backupbtntxtalllogs").html(MAN_BAK_BTN_ALL_LOGS[l]);
|
|
$("#backupbtnftptxtall").html(MAN_BAK_FTP_ALL[l]);
|
|
$("#golivetxt").html(MAN_GO_LIVE[l]);
|
|
|
|
$("#shutdownbtntxt").html(MAN_SHUTDOWN[l]);
|
|
$("#shutdownhinttxt").html(MAN_SHUTDOWN_HINT[l]);
|
|
$("#optimizebtntxt").html(MAN_OPTIMIZE[l]);
|
|
// $("#initreceiptbtntxt").html(MAN_INIT_AUSTRIA[l]);
|
|
$("#optimizehinttxt").html(MAN_OPTIMIZE_HINT[l]);
|
|
$("#upllogotxt").html(MAN_UPLOAD_LOGO[l]);
|
|
$("#dellogobtn").html(MAN_NO_LOGO_BTN[l]);
|
|
|
|
$("#samplemenutxt").html(MAN_SAMPLE_MENU[l]);
|
|
|
|
$("#printjobsheader").html(MAN_PRINTJOBS[l]);
|
|
$("#updateprintqueue").html(MAN_UPDATE_PRINTJOBS[l]);
|
|
$("#clearprintqueue").html(MAN_CLEAR_PRINTJOBS[l]);
|
|
$("#reprintworkreceiptbtn").html(MAN_REPRINT[l]);
|
|
|
|
$("#tmimgdelbtntxt").html(MAN_TM_DEL[l]);
|
|
$("#tmimgbtntxt").html(MAN_TM[l]);
|
|
$("#tmhint").html(MAN_TM_HINT[l]);
|
|
|
|
$("#webimpressum").html(MAN_WEBIMPRESSUM[l]);
|
|
|
|
$("#taxestxt").html(MAN_TAX_ASSIGN[l]);
|
|
$("#taxesassdescr").html(MAN_TAX_ASS_DESC[l]);
|
|
$("#taxesassdescr2").html(MAN_TAX_ASS_DESC2[l]);
|
|
$("#taxesfoodtxt").html(MAN_FOOD[l]);
|
|
$("#taxesdrinkstxt").html(MAN_DRINKS[l]);
|
|
$("#taxapplytxt").html(MAN_APPLY[l]);
|
|
|
|
$("#taxusage").html("<i>(" + MAN_TAX_USE[l] + ")</i>");
|
|
|
|
$("#rectemplatehint").html(MAN_RECTEMPLATE_HINT[l]);
|
|
$("#foodtemplatehint").html(MAN_FOODTEMPLATE_HINT[l]);
|
|
$("#drinktemplatehint").html(MAN_DRINKTEMPLATE_HINT[l]);
|
|
$("#canceltemplatehint").html(MAN_CANCELTEMPLATE_HINT[l]);
|
|
|
|
$("#digiprinthint").html(MAN_DIGI_PRINTWORK_HINT[l]);
|
|
$("#generalsectiontxt").html(MAN_GENSECTION_TXT[l]);
|
|
$("#mobilviewsectiontxt").html(MAN_MOBILSECTION_TXT[l]);
|
|
$("#desktopviewsectiontxt").html(MAN_DESKTOP_SECTION_TXT[l]);
|
|
$("#specialsettingssectiontxt").html(MAN_SPECIAL_SETTINGS_TXT[l]);
|
|
$("#guestsystemsectiontxt").html(MAN_GUEST_SYSTEM_TXT[l]);
|
|
$("#closingprintstxt").html(MAN_PRINT_ON_CLOSINGS[l]);
|
|
$("#showpaymentstxt").html(MAN_SHOW_PAYMENTS_DLG[l]);
|
|
$("#printandqueuehint").html(MAN_PRINT_AND_QUEUE_HINT[l]);
|
|
$("#cashhint").html(MAN_CASH_HINT[l]);
|
|
$("#returntoorderhint").html(MAN_RETURN_TO_ORDER_HINT[l]);
|
|
$("#hsinfiletxt").html(MAN_HSINFILE[l]);
|
|
$("#hsoutfiletxt").html(MAN_HSOUTFILE[l]);
|
|
$("#hscurrencytxt").html(MAN_HSCURRENCY[l]);
|
|
|
|
$("#restmodehint").html(MAN_REST_MODE_HINT[l]);
|
|
$("#workfontsizehint").html(MAN_FONTSIZE_HINT[l]);
|
|
|
|
$("#updateprogresslabel").html(MAN_UPD_PROGRESS[l] + ": ");
|
|
|
|
$("#printerinstancesheader").html(MAN_PRINT_INSTANCE_ASS_HEADER[l]);
|
|
$("#printerinstancetxt").html(MAN_PRINT_INSTANCE[l]);
|
|
|
|
$(".pia_k_txt").html(MAN_RECEIPT_TXT[l]);
|
|
$(".pia_f_txt").html(MAN_FOOD_REC_TXT[l]);
|
|
$(".pia_d_txt").html(MAN_DRINKS_REC_TXT[l]);
|
|
$(".pia_c_txt").html(MAN_PRINT_ON_CLOSINGS[l]);
|
|
|
|
$("#applyPrinterInstances").html(MAN_APPLY[l]);
|
|
$("#printerInstanceHint").html(MAN_PRINSTANCE_HINT[l]);
|
|
|
|
$("#guesttimeouthint").html(MAN_GUESTTIMEOUT_HINT[l]);
|
|
}
|
|
|
|
function createMonthSelection(label) {
|
|
var monthHtml = '<label for="' + label + '">' + MAN_MONTH[lang] + '</label>'
|
|
+ '<select name="' + label + '" id="' + label + '" data-theme="e">'
|
|
+ '<option value="1">' + MAN_JAN[lang] + '</option>'
|
|
+ '<option value="2">' + MAN_FEB[lang] + '</option>'
|
|
+ '<option value="3">' + MAN_MAR[lang] + '</option>'
|
|
+ '<option value="4">' + MAN_APR[lang] + '</option>'
|
|
+ '<option value="5">' + MAN_MAY[lang] + '</option>'
|
|
+ '<option value="6">' + MAN_JUN[lang] + '</option>'
|
|
+ '<option value="7">' + MAN_JUL[lang] + '</option>'
|
|
+ '<option value="8">' + MAN_AUG[lang] + '</option>'
|
|
+ '<option value="9">' + MAN_SEP[lang] + '</option>'
|
|
+ '<option value="10">' + MAN_OCT[lang] + '</option>'
|
|
+ '<option value="11">' + MAN_NOV[lang] + '</option>'
|
|
+ '<option value="12">' + MAN_DEC[lang] + '</option></select>';
|
|
return monthHtml;
|
|
}
|
|
|
|
function showPanelsDueToUserStatus(jsonAnswer) {
|
|
if (jsonAnswer == "admin") {
|
|
$("#dbactionui").show();
|
|
adminIsLoggedIn = true;
|
|
}
|
|
if (jsonAnswer == "manager" || (jsonAnswer == 'admin')) {
|
|
managerIsLoggedIn = true;
|
|
$("#userpart").show();
|
|
$("#rolespart").show();
|
|
$("#configpart").show();
|
|
$("#printerqueue").show();
|
|
$("#dataexport").show();
|
|
$("#printserverdownloadpart").show();
|
|
$("#printerinstances").show();
|
|
}
|
|
|
|
if(jsonAnswer == "No") {
|
|
$("#allpagecontent").hide();
|
|
}
|
|
}
|
|
|
|
function getSpeisekarte() {
|
|
doAjax("GET", "php/contenthandler.php?module=products&command=getSpeisekarte", null, insertSpeisekarte, "Fehler Insert Speisekarte",true);
|
|
}
|
|
|
|
function getGeneralConfigItems() {
|
|
doAjax("GET", "php/contenthandler.php?module=admin&command=getGeneralConfigItems", null, insertGeneralConfigItems, "Fehler Konfigurationsdaten",true);
|
|
}
|
|
|
|
function saveValueIntoForm(aValue, decpoint, formid) {
|
|
var formattedVal = aValue.replace(".", decpoint);
|
|
$(formid).val(formattedVal);
|
|
}
|
|
|
|
function insertGeneralConfigItems(configResult) {
|
|
if (configResult.status == "OK") {
|
|
var values = configResult.msg;
|
|
|
|
setLanguage(values.userlanguage);
|
|
|
|
var decpoint = values.decpoint;
|
|
$("#admin-page").data("decpoint",values.decpoint);
|
|
saveValueIntoForm(values.tax,decpoint,"#usstval");
|
|
saveValueIntoForm(values.togotax,decpoint,"#togotaxval");
|
|
saveValueIntoForm(values.taxaustrianormal,decpoint,"#taxaustrianormalval");
|
|
saveValueIntoForm(values.taxaustriaerm1,decpoint,"#taxaustriaerm1val");
|
|
saveValueIntoForm(values.taxaustriaerm2,decpoint,"#taxaustriaerm2val");
|
|
saveValueIntoForm(values.taxaustriaspecial,decpoint,"#taxaustriaspecialval");
|
|
|
|
version = values.version;
|
|
|
|
$("#companyinfo").val(values.companyinfo);
|
|
$("#hosttext").val(values.hosttext);
|
|
$("#rectemplate").val(values.rectemplate);
|
|
$("#foodtemplate").val(values.foodtemplate);
|
|
$("#drinktemplate").val(values.drinktemplate);
|
|
$("#canceltemplate").val(values.canceltemplate);
|
|
|
|
$("#reservationnote").val(values.reservationnote);
|
|
|
|
var payPrintType = values.payprinttype;
|
|
if (payPrintType == "l") {
|
|
payPrintType = 1;
|
|
generalVals[1] = 1;
|
|
}
|
|
if (payPrintType == "s") {
|
|
payPrintType = 2;
|
|
generalVals[1] = 2;
|
|
}
|
|
generalVals[3] = values.paymentconfig;
|
|
generalVals[4] = values.workflowconfig;
|
|
generalVals[16] = values.addreceipttoprinter;
|
|
if ((values.addreceipttoprinter == "") || (values.addreceipttoprinter == null)) {
|
|
generalVals[16] = 0;
|
|
}
|
|
|
|
$("#partOfPayPrintType").html(createPayPrintTypePart(payPrintType));
|
|
$("#partOfPaymentConfig").html(createPaymentConfigPart(values.paymentconfig));
|
|
$("#partOfAddRecPrinter").html(createAddRecPrinterPart(values.addreceipttoprinter));
|
|
$("#partOfWorkflowConfig").html(createWorkflowConfigPart(values.workflowconfig));
|
|
$("#partOfDashslot1").html(createDashslotPart(1,values.dashslot1));
|
|
$("#partOfDashslot2").html(createDashslotPart(2,values.dashslot2));
|
|
$("#partOfDashslot3").html(createDashslotPart(3,values.dashslot3));
|
|
$("#partOfBigFontWorkReceipt").html(createBigFontWorkReceiptPart(values.bigfontworkreceipt));
|
|
$("#partOfProminentSearch").html(createProminentSearchPart(values.prominentsearch));
|
|
$("#partOfGroupWorkItemsf").html(createGroupWorkItemsPartf(values.groupworkitemsf));
|
|
$("#partOfGroupWorkItemsd").html(createGroupWorkItemsPartd(values.groupworkitemsd));
|
|
|
|
$("#partOfAustria").html(createAustriaPart(values.austria));
|
|
$("#partOfDigigopaysetready").html(createDigigopaysetready(values.digigopaysetready));
|
|
$("#partOfWaitergopayprint").html(createWaitergopayprint(values.waitergopayprint));
|
|
$("#partOfOneprodworkrecf").html(createOneprodworkreceiptsf(values.oneprodworkrecf));
|
|
$("#partOfOneprodworkrecd").html(createOneprodworkreceiptsd(values.oneprodworkrecd));
|
|
$("#partOfDigiprintwork").html(createDigiprintwork(values.digiprintwork));
|
|
$("#partOfPrintAndQueueJobs").html(createPrintAndQueueJobs(values.printandqueuejobs));
|
|
$("#partOfCash").html(createCash(values.cashenabled));
|
|
$("#partOfReturntoorder").html(createYesNo("returntoorder",MAN_RETURNTOORDER,values.returntoorder));
|
|
$("#partOfBeepCooked").html(createYesNo("beepcooked",MAN_BEEP_COOKED, values.beepcooked));
|
|
$("#partOfRestaurantmode").html(createYesNo("restaurantmode",MAN_RESTAURANT_MODE, values.restaurantmode));
|
|
$("#partOfDblog").html(createYesNo("dblog",MAN_DBLOG, values.dblog));
|
|
$("#partOfPriceinlist").html(createYesNo("priceinlist",MAN_PRICE_IN_LIST, values.priceinlist));
|
|
$("#partOfGuestjobprint").html(createYesNo("guestjobprint",MAN_GUEST_JOB_PRINT, values.guestjobprint));
|
|
$("#partOfAskdaycode").html(createYesNo("askdaycode",MAN_ASK_DAYCODE, values.askdaycode));
|
|
$("#partOfAsktablecode").html(createYesNo("asktablecode",MAN_ASK_TABLECODE, values.asktablecode));
|
|
$("#partOfShowdaycode").html(createYesNo("showdaycode",MAN_SHOW_DAYCODE, values.showdaycode));
|
|
|
|
$("#partOfclosshowci").html(createYesNo("closshowci",MAN_CLOSSHOWCI,values.closshowci));
|
|
$("#partOfclosshowpaytaxes").html(createYesNo("closshowpaytaxes",MAN_CLOSSHOWPAYTAXES,values.closshowpaytaxes));
|
|
$("#partOfclosshowprods").html(createYesNo("closshowprods",MAN_CLOSSHOWPRODS,values.closshowprods));
|
|
|
|
$("#partOfshowpayment2").html(createYesNo("showpayment2",MAN_SHOWPAYMENT2, values.showpayment2));
|
|
$("#partOfshowpayment3").html(createYesNo("showpayment3",MAN_SHOWPAYMENT3, values.showpayment3));
|
|
$("#partOfshowpayment4").html(createYesNo("showpayment4",MAN_SHOWPAYMENT4, values.showpayment4));
|
|
$("#partOfshowpayment5").html(createYesNo("showpayment5",MAN_SHOWPAYMENT5, values.showpayment5));
|
|
$("#partOfshowpayment6").html(createYesNo("showpayment6",MAN_SHOWPAYMENT6, values.showpayment6));
|
|
$("#partOfshowpayment7").html(createYesNo("showpayment7",MAN_SHOWPAYMENT7, values.showpayment7));
|
|
$("#partOfshowpayment8").html(createYesNo("showpayment8",MAN_SHOWPAYMENT8, values.showpayment8));
|
|
|
|
var language = values.billlanguage;
|
|
generalVals[2] = language;
|
|
$("#partOfBillLanguage").html(createBillLanguagePart(language));
|
|
generalVals[0] = parseInt(values.receiptfontsize);
|
|
$("#partOfReceiptFontSize").html(createReceiptFontPart());
|
|
|
|
$("#partOfBillLanguage").data("originalBillLanguage",language);
|
|
|
|
$("#admin-page").data("currency",values.currency);
|
|
|
|
$("#serverUrl").val(values.serverurl);
|
|
$("#guesturl").val(values.guesturl);
|
|
$("#guestcode").val(values.guestcode);
|
|
$("#dailycode").val(values.dailycode);
|
|
$("#email").val(values.email);
|
|
$("#emailbadrating").val(values.emailbadrating);
|
|
$("#emailratingcontact").val(values.emailratingcontact);
|
|
$("#receiveremail").val(values.receiveremail);
|
|
|
|
$("#webimpressum").val(values.webimpressum);
|
|
|
|
$("#cancelunpaidcode").val(values.cancelunpaidcode);
|
|
$("#cancelguestcode").val(values.cancelguestcode);
|
|
|
|
$("#hsinfile").val(values.hsinfile);
|
|
$("#hsoutfile").val(values.hsoutfile);
|
|
$("#hscurrency").val(values.hscurrency);
|
|
|
|
generalVals[5] = values.smtpauth;
|
|
generalVals[6] = values.smtpsecure;
|
|
generalVals[7] = values.bigfontworkreceipt;
|
|
generalVals[8] = values.prominentsearch;
|
|
generalVals[9] = values.groupworkitemsf;
|
|
|
|
generalVals[11] = parseInt(values.discount1);
|
|
generalVals[12] = parseInt(values.discount2);
|
|
generalVals[13] = parseInt(values.discount3);
|
|
$("#partOfDiscount1").html(createDiscount1Part());
|
|
$("#partOfDiscount2").html(createDiscount2Part());
|
|
$("#partOfDiscount3").html(createDiscount3Part());
|
|
generalVals[10] = values.austria;
|
|
generalVals[14] = values.digigopaysetready;
|
|
generalVals[15] = values.waitergopayprint;
|
|
generalVals[17] = values.oneprodworkrecf;
|
|
generalVals[18] = values.digiprintwork;
|
|
generalVals[19] = values.printandqueuejobs;
|
|
generalVals[20] = values.cashenabled;
|
|
generalVals[21] = values.beepcooked;
|
|
generalVals[22] = values.hotelinterface;
|
|
generalVals[23] = values.restaurantmode;
|
|
generalVals[24] = values.returntoorder;
|
|
|
|
generalVals[25] = values.closshowci;
|
|
generalVals[26] = values.closshowpaytaxes;
|
|
generalVals[27] = values.closshowprods;
|
|
|
|
generalVals[28] = values.showpayment2;
|
|
generalVals[29] = values.showpayment3;
|
|
generalVals[30] = values.showpayment4;
|
|
generalVals[31] = values.showpayment5;
|
|
generalVals[32] = values.showpayment6;
|
|
generalVals[33] = values.showpayment7;
|
|
generalVals[34] = values.showpayment8;
|
|
|
|
generalVals[35] = values.dashslot1;
|
|
generalVals[36] = values.dashslot2;
|
|
generalVals[37] = values.dashslot3;
|
|
|
|
generalVals[38] = values.groupworkitemsd;
|
|
generalVals[39] = values.oneprodworkrecd;
|
|
generalVals[40] = values.dblog;
|
|
generalVals[41] = values.priceinlist;
|
|
generalVals[42] = values.guestjobprint;
|
|
generalVals[43] = values.askdaycode;
|
|
generalVals[44] = values.asktablecode;
|
|
generalVals[45] = values.showdaycode;
|
|
|
|
defaulttmp = values.defaulttmp;
|
|
|
|
$("#smtphost").val(values.smtphost);
|
|
$("#partOfSmtpauth").html(createSMTPAuth(values.smtpauth));
|
|
$("#smtpuser").val(values.smtpuser);
|
|
$("#smtppass").val(values.smtppass);
|
|
$("#partOfSmtpsecure").html(createSMTPSecure(values.smtpsecure));
|
|
$("#smtpport").val(values.smtpport);
|
|
$("#guesttimeout").val(values.guesttimeout);
|
|
$("#startprodsearch").val(values.startprodsearch);
|
|
|
|
$("#discountname1").val(values.discountname1);
|
|
$("#discountname2").val(values.discountname2);
|
|
$("#discountname3").val(values.discountname3);
|
|
|
|
$("#memorylimit").val(values.memorylimit);
|
|
$("#updateurl").val(values.updateurl);
|
|
$("#tmpdir").val(values.tmpdir);
|
|
$("#ftphost").val(values.ftphost);
|
|
$("#ftpuser").val(values.ftpuser);
|
|
$("#ftppass").val(values.ftppass);
|
|
$("#hs3refresh").val(values.hs3refresh);
|
|
|
|
$("#paydeskid").val(values.paydeskid);
|
|
$("#aeskey").val(values.aeskey);
|
|
$("#certificatesn").val(values.certificatesn);
|
|
$("#rksvserver").val(values.rksvserver);
|
|
|
|
$("#partOfHotelInterface").html(createHotelInterfacePart(values.hotelinterface));
|
|
|
|
$("#configpart").trigger("create");
|
|
bindConfig();
|
|
continueInitialization();
|
|
} else {
|
|
setTimeout(function(){document.location.href = "index.html"},250); // not logged in
|
|
}
|
|
}
|
|
|
|
function insertSpeisekarte(speisekarte) {
|
|
if (speisekarte.status != "ERROR") {
|
|
predef = speisekarte.predef;
|
|
$("#speiseninfo").textinput( "option", "autogrow", true );
|
|
$("#speiseninfo").val(speisekarte.msg);
|
|
$("#speiseninfo").trigger('change');
|
|
}
|
|
bindingMenu();
|
|
}
|
|
|
|
function isSelectedOption(optionNo,option) {
|
|
if (optionNo == option) {
|
|
return " selected";
|
|
} else {
|
|
return "";
|
|
}
|
|
}
|
|
function createReceiptFontPart() {
|
|
var html = '<div class="ui-field-contain">';
|
|
html += '<label for="receiptfontsize">' + MAN_RECEIPT_FONTSIZE[lang] + ':</label>';
|
|
html += '<select name="receiptfontsize" id="receiptfontsize" data-theme="e">';
|
|
|
|
for($i=7;$i<=18;$i++) {
|
|
html += '<option value="' + $i + '"' + isSelectedOption($i,generalVals[0]) + '>' + $i + '</option>';
|
|
}
|
|
|
|
html += '</select></div>';
|
|
|
|
return html;
|
|
}
|
|
|
|
function createPaymentConfigPart(payment) {
|
|
var html = '<div class="ui-field-contain">';
|
|
html += '<label for="paymentconfig">' + MAN_PAYMENT_CONFIG[lang] + ':</label>';
|
|
html += '<select name="paymentconfig" id="paymentconfig" data-theme="e">';
|
|
if (payment == 0) {
|
|
html += '<option value="0" selected>Maxi</option>';
|
|
html += '<option value="1">Mini</option>';
|
|
} else {
|
|
html += '<option value="0">Maxi</option>';
|
|
html += '<option value="1" selected>Mini</option>';
|
|
}
|
|
html += '</select></div>';
|
|
return html;
|
|
}
|
|
|
|
function createAddRecPrinterPart(value) {
|
|
var html = '<div class="ui-field-contain">';
|
|
html += '<label for="addreceipttoprinter">' + MAN_ADD_RECPRINTER[lang] + ':</label>';
|
|
html += '<select name="addreceipttoprinter" id="addreceipttoprinter" data-theme="e">';
|
|
if ((value == "") || (value == "-") || (value == 0)) {
|
|
html += '<option value="0" selected>-</option>';
|
|
} else {
|
|
html += '<option value="0">-</option>';
|
|
}
|
|
for (var i=1;i<=6;i++) {
|
|
if (value == i) {
|
|
html += '<option value="' + i + '" selected>' + MAN_PRINTER[lang] + ' ' + i + '</option>';
|
|
} else {
|
|
html += '<option value="' + i + '">' + MAN_PRINTER[lang] + ' ' + i + '</option>';
|
|
}
|
|
}
|
|
html += '</select></div>';
|
|
return html;
|
|
}
|
|
|
|
function createBigFontWorkReceiptPart(theValue) {
|
|
var html = '<div class="ui-field-contain">';
|
|
html += '<label for="bigfontworkreceipt">' + MAN_WORKFONT_CONFIG[lang] + ':</label>';
|
|
html += '<select name="bigfontworkreceipt" id="bigfontworkreceipt" data-theme="e">';
|
|
if (theValue == 0) {
|
|
html += '<option value="0" selected>' + MAN_SIZE_NORMAL[lang] + '</option>';
|
|
html += '<option value="1">' + MAN_SIZE_BIG[lang] + '</option>';
|
|
} else {
|
|
html += '<option value="0">' + MAN_SIZE_NORMAL[lang] + '</option>';
|
|
html += '<option value="1" selected>' + MAN_SIZE_BIG[lang] + '</option>';
|
|
}
|
|
html += '</select></div>';
|
|
return html;
|
|
}
|
|
|
|
function createProminentSearchPart(theValue) {
|
|
return createYesNo("prominentsearch", MAN_PROMINENT_SEARCH, theValue);
|
|
}
|
|
|
|
function createDiscountPart(label,nameOnGui,generalValIndex) {
|
|
var html = '<div class="ui-field-contain">';
|
|
html += '<label for="' + label + '">' + nameOnGui[lang] + ':</label>';
|
|
html += '<select name="' + label + '" id="' + label + '" data-theme="e">';
|
|
for($i=5;$i<=100;$i+=5) {
|
|
html += '<option value="' + $i + '"' + isSelectedOption($i,generalVals[generalValIndex]) + '>' + $i + '</option>';
|
|
}
|
|
html += '</select></div>';
|
|
return html;
|
|
}
|
|
|
|
function createDiscount1Part() {
|
|
return createDiscountPart("discount1", MAN_DISCOUNT1, 11);
|
|
}
|
|
function createDiscount2Part() {
|
|
return createDiscountPart("discount2", MAN_DISCOUNT2, 12);
|
|
}
|
|
function createDiscount3Part() {
|
|
return createDiscountPart("discount3", MAN_DISCOUNT3, 13);
|
|
}
|
|
function createAustriaPart(theValue) {
|
|
return createYesNo("austria", MAN_AUSTRIA, theValue);
|
|
}
|
|
|
|
function createDigigopaysetready(theValue) {
|
|
return createYesNo("digigopaysetready",MAN_DIGI_GOPAY_SET_READY, theValue);
|
|
}
|
|
function createWaitergopayprint(theValue) {
|
|
return createYesNo("waitergopayprint",MAN_WAITER_GOPAY_PRINT, theValue);
|
|
}
|
|
function createOneprodworkreceiptsf(theValue) {
|
|
return createYesNo("oneprodworkrecf",MAN_ONE_PROD_WORKREC_F, theValue);
|
|
}
|
|
function createOneprodworkreceiptsd(theValue) {
|
|
return createYesNo("oneprodworkrecd",MAN_ONE_PROD_WORKREC_D, theValue);
|
|
}
|
|
function createDigiprintwork(theValue) {
|
|
return createYesNo("digiprintwork",MAN_DIGI_PRINTWORK,theValue);
|
|
}
|
|
function createGroupWorkItemsPartf(theValue) {
|
|
return createYesNo("groupworkitemsf", MAN_GROUP_WORK_ITEMS_F, theValue);
|
|
}
|
|
function createGroupWorkItemsPartd(theValue) {
|
|
return createYesNo("groupworkitemsd", MAN_GROUP_WORK_ITEMS_D, theValue);
|
|
}
|
|
function createPrintAndQueueJobs(theValue) {
|
|
return createYesNo("printandqueuejobs",MAN_PRINT_AND_QUEUE, theValue);
|
|
}
|
|
function createCash(theValue) {
|
|
return createYesNo("cashenabled",MAN_CASH, theValue);
|
|
}
|
|
|
|
function createYesNo(label,nameOnGui,theValue) {
|
|
var html = '<div class="ui-field-contain">';
|
|
html += '<label for="' + label + '">' + nameOnGui[lang] + ':</label>';
|
|
html += '<select name="' + label + '" id="' + label + '" data-theme="e">';
|
|
if (theValue == 0) {
|
|
html += '<option value="0" selected>' + MAN_NO[lang] + '</option>';
|
|
html += '<option value="1">' + MAN_YES[lang] + '</option>';
|
|
} else {
|
|
html += '<option value="0">' + MAN_NO[lang] + '</option>';
|
|
html += '<option value="1" selected>' + MAN_YES[lang] + '</option>';
|
|
}
|
|
html += '</select></div>';
|
|
return html;
|
|
}
|
|
|
|
function createDashslotPart(number,value) {
|
|
var label = MAN_DASHSLOT1;
|
|
if (number == 2) {
|
|
label = MAN_DASHSLOT2;
|
|
} else if (number == 3) {
|
|
label = MAN_DASHSLOT3;
|
|
}
|
|
var html = '<div class="ui-field-contain">';
|
|
html += '<label for="dashslot' + number + '">' + label[lang] + ':</label>';
|
|
html += '<select name="dashslot' + number + '" id="dashslot' + number + '" data-theme="e">';
|
|
|
|
html += '<option value="0" ' + (value == 0 ? 'selected' : '') + '>-</option>';
|
|
html += '<option value="1" ' + (value == 1 ? 'selected' : '') + '>Kellnereinnahmen</option>';
|
|
html += '<option value="2" ' + (value == 2 ? 'selected' : '') + '>Offene/abgerechnete Tische</option>';
|
|
html += '<option value="3" ' + (value == 3 ? 'selected' : '') + '>Produktverkäufe</option>';
|
|
html += '<option value="4" ' + (value == 4 ? 'selected' : '') + '>Produkteinnahmen</option>';
|
|
html += '<option value="5" ' + (value == 5 ? 'selected' : '') + '>Monatseinnahme</option>';
|
|
html += '<option value="6" ' + (value == 6 ? 'selected' : '') + '>Tageseinnahmen</option>';
|
|
html += '<option value="7" ' + (value == 7 ? 'selected' : '') + '>Verweildauer</option>';
|
|
|
|
html += '</select></div>';
|
|
|
|
return html;
|
|
}
|
|
|
|
function createWorkflowConfigPart(workflow) {
|
|
var html = '<div class="ui-field-contain">';
|
|
html += '<label for="workflowconfig">' + MAN_WORKFLOW[lang] + ':</label>';
|
|
html += '<select name="workflowconfig" id="workflowconfig" data-theme="e">';
|
|
|
|
if (workflow == 0) {
|
|
html += '<option value="0" selected>' + MAN_WORKFLOW_BOTH[lang] + '</option>';
|
|
html += '<option value="1">' + MAN_WORKFLOW_ONLY_DIGI[lang] + '</option>';
|
|
html += '<option value="2">' + MAN_WORKFLOW_ONLY_WR[lang] + '</option>';
|
|
html += '<option value="3">' + MAN_WORKFLOW_WR_AND_TRANSFER[lang] + '</option>';
|
|
} else if (workflow == 1) {
|
|
html += '<option value="0">' + MAN_WORKFLOW_BOTH[lang] + '</option>';
|
|
html += '<option value="1" selected>' + MAN_WORKFLOW_ONLY_DIGI[lang] + '</option>';
|
|
html += '<option value="2">' + MAN_WORKFLOW_ONLY_WR[lang] + '</option>';
|
|
html += '<option value="3">' + MAN_WORKFLOW_WR_AND_TRANSFER[lang] + '</option>';
|
|
} else if (workflow == 2){
|
|
html += '<option value="0">' + MAN_WORKFLOW_BOTH[lang] + '</option>';
|
|
html += '<option value="1">' + MAN_WORKFLOW_ONLY_DIGI[lang] + '</option>';
|
|
html += '<option value="2" selected>' + MAN_WORKFLOW_ONLY_WR[lang] + '</option>';
|
|
html += '<option value="3">' + MAN_WORKFLOW_WR_AND_TRANSFER[lang] + '</option>';
|
|
} else {
|
|
html += '<option value="0">' + MAN_WORKFLOW_BOTH[lang] + '</option>';
|
|
html += '<option value="1">' + MAN_WORKFLOW_ONLY_DIGI[lang] + '</option>';
|
|
html += '<option value="2">' + MAN_WORKFLOW_ONLY_WR[lang] + '</option>';
|
|
html += '<option value="3" selected>' + MAN_WORKFLOW_WR_AND_TRANSFER[lang] + '</option>';
|
|
}
|
|
html += '</select></div>';
|
|
|
|
html += "<p style='padding-left: 50px;padding-right: 50px;'><i>" + MAN_WORKFLOW_WR_AND_TRANSFER_HLP[lang] + "</i></p>";
|
|
return html;
|
|
}
|
|
|
|
function createSMTPAuth(smtpauth) {
|
|
var html = '<div class="ui-field-contain">';
|
|
html += '<label for="smtpauth">' + MAN_SMTPAUTH[lang] + ':</label>';
|
|
html += '<select name="smtpauth" id="smtpauth" data-theme="e">';
|
|
if (smtpauth == '0') {
|
|
html += '<option value="0" selected>' + MAN_NO[lang] + '</option>';
|
|
html += '<option value="1">' + MAN_YES[lang] + '</option>';
|
|
} else {
|
|
html += '<option value="0">' + MAN_NO[lang] + '</option>';
|
|
html += '<option value="1" selected>' + MAN_YES[lang] + '</option>';
|
|
}
|
|
html += '</select></div>';
|
|
return html;
|
|
}
|
|
|
|
function createSMTPSecure(smtpauth) {
|
|
var html = '<div class="ui-field-contain">';
|
|
html += '<label for="smtpsecure">' + MAN_SMTPSECURE[lang] + ':</label>';
|
|
html += '<select name="smtpsecure" id="smtpsecure" data-theme="e">';
|
|
if (smtpauth == '0') {
|
|
html += '<option value="0" selected>SSL</option>';
|
|
html += '<option value="1">TLS</option>';
|
|
} else {
|
|
html += '<option value="0">SSL</option>';
|
|
html += '<option value="1" selected>TLS</option>';
|
|
}
|
|
html += '</select></div>';
|
|
return html;
|
|
}
|
|
|
|
function createPayPrintTypePart(localOrServer) {
|
|
var html = '<div class="ui-field-contain">';
|
|
html += '<label for="payprinttype">' + MAN_PRINT_CONCEPT[lang] + ':</label>';
|
|
html += '<select name="payprinttype" id="payprinttype" data-theme="e">';
|
|
if ((localOrServer == 'l') || (localOrServer == '1')) {
|
|
html += '<option value="1" selected>Lokal</option>';
|
|
html += '<option value="2">Server</option>';
|
|
} else {
|
|
html += '<option value="1">Lokal</option>';
|
|
html += '<option value="2" selected>Server</option>';
|
|
}
|
|
html += '</select></div>';
|
|
return html;
|
|
}
|
|
function createBillLanguagePart(language) {
|
|
var html = '<div class="ui-field-contain">';
|
|
html += '<label for="billlanguage">' + MAN_LANG_OF_RECEIPT[lang] + ':</label>';
|
|
html += '<select name="billlanguage" id="billlanguage" data-theme="e">';
|
|
if (language == '0') {
|
|
html += '<option value="0" selected>Deutsch</option>';
|
|
html += '<option value="1">English</option>';
|
|
html += '<option value="2">Español</option>';
|
|
} else if (language == '1'){
|
|
html += '<option value="0">Deutsch</option>';
|
|
html += '<option value="1" selected>English</option>';
|
|
html += '<option value="2">Español</option>';
|
|
} else {
|
|
html += '<option value="0">Deutsch</option>';
|
|
html += '<option value="1">English</option>';
|
|
html += '<option value="2" selected>Español</option>';
|
|
}
|
|
html += '</select></div>';
|
|
return html;
|
|
}
|
|
function createHotelInterfacePart(hotelinterface) {
|
|
var html = '<div class="ui-field-contain">';
|
|
html += '<label for="hotelinterface">' + MAN_HOTELINTERFACE[lang] + ':</label>';
|
|
html += '<select name="hotelinterface" id="hotelinterface" data-theme="e">';
|
|
if (hotelinterface == '0') {
|
|
html += '<option value="0" selected>-</option>';
|
|
html += '<option value="1">HS/3 Standardinterface</option>';
|
|
} else if (hotelinterface == '1'){
|
|
html += '<option value="0">-</option>';
|
|
html += '<option value="1" selected>HS/3 Standardinterface</option>';
|
|
}
|
|
html += '</select></div>';
|
|
return html;
|
|
}
|
|
|
|
function changeConfig(changedEntries) {
|
|
doAjax("POST","php/contenthandler.php?module=admin&command=changeConfig",{changed:changedEntries},reactOnConfigChange,"Fehler");
|
|
}
|
|
|
|
function reactOnConfigChange(result) {
|
|
if (result.status == "OK") {
|
|
$(".genConfigEl").data("changed",false);
|
|
getGeneralConfigItems();
|
|
alert(MAN_CONFIG_CHANGED[lang]);
|
|
} else {
|
|
alert(MAN_CONFIG_CHANGE_ERROR[lang] + ": " + result.msg);
|
|
}
|
|
}
|
|
|
|
function initRestoreFileUpload() {
|
|
var settings = {
|
|
url: "php/contenthandler.php?module=admin&command=restore",
|
|
method: "POST",
|
|
allowedTypes:"json,zip",
|
|
fileName: "userfile",
|
|
multiple: false,
|
|
uploadQueueOrder: 'replace',
|
|
showFileCounter: false,
|
|
dragDropStr: "<span>Datei zum Wiederherstellen</span>",
|
|
extErrorStr: " ist nicht erlaubt. Erlaubte Dateiendung: ",
|
|
onSubmit: function() {
|
|
$("#waitimportinprogress").html(MAN_IMPORT_IN_PROGRESS[lang] + ' <img id="progressimginpopup" src="php/3rdparty/images/ajax-loader.gif" />');
|
|
$("#waitimportinprogress").show();
|
|
},
|
|
onSuccess:function(files,data,xhr)
|
|
{
|
|
$("#waitimportinprogress").hide();
|
|
|
|
var answer = jQuery.parseJSON(data);
|
|
if (answer.status != "OK") {
|
|
alert("Upload war nicht erfolgreich: " + answer.msg);
|
|
} else {
|
|
alert("Import war erfolgreich.");
|
|
setTimeout(function(){
|
|
document.location.href = "index.html?v=1.4.13";
|
|
},250);
|
|
}
|
|
},
|
|
onError: function(files,status,errMsg)
|
|
{
|
|
$("#waitimportinprogress").hide();
|
|
$("#restorestatus").html("<font color='red'>Upload fehlgeschlagen</font>");
|
|
}
|
|
}
|
|
$("#restorefilearea").uploadFile(settings);
|
|
}
|
|
|
|
$(document).ready(function() {
|
|
$.ajaxSetup({ cache: false });
|
|
$("#reprintworkreceipt").val("");
|
|
requestUnpaidTables();
|
|
var refreshId = setInterval(function() {
|
|
requestUnpaidTables();
|
|
}, 5000);
|
|
|
|
initRestoreFileUpload();
|
|
});
|
|
|
|
function requestUnpaidTables() {
|
|
doAjaxAsync("GET","php/contenthandler.php?module=queue&command=getUnpaidTables",null,insertUnpaidTables,null);
|
|
}
|
|
|
|
function insertUnpaidTables(answer) {
|
|
if (answer.status == "OK") {
|
|
unpaidTables = answer.msg;
|
|
}
|
|
}
|
|
|
|
function areYouSure(text1, text2, button, callback) {
|
|
$("#sure .sure-1").text(text1);
|
|
$("#sure .sure-2").text(text2);
|
|
$("#sure .sure-do").text(button).off("click.sure").on("click.sure", function() {
|
|
callback();
|
|
$(this).off("click.sure");
|
|
});
|
|
$.mobile.changePage("#sure");
|
|
}
|
|
|
|
function isNumeric(n) {
|
|
return !isNaN(parseFloat(n)) && isFinite(n);
|
|
}
|
|
|
|
function startCreateClosing(remark,doPrint) {
|
|
if (unpaidTables.length == "") {
|
|
hideClosingBtn();
|
|
showProgressPopup();
|
|
doAjax("POST","php/contenthandler.php?module=closing&command=createClosing",{ remark: remark, print: (doPrint ? 1 : 0) },createClosing,"Tagesabschluss");
|
|
} else {
|
|
|
|
|
|
areYouSure("Tageserfassung", MAN_UNPAID1[lang] + unpaidTables + ". " + MAN_UNPAID2[lang], MAN_YES[lang], function() {
|
|
hideClosingBtn();
|
|
showProgressPopup();
|
|
doAjax("POST","php/contenthandler.php?module=closing&command=createClosing",{ remark: remark, print: (doPrint ? 1 : 0) },createClosing,"Tagesabschluss");
|
|
});
|
|
}
|
|
}
|
|
|
|
function hideClosingBtn() {
|
|
$("#closingwaiticon").show();
|
|
$("#createclosing").hide();
|
|
$("#createclosingnoprint").hide();
|
|
}
|
|
|
|
function showClosingBtn() {
|
|
$("#closingwaiticon").hide();
|
|
$("#createclosing").show();
|
|
$("#createclosingnoprint").show();
|
|
}
|
|
|
|
function bindingClosing() {
|
|
$("#createclosing").off("click").on("click", function (e) {
|
|
var remarkText =$('#remarkfield').val();
|
|
$('#remarkfield').val("");
|
|
|
|
var filteredRemark = remarkText.replace(/\f/g,"").replace(/\n/g,"").replace(/\r/g,"").replace(/\t/g,"").replace(/\v/g,"");
|
|
startCreateClosing(filteredRemark,true);
|
|
});
|
|
|
|
$("#createclosingnoprint").off("click").on("click", function (e) {
|
|
var remarkText =$('#remarkfield').val();
|
|
$('#remarkfield').val("");
|
|
|
|
var filteredRemark = remarkText.replace(/\f/g,"").replace(/\n/g,"").replace(/\r/g,"").replace(/\t/g,"").replace(/\v/g,"");
|
|
startCreateClosing(filteredRemark,false);
|
|
});
|
|
|
|
$(".csvExportButton").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=bill&command=exportCsvOfClosing&closingid=" + closingid;
|
|
});
|
|
$(".xlsxExportButton").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=bill&command=exportXlsxOfClosing&closingid=" + closingid;
|
|
});
|
|
$(".csvExportAllButton").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=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("_");
|
|
var closingid = button_id.substr(pos_underscore+1,button_id.length-1);
|
|
var emailaddr = $("#email_" + closingid).val();
|
|
|
|
if (emailaddr == "") {
|
|
alert(MAN_EMAIL_EMPTY[lang]);
|
|
} else if (emailaddr.indexOf('@') < 0) {
|
|
alert(MAN_EMAIL_WRONG_FORMAT[lang]);
|
|
} else {
|
|
doAjax("GET","php/contenthandler.php?module=closing&command=emailCsv",{closingid: closingid,emailaddress:emailaddr,topic:MAN_CLOSING[lang]},handleResultOfDbAction,"Emailproblem");
|
|
}
|
|
});
|
|
|
|
$(".printButton").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
var button_id = this.id;
|
|
//this.id = "printexport_id"
|
|
var pos_underscore = button_id.indexOf("_");
|
|
var closingid = button_id.substr(pos_underscore+1,button_id.length-1);
|
|
|
|
doAjax("GET","php/contenthandler.php?module=closing&command=getClosing",{closingid: closingid},doPrinting,"Druckproblem");
|
|
});
|
|
|
|
$(".printsummary").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
var closingid = this.id.split("_")[1];
|
|
|
|
if (generalVals[1] == 2) {
|
|
doAjax("GET","php/contenthandler.php?module=printqueue&command=queueClosingSummary",{closingid: closingid},null,"Druckproblem");
|
|
} else {
|
|
doAjax("GET","php/contenthandler.php?module=closing&command=getClosingSummary",{closingid: closingid},doPrintClosingSummary,"Druckproblem");
|
|
}
|
|
});
|
|
|
|
$("#select-year").change(function() {
|
|
getClosingsOfSelectedDate();
|
|
});
|
|
$("#select-month").change(function() {
|
|
getClosingsOfSelectedDate();
|
|
});
|
|
}
|
|
|
|
function bindingRolesPart() {
|
|
$("#rolespart").off("collapsibleexpand").on("collapsibleexpand", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
if (!rolesOnceExtended) {
|
|
doAjax("GET","php/contenthandler.php?module=admin&command=getRoleList",null, fillRoleListIntoGui,"no role data received",true);
|
|
}
|
|
});
|
|
}
|
|
|
|
function bindingExports() {
|
|
$(".exportbtn").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
|
|
var selectedMonthStart = $("#select-month-export-start").find(":selected").val();
|
|
var selectedYearStart = $("#select-year-export-start").find(":selected").val();
|
|
|
|
var selectedMonthEnd = $("#select-month-export-end").find(":selected").val();
|
|
var selectedYearEnd = $("#select-year-export-end").find(":selected").val();
|
|
|
|
var dateparams = "lang=" + lang + "&";
|
|
dateparams += "startMonth=" + selectedMonthStart + "&";
|
|
dateparams += "startYear=" + selectedYearStart + "&";
|
|
dateparams += "endMonth=" + selectedMonthEnd + "&";
|
|
dateparams += "endYear=" + selectedYearEnd;
|
|
|
|
var theId = this.id;
|
|
if (theId == "createprodexport") {
|
|
window.location.href = "php/contenthandler.php?module=products&command=exportCsv";
|
|
} else if (theId == "createuserexport") {
|
|
window.location.href = "php/contenthandler.php?module=admin&command=exportUserCsv";
|
|
} else if (theId == "createconfigexport") {
|
|
window.location.href = "php/contenthandler.php?module=admin&command=exportConfigCsv";
|
|
} else if (theId == "createdbexport") {
|
|
window.location.href = "php/contenthandler.php?module=bill&command=exportCsv&" + dateparams;
|
|
} else if (theId == "createdbexportxlsx") {
|
|
window.location.href = "php/contenthandler.php?module=bill&command=exportXlsx&" + dateparams;
|
|
} else if (theId == "createpdfexport") {
|
|
window.open("php/contenthandler.php?module=bill&command=exportPdfReport&" + dateparams,'_blank');
|
|
} else if (theId == "createpdfsummary") {
|
|
window.open("php/contenthandler.php?module=bill&command=exportPdfSummary&" + dateparams,'_blank');
|
|
} else if (theId == "createlogexport") {
|
|
window.open("php/contenthandler.php?module=admin&command=exportLog",'_blank');
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
function bindingMenu() {
|
|
$("#readspeisekarte").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
var text = $("#speiseninfo").val();
|
|
doAjaxSuppressError("POST", "php/contenthandler.php?module=admin&command=fillSpeisekarte", {speisekarte:text}, confirmMsg, "Fehler");
|
|
});
|
|
}
|
|
|
|
function bindConfig() {
|
|
$( ".genConfigEl" ).keyup(function(e) {
|
|
$(this).data("changed",true);
|
|
});
|
|
|
|
$("#changeConfig").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
|
|
var changeInfoText = "";
|
|
var changedEntries = [];
|
|
var i=0;
|
|
var aGenConfigEntry = "";
|
|
var isChanged = false;
|
|
var atLeatOneChange = false;
|
|
var entryName = "";
|
|
var type = "i";
|
|
for (i=0;i<generalValuesSettings.length;i++) {
|
|
aGenConfigEntry = generalValuesSettings[i];
|
|
type = aGenConfigEntry[2];
|
|
|
|
entryName = aGenConfigEntry[0];
|
|
if (type == "i") {
|
|
isChanged = hasChangedData("#" + entryName);
|
|
|
|
if (isChanged) {
|
|
var valueElToChange = {
|
|
name: entryName,
|
|
value: $("#" + entryName).val(),
|
|
needsCheck : aGenConfigEntry[3],
|
|
checkTxt : (aGenConfigEntry[3] ? aGenConfigEntry[4] : "")
|
|
};
|
|
|
|
if (entryName == "aeskey") {
|
|
var aeskey = $("#aeskey").val().trim();
|
|
if (aeskey.length != 64) {
|
|
alert(MAN_AESKEY_WRONG_LENGTH[lang]);
|
|
return;
|
|
}
|
|
|
|
var isOk = /^[0-9A-F]{64}$/i.test(aeskey);
|
|
if (!isOk) {
|
|
alert(MAN_AESKEY_NO_HEX[lang]);
|
|
return;
|
|
}
|
|
}
|
|
|
|
changedEntries[changedEntries.length] = valueElToChange;
|
|
}
|
|
|
|
} else if (type == "s") {
|
|
var selectedVal = $("#" + entryName).find(":selected").val();
|
|
if (generalVals[aGenConfigEntry[3]] != selectedVal) {
|
|
isChanged = true;
|
|
var valueElToChange = {
|
|
name: entryName,
|
|
value: selectedVal,
|
|
needsCheck : aGenConfigEntry[3],
|
|
checkTxt : (aGenConfigEntry[3] ? aGenConfigEntry[4] : "")
|
|
};
|
|
changedEntries[changedEntries.length] = valueElToChange;
|
|
} else {
|
|
isChanged = false;
|
|
}
|
|
}
|
|
if (isChanged) {
|
|
atLeatOneChange = true;
|
|
if (changeInfoText == "") {
|
|
changeInfoText += " " + aGenConfigEntry[1];
|
|
} else {
|
|
changeInfoText += ", " + aGenConfigEntry[1];
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
if (!atLeatOneChange) {
|
|
$( "#nochangeddata" ).popup( "open", {transition: 'flip'} );
|
|
} else {
|
|
areYouSure(MAN_CHANGE_CONFIG_HEAD[lang], MAN_CHANGE_CONFIG_CONTENT[lang] + changeInfoText, MAN_YES[lang], function() {
|
|
var isValid = true;
|
|
for (i=0;i<changedEntries.length;i++) {
|
|
var anEntryToChange = changedEntries[i];
|
|
var needsCheck = anEntryToChange.needsCheck;
|
|
|
|
var theVal = anEntryToChange.value;
|
|
if (needsCheck > 0) {
|
|
if ((typeof theVal == 'undefined') || (theVal == null)){
|
|
isValid = false;
|
|
alert(anEntryToChange.checkTxt);
|
|
return;
|
|
}
|
|
}
|
|
if (needsCheck == 1) {
|
|
if (theVal.trim() == "") {
|
|
isValid = false;
|
|
alert(anEntryToChange.checkTxt);
|
|
}
|
|
} else if (needsCheck == 2) {
|
|
anEntryToChange.value = theVal.replace(",",".");
|
|
if (!isNumeric(theVal.replace(",","."))) {
|
|
isValid = false;
|
|
alert(anEntryToChange.checkTxt);
|
|
}
|
|
}
|
|
};
|
|
if (isValid) {
|
|
changeConfig(changedEntries);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
$("#configpart").off("collapsibleexpand").on("collapsibleexpand", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
setVisibilityOfAustriaButtons();
|
|
setVisibilityDueToWorkflow();
|
|
setVisibilityDueToPrintType();
|
|
setVisibilityHs3DueToHotelInterface();
|
|
});
|
|
}
|
|
|
|
|
|
function binding() {
|
|
|
|
$("#backup_btn").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
window.location.href = "php/contenthandler.php?module=admin&command=backup&type=configuration";
|
|
});
|
|
|
|
$("#backup_btnall").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
window.location.href = "php/contenthandler.php?module=admin&command=backup&type=all";
|
|
});
|
|
|
|
$("#backup_btnalllogs").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
window.location.href = "php/contenthandler.php?module=admin&command=backup&type=alllogs";
|
|
});
|
|
|
|
$("#backup_btnftpall").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
showProgressPopup();
|
|
doAjax("GET","php/contenthandler.php?module=admin&command=ftpbackup&type=all",null,handleFtpResult,null);
|
|
});
|
|
|
|
$("#backupguests_btn").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
window.location.href = "php/contenthandler.php?module=admin&command=backup&type=confandguests";
|
|
});
|
|
|
|
$("#golive").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
areYouSure("Produktivbetrieb beginnen", "Alle Umsatz- und Logdaten löschen?", "Ja", function() {
|
|
golive();
|
|
});
|
|
});
|
|
|
|
$("#update_btn").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
if (newerversionavailable == 0) {
|
|
alert("Update not possible (version on server unknown or not newer): " + version);
|
|
} else {
|
|
doAjax("GET","php/updatehandler.php?command=updatecheck",null,handleUpdateCheckResult,"Skriptproblem");
|
|
}
|
|
});
|
|
|
|
$("#shutdown_btn").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
doAjax("GET","php/contenthandler.php?module=admin&command=shutdown",null,handleAnswerShutdown,"Skriptproblem");
|
|
});
|
|
|
|
$("#optimize_btn").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
doAjax("GET","php/contenthandler.php?module=admin&command=optimize",null,handleAnswerOptimize,"Skriptproblem");
|
|
});
|
|
// $("#initreceiptbutton").off("click").on("click", function (e) {
|
|
// e.stopImmediatePropagation();
|
|
// e.preventDefault();
|
|
// doAjax("GET","php/contenthandler.php?module=bill&command=initaustriareceipt",null,handleAnswerInitReceipt,"Skriptproblem");
|
|
// });
|
|
|
|
$("#dellogobtn").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
doAjax("GET","php/contenthandler.php?module=admin&command=deletelogo",null,handleDelLogo,"Skriptproblem");
|
|
});
|
|
|
|
$("#readsamplemenu").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
$("#speiseninfo").val(predef);
|
|
});
|
|
|
|
$("#updateprintqueue").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
getSpooledPrintJobs();
|
|
});
|
|
|
|
$("#reprintworkreceiptbtn").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
var data = {
|
|
workid: $("#reprintworkreceipt").val()
|
|
};
|
|
doAjax("GET","php/contenthandler.php?module=printqueue&command=reprintworkreceipt",data,handleReprint,null);
|
|
});
|
|
$("#clearprintqueue").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
|
|
doAjax("GET","php/contenthandler.php?module=printqueue&command=clearprintjobs",null,insertPrintQueue,null);
|
|
});
|
|
|
|
$("#taxass_apply").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
var foodTax = $("#taxesassfood option:selected").val();
|
|
if (foodTax == "") {
|
|
foodTax = -1;
|
|
}
|
|
var drinksTax = $("#taxesassdrinks option:selected").val();
|
|
if (drinksTax == "") {
|
|
drinksTax = -1;
|
|
}
|
|
|
|
var data = {
|
|
food: foodTax,
|
|
drinks: drinksTax
|
|
};
|
|
doAjax("POST","php/contenthandler.php?module=admin&command=assignTaxes",data,confirmMsg,"Problem Steuersatzzuweisung");
|
|
});
|
|
|
|
$("#defaulttmpbtn").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
$("#tmpdir").val(defaulttmp);
|
|
$("#tmpdir").data("changed",true);
|
|
});
|
|
|
|
bindSelectionsWithActions();
|
|
}
|
|
|
|
function getSpooledPrintJobs() {
|
|
doAjax("GET","php/contenthandler.php?module=printqueue&command=getPrintJobOverview",null,insertPrintQueue,null);
|
|
}
|
|
|
|
function getVersionInfoForUpdate() {
|
|
var data = {
|
|
n: getMillis()
|
|
};
|
|
|
|
doAjax("GET","php/updatehandler.php?command=getAvailableVersion",data,insertAvailableUpdateVersion,null,true);
|
|
}
|
|
|
|
function insertAvailableUpdateVersion(answer) {
|
|
$("#urlpath").val(answer.url);
|
|
if (answer.status == "OK") {
|
|
$("#availversion").html(answer.msg);
|
|
newerversionavailable = answer.neweravailable;
|
|
} else {
|
|
$("#availversion").html('?');
|
|
}
|
|
}
|
|
|
|
function handleFtpResult(answer) {
|
|
closeProgressPopup();
|
|
if (answer.status != "OK") {
|
|
alert("Error: " + answer.msg);
|
|
return;
|
|
}
|
|
alert("Aktion durchgeführt");
|
|
}
|
|
|
|
function handleUpdateCheckResult(answer) {
|
|
if (answer.status != "OK") {
|
|
alert("Error: " + answer.msg);
|
|
return;
|
|
}
|
|
var updateinfolines = answer.msg;
|
|
|
|
var totalLines = updateinfolines.length;
|
|
|
|
if (totalLines < 2) {
|
|
alert("Info file not valid");
|
|
return;
|
|
}
|
|
|
|
totalLines--;
|
|
|
|
$("#sliderarea").show();
|
|
|
|
for (var index=0;index<totalLines;index++) {
|
|
var data = {
|
|
fileindex: index,
|
|
millis: getMillis(),
|
|
totalLines: totalLines
|
|
};
|
|
doAjax("GET","php/updatehandler.php?command=replace",data,handleUpdateReplace,"Replace problem",null,false);
|
|
}
|
|
|
|
$("#sliderarea").hide();
|
|
|
|
var millis=getMillis();
|
|
setTimeout(function(){
|
|
document.location.href = "install.html?v=1.4.13&mode=onlyupdate&n=" + millis;
|
|
},250);
|
|
document.location.href = "install.html?v=1.4.13&mode=onlyupdate&n=" + millis;
|
|
}
|
|
|
|
function handleUpdateReplace(answer) {
|
|
if (answer.status != "OK") {
|
|
alert("Fehler: " + answer.msg);
|
|
location.reload();
|
|
}
|
|
|
|
var index = parseInt(answer.msg.index) + 1;
|
|
var file = answer.msg.file;
|
|
var totalLines = parseInt(answer.msg.totalLines);
|
|
var porc = Math.round(index * 100 / totalLines);
|
|
|
|
$("#updatestatus").html(porc + "% (" + toHtml(file) + ")");
|
|
$("#updateslider").val(porc);
|
|
$("#updateslider").slider("refresh");
|
|
}
|
|
|
|
function getPrinterInstance() {
|
|
var data = {
|
|
n: getMillis()
|
|
};
|
|
doAjax("GET","php/contenthandler.php?module=admin&command=getprinterinstances",data,insertPrinterInstance,null,true);
|
|
}
|
|
|
|
function insertPrinterInstance(answer) {
|
|
if (answer.status == "OK") {
|
|
setPrinterInstance("pia_k1",answer.msg.k1);
|
|
setPrinterInstance("pia_k2",answer.msg.k2);
|
|
setPrinterInstance("pia_k3",answer.msg.k3);
|
|
setPrinterInstance("pia_k4",answer.msg.k4);
|
|
setPrinterInstance("pia_k5",answer.msg.k5);
|
|
setPrinterInstance("pia_k6",answer.msg.k6);
|
|
|
|
setPrinterInstance("pia_f1",answer.msg.f1);
|
|
setPrinterInstance("pia_f2",answer.msg.f2);
|
|
|
|
setPrinterInstance("pia_d1",answer.msg.d1);
|
|
setPrinterInstance("pia_d2",answer.msg.d2);
|
|
|
|
renderPrinterInstancesTable();
|
|
|
|
bindPrinterInstanceClick();
|
|
}
|
|
}
|
|
|
|
function setPrinterInstance(tabCellId,value) {
|
|
$("#" + tabCellId).data("instance",value);
|
|
}
|
|
|
|
function bindPrinterInstanceClick() {
|
|
$(".prinstancerow td").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
var col = $(this).parent().children().index($(this));
|
|
// REM col0 is only name of row, 1-10 are the real instances numbeer
|
|
if (col > 0) {
|
|
var parts = this.id.split("_");
|
|
var cellRowId = "#pia_" + parts[1];
|
|
$(cellRowId).data("instance",col);
|
|
}
|
|
renderPrinterInstancesTable();
|
|
});
|
|
|
|
$("#applyPrinterInstances").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
|
|
var k1 = $("#pia_k1").data("instance");
|
|
var k2 = $("#pia_k2").data("instance");
|
|
var k3 = $("#pia_k3").data("instance");
|
|
var k4 = $("#pia_k4").data("instance");
|
|
var k5 = $("#pia_k5").data("instance");
|
|
var k6 = $("#pia_k6").data("instance");
|
|
|
|
var f1 = $("#pia_f1").data("instance");
|
|
var f2 = $("#pia_f2").data("instance");
|
|
|
|
var d1 = $("#pia_d1").data("instance");
|
|
var d2 = $("#pia_d2").data("instance");
|
|
|
|
var data = {
|
|
k1: k1,
|
|
k2: k2,
|
|
k3: k3,
|
|
k4: k4,
|
|
k5: k5,
|
|
k6: k6,
|
|
|
|
f1: f1,
|
|
f2: f2,
|
|
|
|
d1: d1,
|
|
d2: d2
|
|
};
|
|
|
|
doAjax("POST","php/contenthandler.php?module=admin&command=setprinterinstances",data,handleResultOfDbAction,null,true);
|
|
});
|
|
|
|
}
|
|
|
|
function renderPrinterInstancesTable() {
|
|
renderPrinterInstanceRow("k",6);
|
|
renderPrinterInstanceRow("f",2);
|
|
renderPrinterInstanceRow("d",2);
|
|
}
|
|
|
|
function renderPrinterInstanceRow(type,typeCount) {
|
|
for (var typeNo = 1;typeNo<=typeCount;typeNo++) {
|
|
var cellRowId = "#pia_" + type + typeNo;
|
|
var prinstance = $(cellRowId).data("instance");
|
|
|
|
for (var InstanceNo = 1;InstanceNo<=10;InstanceNo++) {
|
|
if (InstanceNo == prinstance) {
|
|
$(cellRowId + "_" + InstanceNo).html("<img src=img/ok.png />");
|
|
} else {
|
|
$(cellRowId + "_" + InstanceNo).html("");
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
function bindSelectionsWithActions() {
|
|
$("#austria").off("change").on("change", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
var newaustriaSelectionBox = $("#austria").find(":selected").val();
|
|
$("#partOfAustria").html(createAustriaPart(newaustriaSelectionBox));
|
|
setVisibilityOfAustriaButtons();
|
|
$("#configpart").trigger("create");
|
|
bindSelectionsWithActions();
|
|
});
|
|
|
|
$("#workflowconfig").off("change").on("change", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
var newworkflowSel = $("#workflowconfig").find(":selected").val();
|
|
$("#partOfWorkflowConfig").html(createWorkflowConfigPart(newworkflowSel));
|
|
setVisibilityDueToWorkflow();
|
|
$("#configpart").trigger("create");
|
|
bindSelectionsWithActions();
|
|
});
|
|
$("#dashslot1").off("change").on("change", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
var newworkflowSel = $("#dashslot1").find(":selected").val();
|
|
$("#partOfDashslot1").html(createDashslotPart(1,newworkflowSel));
|
|
$("#configpart").trigger("create");
|
|
bindSelectionsWithActions();
|
|
});
|
|
$("#dashslot2").off("change").on("change", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
var newworkflowSel = $("#dashslot2").find(":selected").val();
|
|
$("#partOfDashslot2").html(createDashslotPart(2,newworkflowSel));
|
|
$("#configpart").trigger("create");
|
|
bindSelectionsWithActions();
|
|
});
|
|
$("#dashslot3").off("change").on("change", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
var newworkflowSel = $("#dashslot3").find(":selected").val();
|
|
$("#partOfDashslot3").html(createDashslotPart(3,newworkflowSel));
|
|
$("#configpart").trigger("create");
|
|
bindSelectionsWithActions();
|
|
});
|
|
$("#payprinttype").off("change").on("change", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
var newval = $("#payprinttype").find(":selected").val();
|
|
$("#partOfPayPrintType").html(createPayPrintTypePart(newval));
|
|
setVisibilityDueToPrintType();
|
|
$("#configpart").trigger("create");
|
|
bindSelectionsWithActions();
|
|
});
|
|
|
|
$("#hotelinterface").off("change").on("change", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
var newval = $("#hotelinterface").find(":selected").val();
|
|
$("#partOfHotelInterface").html(createHotelInterfacePart(newval));
|
|
setVisibilityHs3DueToHotelInterface();
|
|
$("#configpart").trigger("create");
|
|
bindSelectionsWithActions();
|
|
});
|
|
}
|
|
|
|
function setVisibilityOfAustriaButtons() {
|
|
var austriaSelectionBox = $("#austria").find(":selected").val();
|
|
if (austriaSelectionBox == 1) {
|
|
$("#partIfAustriaEnabled").show();
|
|
} else {
|
|
$("#partIfAustriaEnabled").hide();
|
|
}
|
|
}
|
|
|
|
function setVisibilityDueToWorkflow() {
|
|
var workflowBox = $("#workflowconfig").find(":selected").val();
|
|
if (workflowBox == 1) {
|
|
$("#partIfDigiWorkflow").show();
|
|
} else {
|
|
$("#partIfDigiWorkflow").hide();
|
|
}
|
|
if (workflowBox == 2) {
|
|
$("#partIfWorkReceiptsWorkflow").show();
|
|
} else {
|
|
$("#partIfWorkReceiptsWorkflow").hide();
|
|
}
|
|
}
|
|
|
|
function setVisibilityDueToPrintType() {
|
|
var payprinttype = $("#payprinttype").find(":selected").val();
|
|
if (payprinttype == 2) {
|
|
$("#partAddrecPrinterIfServerPrint").show();
|
|
} else {
|
|
$("#partAddrecPrinterIfServerPrint").hide();
|
|
}
|
|
}
|
|
|
|
function setVisibilityHs3DueToHotelInterface() {
|
|
var hotelinterface = $("#hotelinterface").find(":selected").val();
|
|
if (hotelinterface == 1) {
|
|
$("#hs3area").show();
|
|
} else {
|
|
$("#hs3area").hide();
|
|
}
|
|
}
|
|
|
|
function confirmMsg (result) {
|
|
if (result.status != 'OK') {
|
|
var code = result.code;
|
|
if (code == 26) {
|
|
alert(MAN_PARSE_ERROR_LINE[lang] + ":\n" + result.line + "\n" + MAN_PARSE_ERROR[lang]);
|
|
} else if (code == 27) {
|
|
alert(MAN_WRONG_NUMBER_FORMAT[lang]);
|
|
} else {
|
|
alert (MAN_PARSE_ERROR[lang]);
|
|
}
|
|
} else {
|
|
alert("Aktion durchgeführt");
|
|
window.location.reload();
|
|
}
|
|
}
|
|
|
|
function handleReprint(answer) {
|
|
if (answer.status == "OK") {
|
|
$("#reprintworkreceipt").val("");
|
|
getSpooledPrintJobs();
|
|
} else {
|
|
alert("Fehler: " + answer.msg);
|
|
}
|
|
}
|
|
function handleDelLogo() {
|
|
d = new Date();
|
|
$("#logoimgpart").attr("src", "php/contenthandler.php?module=printqueue&command=getLogoAsPng&"+d.getTime());
|
|
}
|
|
|
|
function handleAnswerShutdown(result) {
|
|
if (result.status == "OK") {
|
|
alert("Der Server wird in Kürze heruntergefahren.");
|
|
} else {
|
|
alert("Fehler " + result.code + ": " + result.msg);
|
|
}
|
|
}
|
|
|
|
function handleAnswerOptimize(result) {
|
|
if (result.status == "OK") {
|
|
alert("Die Datenbanktabellen wurden aufgeräumt.");
|
|
} else {
|
|
alert("Fehler " + result.code + ": " + result.msg);
|
|
}
|
|
}
|
|
function handleAnswerInitReceipt(answer) {
|
|
if (answer.status == "OK") {
|
|
alert("Startbeleg wurde erzeugt.");
|
|
} else {
|
|
alert("Fehler: " + answer.msg);
|
|
}
|
|
}
|
|
function hasChangedData(idOfElem) {
|
|
var fieldChangedAttr = $("" + idOfElem).data("changed");
|
|
if (typeof fieldChangedAttr != 'undefined') {
|
|
if ((fieldChangedAttr == null) || (fieldChangedAttr == false)) {
|
|
fieldChangedAttr = false;
|
|
}
|
|
} else {
|
|
return false;
|
|
}
|
|
return fieldChangedAttr;
|
|
}
|
|
|
|
function showProgressPopup() {
|
|
$( "#progresspopup" ).popup( "open", {transition: 'flip'} );
|
|
}
|
|
function closeProgressPopup() {
|
|
$( "#progresspopup" ).popup("close");
|
|
}
|
|
|
|
function createClosing(closingresult) {
|
|
showClosingBtn();
|
|
closeProgressPopup();
|
|
requestUnpaidTables();
|
|
setMonthYearSelection();
|
|
getLastClosings();
|
|
if (closingresult.status == "OK") {
|
|
var decpoint = $("#admin-page").data("decpoint");
|
|
var msg = closingresult.msg;
|
|
var closingid = msg.closingid;
|
|
var doPrint = closingresult.print;
|
|
alert("Summe des Tagesabschlusses (" + $("#admin-page").data("currency") + "): " + (msg.result.toString()).replace(".", decpoint));
|
|
|
|
if (doPrint == 1) {
|
|
if (generalVals[1] == 2) {
|
|
doAjax("GET","php/contenthandler.php?module=printqueue&command=queueClosingSummary",{closingid: closingid},null,"Druckproblem");
|
|
} else {
|
|
doAjax("GET","php/contenthandler.php?module=closing&command=getClosingSummary",{closingid: closingid},doPrintClosingSummary,"Druckproblem");
|
|
}
|
|
}
|
|
} else {
|
|
if (closingresult.code == 33) {
|
|
alert("Fehler: " + MAN_CLOSING_TIME_LIMIT_ERROR[lang]);
|
|
} else {
|
|
alert("Fehler " + closingresult.code + ": " + closingresult.msg);
|
|
}
|
|
}
|
|
}
|
|
|
|
function doPrintClosingSummary(closingdata) {
|
|
if (closingdata.status == "OK") {
|
|
var msg = closingdata.msg;
|
|
if (msg != null) {
|
|
var closing = msg.closing;
|
|
var overview = msg.overview;
|
|
var details = msg.details;
|
|
|
|
var currency = $("#admin-page").data("currency");
|
|
var decpoint = $("#admin-page").data("decpoint");
|
|
|
|
var html = "<i>Tageslosung Nr.</i> " + closing.id + "<br>";
|
|
html += "<i>Datum:</i> " + closing.closingdate + "<br>";
|
|
|
|
var remark = closing.remark;
|
|
if ((remark != null) && (remark != "")) {
|
|
html += "<i>Bemerkung: " + remark + "<br>";
|
|
}
|
|
|
|
html += "<i>Brutto-Summe: " + closing.billsum + " " + currency + "<br><br>";
|
|
|
|
html += "<br><i>Übersicht:</i><br>";
|
|
html += "<table><tr><th>Summe<th>Netto<th>Zahl.weg<th>Status</tr>";
|
|
var i=0;
|
|
for (i=0;i<overview.length;i++) {
|
|
var entry = overview[i];
|
|
var sum=parseFloat(entry.sum).toFixed(2).replace(".", decpoint);
|
|
var tax=parseFloat(entry.netto).toFixed(2).replace(".", decpoint);
|
|
var name = entry.name;
|
|
var status = entry.status;
|
|
if (status == null) {
|
|
status = "";
|
|
} else if (status == "c") {
|
|
status = "Barein-/auslage";
|
|
} else if ((status == "x") || (status == "s")) {
|
|
status = "Stornovorg.";
|
|
}
|
|
html += "<tr><td>" + sum + "<td>" + tax + "<td>" + name + "<td>" + status + "</tr>";
|
|
}
|
|
|
|
html += "</table><br><br>Nach Produkten:<br>";
|
|
html += "<table><tr><th>Anzahl<th>Prod.<th>Preis<th>Steuer<th>Summe</tr>";
|
|
for (i=0;i<details.length;i++) {
|
|
var entry = details[i];
|
|
var count = entry.count;
|
|
var prodname = entry.productname;
|
|
var price = parseFloat(entry.price).toFixed(2).replace(".", decpoint);
|
|
var tax = parseFloat(entry.tax).toFixed(2).replace(".", decpoint);
|
|
var sum = parseFloat(entry.sumprice).toFixed(2).replace(".", decpoint);
|
|
html += "<tr><td>" + count + "<td>" + prodname + "<td>" + price + "<td>" + tax + "<td>" + sum + "</tr>";
|
|
}
|
|
html += "</table>";
|
|
|
|
$("#tableforprint").html(html);
|
|
window.print();
|
|
}
|
|
} else {
|
|
alert("Fehler " + closingdata.code + ": " + closingdata.msg);
|
|
}
|
|
}
|
|
|
|
function doPrinting(closingdata) {
|
|
if (closingdata.status == "OK") {
|
|
var currency = $("#admin-page").data("currency");
|
|
var styleTxt5td = "<td style='width:5%; overflow: hidden;text-overflow: ellipsis; font-size:8px;'>";
|
|
var styleTxt9td = "<td style='width:9%; overflow: hidden;text-overflow: ellipsis; font-size:8px;'>";
|
|
var styleTxt7td = "<td style='width:7%; overflow: hidden;text-overflow: ellipsis; font-size:8px;'>";
|
|
var styleTxt13td = "<td style='width:13%; overflow: hidden;text-overflow: ellipsis; font-size:8px;'>";
|
|
var styleTxt18td = "<td style='width:18%; overflow: hidden;text-overflow: ellipsis; font-size:8px; white-space:nowrap'>";
|
|
var styleTxt27td = "<td style='width:27%; overflow: hidden;text-overflow: ellipsis; font-size:8px;'>";
|
|
|
|
var styleTxt5th = "<th style='width:5%; overflow: hidden;text-overflow: ellipsis;word-wrap:break-word;font-size:8px;'>";
|
|
var styleTxt9th = "<th style='width:9%; overflow: hidden;text-overflow: ellipsis;word-wrap:break-word;font-size:8px;'>";
|
|
var styleTxt7th = "<th style='width:7%; overflow: hidden;text-overflow: ellipsis;word-wrap:break-word;font-size:8px;'>";
|
|
var styleTxt13th = "<th style='width:13%; overflow: hidden;text-overflow: ellipsis;word-wrap:break-word;font-size:8px;'>";
|
|
var styleTxt18th = "<th style='width:18%; overflow: hidden;text-overflow: ellipsis;word-wrap:break-word;font-size:8px;'>";
|
|
var styleTxt27th = "<th style='width:27%; overflow: hidden;text-overflow: ellipsis;word-wrap:break-word;font-size:8px;'>";
|
|
|
|
var closingid = closingdata.closingid;
|
|
var closingdate = closingdata.closingdate;
|
|
var previousClosingDate = closingdata.previousClosingDate;
|
|
|
|
var tableText = "";
|
|
tableText = "<h2>" + MAN_CLOSING2[lang] + closingid + MAN_OF[lang] + closingdate + "</h2>";
|
|
|
|
if (previousClosingDate != null) {
|
|
tableText += MAN_PERIOD[lang] + previousClosingDate + " - " + closingdate + '<br>';
|
|
} else {
|
|
tableText += MAN_1ST_CLOSING[lang] + '<br>';
|
|
}
|
|
|
|
tableText += '<table class="closingtable" style="table-layout:fixed; width:100%;" border=1 >';
|
|
tableText += "<tr>" + styleTxt5th + MAN_ID[lang];
|
|
tableText += styleTxt27th + MAN_DATE[lang];
|
|
tableText += styleTxt18th + MAN_PROD[lang];
|
|
tableText += styleTxt7th + MAN_BRUTTO[lang] + " (" + currency + ")";
|
|
tableText += styleTxt7th + MAN_NETTO[lang] + " (" + currency + ")";
|
|
tableText += styleTxt7th + MAN_MWST[lang];
|
|
tableText += styleTxt18th + MAN_PAYWAY[lang];
|
|
tableText += styleTxt5th + MAN_USER_ID[lang];
|
|
tableText += styleTxt9th + MAN_USER_NAME[lang];
|
|
tableText += styleTxt13th + MAN_STATE[lang];
|
|
tableText += styleTxt5th + MAN_REF[lang] + "</tr>";
|
|
|
|
$.each(closingdata.msg, function (i, aClosing) {
|
|
var billid = aClosing.billid;
|
|
var price = aClosing.price;
|
|
var netto = aClosing.netto;
|
|
var tax = aClosing.tax;
|
|
var productname = aClosing.productname;
|
|
var paidtime = aClosing.paidtime;
|
|
var payment = aClosing.payment;
|
|
var userid = aClosing.userid;
|
|
var username = aClosing.username;
|
|
var ref = aClosing.ref;
|
|
ref = ((ref != '') && (ref != null) ? ref : ' ');
|
|
var status = aClosing.status;
|
|
status = ((status != '') && (status != null) ? status : ' ');
|
|
|
|
tableText += "<tr>";
|
|
tableText += styleTxt5td + billid;
|
|
tableText += styleTxt27td + paidtime;
|
|
tableText += styleTxt18td + productname;
|
|
tableText += styleTxt9td + price;
|
|
tableText += styleTxt9td + netto;
|
|
tableText += styleTxt9td + tax;
|
|
tableText += styleTxt18td + payment;
|
|
tableText += styleTxt5td + userid;
|
|
tableText += styleTxt9td + username;
|
|
tableText += styleTxt13td + status;
|
|
tableText += styleTxt5td + ref;
|
|
tableText += "</tr>";
|
|
});
|
|
tableText += "</table>";
|
|
$("#tableforprint").html(tableText);
|
|
window.print();
|
|
} else {
|
|
alert("Fehler " + closingdata.code + ": " + closingdata.msg);
|
|
}
|
|
}
|
|
|
|
|
|
function getClosingsOfSelectedDate() {
|
|
var selectedYear = $("#select-year").find(":selected").val();
|
|
var selectedMonth = $("#select-month").find(":selected").val();
|
|
getClosings(selectedMonth,selectedYear);
|
|
}
|
|
|
|
function getLastClosings() {
|
|
var today = new Date();
|
|
var yyyy = today.getFullYear();
|
|
var month = today.getMonth()+1;
|
|
getClosings(month,yyyy);
|
|
}
|
|
|
|
function displayReceivedClosings(closingresult) {
|
|
if (closingresult.status == "OK") {
|
|
var closingParts = "";
|
|
numberOfClosings = closingresult.msg.length;
|
|
$.each(closingresult.msg, function (i, aClosing) {
|
|
var id = aClosing.id;
|
|
var closingDate = aClosing.closingDate;
|
|
var remark = aClosing.remark;
|
|
var totalsum = aClosing.totalsum;
|
|
var cashsum = aClosing.cashsum;
|
|
var usersums = aClosing.usersums;
|
|
var taxessums = aClosing.taxessums;
|
|
var cashops = aClosing.cashops;
|
|
|
|
if (remark != "") {
|
|
closingParts += createClosingPart(id + ": " + closingDate + ": " + remark,id,totalsum,cashsum,usersums,taxessums,cashops);
|
|
} else {
|
|
closingParts += createClosingPart(id + ": " + closingDate,id,totalsum,cashsum,usersums,taxessums,cashops);
|
|
}
|
|
});
|
|
$("#partofclosings").html(closingParts);
|
|
$('#partofclosings').trigger('create');
|
|
bindingClosing();
|
|
bindingExports();
|
|
bindingRolesPart();
|
|
}
|
|
}
|
|
|
|
function getClosings(month,year) {
|
|
var data = {
|
|
month: month,
|
|
year: year
|
|
};
|
|
doAjax("GET","php/contenthandler.php?module=closing&command=getClosings",data,displayReceivedClosings,"Keine Abschluesse erhalten",true);
|
|
}
|
|
|
|
function createLabelWithTextField(aLabel,displayedName,defaultText) {
|
|
var labelid = aLabel;
|
|
var text = '<div class="ui-field-contain">';
|
|
text += '<label for="' + labelid + '">' + displayedName + '</label>';
|
|
text += '<input type="text" id="' + labelid + '" value="" data-mini="true" placeholder="' + defaultText + '" style="background-color:white;" />';
|
|
text += '</div>';
|
|
return text;
|
|
}
|
|
|
|
function createButtonWithTextField(id,displayedName,defaultText) {
|
|
var text = '<div class="ui-field-contain">';
|
|
text += '<input id="userpassword_' + id + '" type="text" value="" data-mini="true" placeholder="' + defaultText + '" style="background-color:white;" />';
|
|
text += '<button data-theme="f" data-icon="check" class="changepassword" id="changepassword_' + id + '" >' + displayedName + '</button>';
|
|
text += '</div>';
|
|
return text;
|
|
}
|
|
|
|
function createLabelWithOption(prefix,id,aLabel,displayedName,allValues,theValue) {
|
|
var labelid = prefix + aLabel + "_" + id;
|
|
var text = '<div class="ui-field-contain">';
|
|
text += '<label for="' + labelid + '">' + displayedName + '</label>';
|
|
|
|
text += '<select name="' + labelid + '" id="' + labelid + '" data-theme="f">';
|
|
for (var i=0;i<allValues.length;i++) {
|
|
var aValue = allValues[i];
|
|
if (aValue.id == theValue) {
|
|
text += '<option value="' + aValue.id + '" selected>' + aValue.text + '</option>';
|
|
} else {
|
|
text += '<option value="' + aValue.id + '" >' + aValue.text + '</option>';
|
|
}
|
|
}
|
|
|
|
text += '</select></div>';
|
|
|
|
return text;
|
|
}
|
|
|
|
function createYesNoArr() {
|
|
var yesnoarr = [
|
|
{id:1,text:MAN_YES[lang]},
|
|
{id:0,text:MAN_NO[lang]}
|
|
];
|
|
return yesnoarr;
|
|
}
|
|
|
|
function createRolesArr(roles) {
|
|
var rolesArr = [];
|
|
for (var i=0;i<roles.length;i++) {
|
|
var aRole = roles[i];
|
|
rolesArr[rolesArr.length] = {
|
|
id:aRole.id,
|
|
text:aRole.name
|
|
};
|
|
}
|
|
return rolesArr;
|
|
}
|
|
|
|
/*
|
|
* Creates a table for a user with the info about the user, i.e.
|
|
* the username and the rights that the user has to work in the
|
|
* various modules.
|
|
*/
|
|
function createCollapsibeOfUser(id,username,roleid,forNewUser,roles) {
|
|
var collapsiblePart = '<div data-role="collapsible" id="userdef_' + id + '"';
|
|
if (forNewUser) {
|
|
collapsiblePart += ' data-theme="d" data-content-theme="d">';
|
|
} else {
|
|
collapsiblePart += ' data-theme="c" data-content-theme="c">';
|
|
}
|
|
collapsiblePart += '<h3>'+ username + '</h3>';
|
|
collapsiblePart += '<form>';
|
|
if (forNewUser) {
|
|
collapsiblePart += createLabelWithTextField("userlabel_username_new",MAN_USER_NAME[lang],MAN_USER_NAME[lang]);
|
|
collapsiblePart += createLabelWithTextField("userlabel_password_new",MAN_USER_PASS[lang],MAN_USER_PASS[lang]);
|
|
}
|
|
|
|
var rolesArr = createRolesArr(roles);
|
|
|
|
collapsiblePart += createLabelWithOption("userlabel_",id,"userrole",MAN_ROLE[lang],rolesArr,roleid);
|
|
|
|
if (forNewUser) {
|
|
collapsiblePart += '<button data-theme="f" data-icon="plus" id="CreateNewUser">' + MAN_CREATE[lang] + '</button>';
|
|
} else {
|
|
collapsiblePart += '<button data-theme="f" data-icon="check" class="userUpdateButton" id="userupdatebtn_' + id + '">Rolle ändern</button>';
|
|
collapsiblePart += createButtonWithTextField("changepasswordbtn_"+id, "Passwort ändern", "Anderes Passwort");
|
|
collapsiblePart += '<button data-theme="d" data-icon="minus" class="userDeleteButton" id="deleteuserbtn_' + id + '">Löschen</button>';
|
|
}
|
|
collapsiblePart += '<form>';
|
|
collapsiblePart += '</div>';
|
|
return collapsiblePart;
|
|
}
|
|
|
|
function createCollapsibeOfRole(id,name,isAdmin,rWaiter,rKitchen,rBar,rSupply,rPay,rStat,rBill,rProd,rReservation,rRating,rChangeprice,rCustomers,rClosing, rDash, rManager,forNewRole) {
|
|
var collapsiblePart = '<div data-role="collapsible" id="' + id + '"';
|
|
if (forNewRole) {
|
|
collapsiblePart += ' data-theme="d" data-content-theme="d">';
|
|
} else {
|
|
collapsiblePart += ' data-theme="c" data-content-theme="c">';
|
|
}
|
|
collapsiblePart += '<h3>'+ toHtml(name) + '</h3>';
|
|
collapsiblePart += '<form>';
|
|
|
|
var possibleValues = createYesNoArr();
|
|
|
|
collapsiblePart += createLabelWithTextField("rolelabel_name_" + id,MAN_ROLE_NAME[lang],MAN_ROLE_NAME[lang]);
|
|
collapsiblePart += createLabelWithOption("rolelabel_",id,"admin",MAN_ADMIN[lang],possibleValues,isAdmin);
|
|
collapsiblePart += createLabelWithOption("rolelabel_",id,"waiter",MAN_WAITER[lang],possibleValues,rWaiter);
|
|
collapsiblePart += createLabelWithOption("rolelabel_",id,"kitchen",MAN_KITCHEN[lang],possibleValues,rKitchen);
|
|
collapsiblePart += createLabelWithOption("rolelabel_",id,"bar",MAN_BAR[lang],possibleValues,rBar);
|
|
collapsiblePart += createLabelWithOption("rolelabel_",id,"supplydesk",MAN_SUPPLY[lang],possibleValues,rSupply);
|
|
collapsiblePart += createLabelWithOption("rolelabel_",id,"paydesk",MAN_PAYDESK[lang],possibleValues,rPay);
|
|
collapsiblePart += createLabelWithOption("rolelabel_",id,"stat",MAN_STAT[lang],possibleValues,rStat);
|
|
collapsiblePart += createLabelWithOption("rolelabel_",id,"bill",MAN_BILLS[lang],possibleValues,rBill);
|
|
collapsiblePart += createLabelWithOption("rolelabel_",id,"products",MAN_PRODUCTS[lang],possibleValues,rProd);
|
|
collapsiblePart += createLabelWithOption("rolelabel_",id,"reservation",MAN_RESERVATION[lang],possibleValues,rReservation);
|
|
collapsiblePart += createLabelWithOption("rolelabel_",id,"rating",MAN_RATING[lang],possibleValues,rRating);
|
|
collapsiblePart += createLabelWithOption("rolelabel_",id,"changeprice",MAN_CHANGEPRICE[lang],possibleValues,rChangeprice);
|
|
collapsiblePart += createLabelWithOption("rolelabel_",id,"customers",MAN_CUSTOMERS[lang],possibleValues,rCustomers);
|
|
collapsiblePart += createLabelWithOption("rolelabel_",id,"closingright",MAN_CLOSINGRIGHT[lang],possibleValues,rClosing);
|
|
collapsiblePart += createLabelWithOption("rolelabel_",id,"dash",MAN_DASHRIGHT[lang],possibleValues,rDash);
|
|
collapsiblePart += createLabelWithOption("rolelabel_",id,"manager",MAN_MANAGER[lang],possibleValues,rManager);
|
|
|
|
if (forNewRole) {
|
|
collapsiblePart += '<button data-theme="f" data-icon="plus" id="CreateNewRole">' + MAN_CREATE[lang] + '</button>';
|
|
} else {
|
|
collapsiblePart += '<button data-theme="f" data-icon="check" class="roleUpdateButton" id="updaterolebtn_' + id + '">Rechte ändern</button>';
|
|
collapsiblePart += '<button data-theme="d" data-icon="minus" class="roleDeleteButton" id="deleterolebtn_' + id + '">Löschen</button>';
|
|
}
|
|
collapsiblePart += '<form>';
|
|
collapsiblePart += '</div>';
|
|
return collapsiblePart;
|
|
}
|
|
|
|
|
|
function fillUserListIntoGui(answer) {
|
|
var userPart = "";
|
|
var userinfo = answer.users;
|
|
var roles = answer.roles;
|
|
$.each(userinfo, function (i, aUser) {
|
|
var userid = aUser.id;
|
|
var username = aUser.username;
|
|
|
|
userPart += createCollapsibeOfUser(
|
|
"userid_" + userid,
|
|
username,
|
|
aUser.roleid,
|
|
false,
|
|
roles
|
|
);
|
|
});
|
|
userPart += createCollapsibeOfUser(
|
|
"userid_newuser_newuser",
|
|
MAN_NEW_USER[lang],
|
|
0,
|
|
true,roles);
|
|
|
|
$("#userlist").html(userPart);
|
|
$('#userpart').trigger('create');
|
|
|
|
dynamicUserBinding();
|
|
}
|
|
|
|
|
|
function fillRoleListIntoGui(answer) {
|
|
if (answer.status != "OK") {
|
|
return;
|
|
}
|
|
|
|
rolesOnceExtended = true;
|
|
|
|
var roles = answer.msg;
|
|
|
|
var rolesPart = "";
|
|
for (var i=0;i<roles.length;i++) {
|
|
var aRole = roles[i];
|
|
var roleid = aRole.id;
|
|
var name = aRole.name;
|
|
rolesPart += createCollapsibeOfRole(
|
|
"roleid_" + roleid,
|
|
name,
|
|
aRole.is_admin,
|
|
aRole.right_waiter,
|
|
aRole.right_kitchen,
|
|
aRole.right_bar,
|
|
aRole.right_supply,
|
|
aRole.right_paydesk,
|
|
aRole.right_statistics,
|
|
aRole.right_bill,
|
|
aRole.right_products,
|
|
aRole.right_reservation,
|
|
aRole.right_rating,
|
|
aRole.right_changeprice,
|
|
aRole.right_customers,
|
|
aRole.right_closing,
|
|
aRole.right_dash,
|
|
aRole.right_manager,
|
|
false
|
|
);
|
|
}
|
|
rolesPart += createCollapsibeOfRole(
|
|
"roleid_newrole",MAN_NEW_ROLE[lang],
|
|
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,true);
|
|
$("#rolescontentpart").html(rolesPart);
|
|
|
|
$("#rolescontentpart").trigger("create");
|
|
|
|
for (var j=0;j<roles.length;j++) {
|
|
var aRole = roles[j];
|
|
var roleid = aRole.id;
|
|
var name = aRole.name;
|
|
$("#rolelabel_name_roleid_" + roleid).val(name);
|
|
}
|
|
dynamicRolesBinding();
|
|
}
|
|
|
|
function askAndFillUserList() {
|
|
doAjax("GET","php/contenthandler.php?module=admin&command=getUserList",null, fillUserListIntoGui,"no user data received",true);
|
|
}
|
|
|
|
function collectUserInfo(userInfoContainer,colIndexForDecision) {
|
|
var userData = [
|
|
["username", "#userlabel_username", true,false],
|
|
["password", "#userlabel_password", true,false],
|
|
["roleid", "#userlabel_userrole", true,true],
|
|
];
|
|
|
|
var data = {};
|
|
for (var i=0;i<userData.length;i++) {
|
|
var anEntry = userData[i];
|
|
if (anEntry[colIndexForDecision]) {
|
|
data[anEntry[0]] = userInfoContainer.find(anEntry[1]).val();
|
|
}
|
|
}
|
|
|
|
return data;
|
|
}
|
|
|
|
function collectRoleInfo(roleid) {
|
|
var roleData = [
|
|
["isAdmin", "#rolelabel_admin", true,true],
|
|
["rWaiter", "#rolelabel_waiter", true,true],
|
|
["rKitchen", "#rolelabel_kitchen", true,true],
|
|
["rBar", "#rolelabel_bar", true,true],
|
|
["rSupply", "#rolelabel_supplydesk", true,true],
|
|
["rPayDesk", "#rolelabel_paydesk", true,true],
|
|
["rStat", "#rolelabel_stat", true,true],
|
|
["rBill", "#rolelabel_bill", true,true],
|
|
["rProducts", "#rolelabel_products", true,true],
|
|
["rReservation","#rolelabel_reservation", true,true],
|
|
["rRating", "#rolelabel_rating", true,true],
|
|
["rChangeprice","#rolelabel_changeprice", true,true],
|
|
["rCustomers", "#rolelabel_customers", true,true],
|
|
["rManager", "#rolelabel_manager", true,true],
|
|
["rClosing", "#rolelabel_closingright", true,true],
|
|
["rDash", "#rolelabel_dash", true,true]
|
|
];
|
|
|
|
var data = {};
|
|
data["username"] = $("#rolelabel_name_roleid_" + roleid).val().trim();
|
|
for (var i=0;i<roleData.length;i++) {
|
|
var anEntry = roleData[i];
|
|
data[anEntry[0]] = $(anEntry[1] + "_roleid_" + roleid).val();
|
|
}
|
|
|
|
return data;
|
|
}
|
|
|
|
function dynamicRolesBinding() {
|
|
$("#CreateNewRole").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
|
|
var data = collectRoleInfo("newrole");
|
|
|
|
if (data["username"].length == 0) {
|
|
alert ("Name ist nicht gesetzt");
|
|
} else {
|
|
doAjax("POST","php/contenthandler.php?module=admin&command=createNewRole",data,doCreateNewRole,"Anlegen neue Rolle");
|
|
}
|
|
});
|
|
|
|
$(".roleDeleteButton").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
|
|
var id = this.id.split("_")[2];
|
|
var data = {
|
|
roleid: id
|
|
};
|
|
doAjax("POST","php/contenthandler.php?module=admin&command=deleteRole",data,handleDelOrUpdateRole,"Entfernen einer Rolle");
|
|
});
|
|
|
|
$(".roleUpdateButton").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
|
|
var id = this.id.split("_")[2];
|
|
var data = collectRoleInfo(id);
|
|
data["roleid"] = id;
|
|
doAjax("POST","php/contenthandler.php?module=admin&command=updateRole",data,handleDelOrUpdateRole,"Ändern einer Rolle");
|
|
});
|
|
|
|
}
|
|
|
|
function dynamicUserBinding() {
|
|
$("#CreateNewUser").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
|
|
var username = $("#userlabel_username_new").val();
|
|
var password = $("#userlabel_password_new").val();
|
|
var roleid = $("#userlabel_userrole_userid_newuser_newuser").val();
|
|
|
|
var data = {
|
|
name: username.trim(),
|
|
password: password,
|
|
roleid: roleid
|
|
};
|
|
|
|
if ((data["name"].length == 0) || (data["password"].length == 0)) {
|
|
alert ("Benutzername oder Passwort sind nicht gesetzt");
|
|
} else {
|
|
doAjax("POST","php/contenthandler.php?module=admin&command=createNewUser",data,doCreateNewUser,"Anlegen neuer Benutzer");
|
|
}
|
|
});
|
|
|
|
$(".userUpdateButton").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
var userid = this.id.split("_")[2];
|
|
|
|
var roleid = $("#userlabel_userrole_userid_" + userid).val();
|
|
var data = {
|
|
userid: userid,
|
|
roleid: roleid
|
|
};
|
|
|
|
doAjax("POST","php/contenthandler.php?module=admin&command=updateUser",data,askAndFillUserListNoData,"Benutzerdaten");
|
|
});
|
|
|
|
$(".userDeleteButton").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
var userid = this.id.split("_")[2];
|
|
var data = {
|
|
userid: userid
|
|
};
|
|
doAjax("POST","php/contenthandler.php?module=admin&command=deleteUser",data,handleDelUser,"Benutzer entfernen");
|
|
});
|
|
|
|
$(".changepassword").off("click").on("click", function (e) {
|
|
var userid = this.id.split("_")[3];
|
|
|
|
var newPassword = $("#userpassword_changepasswordbtn_userid_" + userid).val();
|
|
|
|
if (newPassword.length == 0) {
|
|
alert ("Passwort ist leer!");
|
|
} else {
|
|
var data = {
|
|
userid: userid,
|
|
password: newPassword
|
|
};
|
|
doAjax("POST","php/contenthandler.php?module=admin&command=changepassword",data,askAndFillUserListNoData,"Neues Passwort");
|
|
}
|
|
});
|
|
}
|
|
|
|
function handleDelUser(result) {
|
|
if (result == "noadmin") {
|
|
alert(MAN_NO_ADMIN_DEL[lang]);
|
|
} else if (result == "lastadmin") {
|
|
alert(MAN_LAST_ADMIN[lang]);
|
|
} else {
|
|
setTimeout(function(){document.location.href = "manager.html"},250);
|
|
}
|
|
}
|
|
|
|
function askAndFillUserListNoData(data) {
|
|
if (data == "noadmin") {
|
|
alert (MAN_NO_ADMIN[lang]);
|
|
} else {
|
|
askAndFillUserList();
|
|
}
|
|
}
|
|
|
|
function reloadPage(dummyData) {
|
|
location.reload();
|
|
}
|
|
|
|
function doCreateNewUser(result) {
|
|
if (result.status == "OK") {
|
|
askAndFillUserList();
|
|
} else {
|
|
alert("Fehler: " + result.msg);
|
|
}
|
|
}
|
|
|
|
function handleDelOrUpdateRole(result) {
|
|
if (result.status == "OK") {
|
|
askAndFillUserList();
|
|
doAjax("GET","php/contenthandler.php?module=admin&command=getRoleList",null, fillRoleListIntoGui,"no role data received",true);
|
|
} else {
|
|
alert("Fehler: " + result.msg);
|
|
}
|
|
}
|
|
|
|
function doCreateNewRole(result) {
|
|
if (result.status == "OK") {
|
|
askAndFillUserList();
|
|
doAjax("GET","php/contenthandler.php?module=admin&command=getRoleList",null, fillRoleListIntoGui,"no role data received",true);
|
|
} else {
|
|
alert("Fehler: " + result.msg);
|
|
}
|
|
}
|
|
|
|
function handleResultOfDbAction(jsonText) {
|
|
if (jsonText.status == "OK") {
|
|
alert("Kommando ausgeführt");
|
|
} else {
|
|
alert("Fehler " + jsonText.code + ": " + jsonText.msg);
|
|
}
|
|
}
|
|
function invokeCmd(theCommand) {
|
|
doAjax("GET","php/contenthandler.php?module=admin&command=" + theCommand,null,handleResultOfDbAction,"Problemkommando " . theCommand);
|
|
}
|
|
|
|
function createClosingPart (aText,id,totalsum,cashsum,usersums,taxessums,cashops) {
|
|
var decpoint = $("#admin-page").data("decpoint");
|
|
var currency = $("#admin-page").data("currency");
|
|
var closingPart = '<div data-role="collapsible" data-theme="e" data-content-theme="d">';
|
|
closingPart += '<h3>' + toHtml(aText) + '</h3>';
|
|
|
|
var decpoint = $("#admin-page").data("decpoint");
|
|
if (usersums.length > 0) {
|
|
|
|
closingPart += '<br><table class="usersums">';
|
|
closingPart += '<tr><th>' + MAN_USERNAME[lang] + '<th>' + MAN_BILLSUMALL[lang] + '<th>' + MAN_BILLSUMBAR[lang] + '<th>' + MAN_BILLSUMCASH[lang] + '</tr>';
|
|
|
|
for (var i=0;i<usersums.length;i++) {
|
|
var aUserSum = usersums[i];
|
|
closingPart += '<tr><td>' + aUserSum.username;
|
|
closingPart += '<td>' + aUserSum.billsumall.replace(".", decpoint);
|
|
closingPart += '<td>' + aUserSum.sumonlybar.replace(".", decpoint);
|
|
closingPart += '<td>' + aUserSum.sumcash.replace(".", decpoint);
|
|
closingPart += '</tr>';
|
|
}
|
|
closingPart += '</table><br>';
|
|
}
|
|
|
|
if (taxessums.length > 0) {
|
|
closingPart += '<br><table class="taxessums">';
|
|
closingPart += '<tr><th>' + MAN_TAX[lang] + '<th>' + MAN_BILLSUMNETTO[lang] + ' (' + currency + ')<th>' + MAN_BILLSUMALL[lang] + ' (' + currency + ')</tr>';
|
|
|
|
for (var i=0;i<taxessums.length;i++) {
|
|
var aSum = taxessums[i];
|
|
closingPart += '<tr><td>' + aSum.tax;
|
|
closingPart += '<td>' + aSum.netto.replace(".", decpoint);
|
|
closingPart += '<td>' + aSum.brutto.replace(".", decpoint);
|
|
closingPart += '</tr>';
|
|
}
|
|
|
|
if (cashops != null) {
|
|
closingPart += '<tr><td>' + MAN_BILLSUMCASH[lang] + '<td colspan=2>' + cashops.replace(".", decpoint) + '</tr>';
|
|
}
|
|
closingPart += '</table><br>';
|
|
}
|
|
|
|
closingPart += '<i>' + MAN_CLOSING_INCOME[lang] + ' (' + currency + '):</i> <b>' + (parseFloat(Math.round(totalsum * 100) / 100).toFixed(2)).replace(".", decpoint) + "</b><br>";
|
|
closingPart += '<i>' + MAN_CLOSING_INCOME_CASH[lang] + ' (' + currency + '):</i> <b>' + (parseFloat(Math.round(cashsum * 100) / 100).toFixed(2)).replace(".", decpoint) + "</b><br>";
|
|
closingPart += '<p>' + MAN_CLOSING_DET_TXT[lang] + '</p>';
|
|
|
|
|
|
closingPart += '<p>';
|
|
closingPart += '<div class="ui-grid-a" class="noprint">';
|
|
closingPart += ' <div class="ui-block-a">';
|
|
closingPart += ' <button type="submit" data-theme="f" class="csvExportButton" data-icon="check" id="csvexport_' + id + '">' + MAN_CSV_EXP_RECEIPTS[lang] + '</button>';
|
|
closingPart += ' </div>';
|
|
closingPart += ' <div class="ui-block-b">';
|
|
closingPart += ' <button type="submit" data-theme="f" class="xlsxExportButton" data-icon="check" id="xlsxexport_' + id + '">' + MAN_XLSX_EXP_RECEIPTS[lang] + '</button>';
|
|
closingPart += ' </div>';
|
|
closingPart += '</div>';
|
|
|
|
closingPart += '<button type="submit" data-theme="f" class="csvExportAllButton" data-icon="check" id="csvallexport_' + id + '">' + MAN_CSV_EXP_ALL[lang] + '</button>';
|
|
|
|
var receiverEmail = $("#receiveremail").val();
|
|
closingPart += '<fieldset class="ui-grid-a" id="emailfieldset' + id + '">';
|
|
closingPart += '<div class="ui-block-a">';
|
|
closingPart += '<input type="email" name="email_' + id + '" id="email_' + id + '" value="' + receiverEmail + '" class="whiteinput" /></div>';
|
|
closingPart += '<div class="ui-block-b"><button type="submit" data-theme="c" class="csvEmailAllButton" data-icon="arrow-r" id="csvallemail_' + id + '">' + MAN_EMAIL_DATA[lang] + '</button></div>';
|
|
|
|
closingPart += '<button type="submit" data-theme="f" class="printButton" data-icon="check" id="printexport_' + id + '">' + MAN_PRINT_ALL[lang] + '</button>';
|
|
|
|
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>';
|
|
return closingPart;
|
|
}
|
|
|
|
function createYearPartFor(label,selectionid,container) {
|
|
var today = new Date();
|
|
var yyyy = today.getFullYear();
|
|
|
|
var htmlText = '<form><div class="ui-field-contain"><label for="' + label + '">Jahr:</label>';
|
|
htmlText += '<select name="' + label + '" id="' + label + '" data-theme="e">';
|
|
|
|
for (var i=2013;i<=yyyy;i++)
|
|
{
|
|
htmlText += '<option value="' + i + '">' + i + '</option>';
|
|
}
|
|
htmlText += '</select></div>';
|
|
|
|
$(selectionid).html(htmlText);
|
|
$(container).trigger('create');
|
|
|
|
$("#" + label).val(yyyy).attr('selected', true).siblings('option').removeAttr('selected');
|
|
$("#" + label).selectmenu("refresh", true);
|
|
}
|
|
|
|
|
|
function setMonthYearSelection() {
|
|
var today = new Date();
|
|
var month = today.getMonth()+1; //January is 0!
|
|
var yyyy = today.getFullYear();
|
|
$("#select-month").val(month).attr('selected', true).siblings('option').removeAttr('selected');
|
|
$("#select-year").val(yyyy).attr('selected', true).siblings('option').removeAttr('selected');
|
|
|
|
$("#select-month-export-end").val(month).attr('selected', true).siblings('option').removeAttr('selected');
|
|
$("#select-year-export-end").val(yyyy).attr('selected', true).siblings('option').removeAttr('selected');
|
|
|
|
$("#select-month").selectmenu("refresh", true);
|
|
$("#select-year").selectmenu("refresh", true);
|
|
|
|
$("#select-month-export-end").selectmenu("refresh", true);
|
|
$("#select-year-export-end").selectmenu("refresh", true);
|
|
}
|
|
|
|
|
|
function tablelist(no,rowId) {
|
|
var i=0;
|
|
var text = "";
|
|
for (i=0;i<no;i++) {
|
|
text += '<td><input style="background:white;" type="text" size="3" id="t_' + rowId.toString() + '_' + i.toString() + '"/>';
|
|
}
|
|
return text;
|
|
}
|
|
|
|
function getDbStat() {
|
|
doAjax("GET","php/contenthandler.php?module=admin&command=getDbStat",null,fillDbStat,"DB Eigenschaften",true);
|
|
}
|
|
|
|
function fillDbStat(answer) {
|
|
if (answer.status != "OK") {
|
|
return;
|
|
}
|
|
|
|
var max = answer.msg.max;
|
|
var tablesizes = answer.msg.tablesizes;
|
|
|
|
var txt = '<table class="reporttable">';
|
|
txt += '<tr><th style="width:220px;">' + MAN_DBTABLENAME[lang] + '<th style="width:200px;">' + MAN_DBTABLESIZE[lang] + '<th> </tr>';
|
|
for (var i=0;i<tablesizes.length;i++) {
|
|
var tblname = tablesizes[i].table_name;
|
|
var sizeInKb = tablesizes[i].tablesizeinmb;
|
|
var porcentage = 100/max * sizeInKb;
|
|
var img = '<img src="img/green.png" style="height:20px;width:' + porcentage + '%" />';
|
|
txt += '<tr><td>' + tblname + '<td>' + sizeInKb + '<td>' + img + '</tr>';
|
|
}
|
|
txt += '</table>';
|
|
$("#dbtablearea").html(txt);
|
|
}
|
|
|
|
function askForCurrentRoomField() {
|
|
doAjax("GET","php/contenthandler.php?module=roomtables&command=getRoomfield",null,initroomfield,"Raumplan",true);
|
|
}
|
|
|
|
function resizeRoomField() {
|
|
var n = $("#maxrooms_val").val();
|
|
var m = $("#maxtables_val").val();
|
|
try {
|
|
n = parseInt(n);
|
|
m = parseInt(m);
|
|
if ((n>0) && (n<30) && (m>0) && (m<30)) {
|
|
createEmptyRoomField(n,m);
|
|
} else {
|
|
alert("Größe außerhalb des zulässigen Bereichs");
|
|
}
|
|
} catch(e) {
|
|
alert ("Falsches Zahlenformat");
|
|
}
|
|
}
|
|
|
|
function createRoomPrinterSelection(roomid,selectedPrinter) {
|
|
var txt = '<select data-theme="e" name="roomprinter_' + roomid + '" id="roomprinter_' + roomid + '">';
|
|
if (selectedPrinter == 0) {
|
|
txt += '<option value=0 selected>' + MAN_ROOM_PRINTER_NO[lang] + '</option>';
|
|
txt += '<option value=1>' + MAN_ROOM_PRINTER_1[lang] + '</option>';
|
|
txt += '<option value=2>' + MAN_ROOM_PRINTER_2[lang] + '</option>';
|
|
} else if (selectedPrinter == 1) {
|
|
txt += '<option value=0>' + MAN_ROOM_PRINTER_NO[lang] + '</option>';
|
|
txt += '<option value=1 selected>' + MAN_ROOM_PRINTER_1[lang] + '</option>';
|
|
txt += '<option value=2>' + MAN_ROOM_PRINTER_2[lang] + '</option>';
|
|
} else {
|
|
txt += '<option value=0>' + MAN_ROOM_PRINTER_NO[lang] + '</option>';
|
|
txt += '<option value=1>' + MAN_ROOM_PRINTER_1[lang] + '</option>';
|
|
txt += '<option value=2 selected>' + MAN_ROOM_PRINTER_2[lang] + '</option>';
|
|
}
|
|
txt += '</select>';
|
|
return txt;
|
|
}
|
|
|
|
function createEmptyRoomField(n,m) {
|
|
var i=0;
|
|
var text = "<table>";
|
|
text += '<tr><th>' + MAN_ROOM_LABEL[lang] + '<th>' + MAN_ROOM_ABBR_TXT[lang] + '<th>' + MAN_ROOM_PRINTER_TXT[lang] + '<th colspan=' + m + '>' + MAN_TABLE_LABEL[lang] + '</tr>';
|
|
for (i=0;i<n;i++) {
|
|
text += '<tr><td><input style="background:white;" type="text" id="r_' + i.toString() + '"' + ' size="10" />';
|
|
text += '<td><input style="background:white;" type="text" id="rabbr_' + i.toString() + '"' + ' size="10" />';
|
|
text += '<td id=roomprintercol_' + i + '>' + createRoomPrinterSelection(i,0);
|
|
text += tablelist(m,i);
|
|
}
|
|
text += "</table>";
|
|
$("#roomfield").html(text);
|
|
$("#roomfield").trigger("create");
|
|
}
|
|
|
|
function golive() {
|
|
alert(MAN_GOLIVE_WAIT_HINT[lang]);
|
|
doAjax("POST","php/contenthandler.php?module=admin&command=golive",null,handleGoLive,"Produktivbetriebsstart");
|
|
}
|
|
|
|
function handleGoLive(answer) {
|
|
if (answer.status == "OK") {
|
|
alert(MAN_CONFIRM_GO_LIVE[lang]);
|
|
setTimeout(function(){document.location.href = "logout.php"},250);
|
|
} else {
|
|
alert("Error: " + answer.msg);
|
|
}
|
|
}
|
|
|
|
function roomfield_apply() {
|
|
var n = $("#maxrooms_val").val();
|
|
var m = $("#maxtables_val").val();
|
|
try {
|
|
n = parseInt(n);
|
|
m = parseInt(m);
|
|
if ((n>0) && (n<30) && (m>0) && (m<30)) {
|
|
var room_index, table_index, r_id, t_id;
|
|
var rooms = [];
|
|
for (room_index = 0; room_index < n; room_index++) {
|
|
r_id = "#r_" + room_index.toString();
|
|
var roominfo = [];
|
|
var roomname = $(r_id).val();
|
|
var roomabbr = $("#rabbr_" + room_index).val();
|
|
|
|
var selectedPrinter = $("#roomprinter_" + room_index).find(":selected").val();
|
|
|
|
if ((roomname.replace(/ /,"")) != "") {
|
|
roominfo[0] = roomname;
|
|
roominfo[1] = roomabbr.trim();
|
|
roominfo[2] = selectedPrinter;
|
|
var tablesOfRoom = [];
|
|
for (table_index = 0; table_index < m; table_index++) {
|
|
t_id = "#t_" + room_index.toString() + "_" + table_index.toString();
|
|
var aTableName = $(t_id).val();
|
|
if ((aTableName.replace(/ /,"")) != "") {
|
|
tablesOfRoom.push(aTableName);
|
|
}
|
|
}
|
|
if (tablesOfRoom.length > 0) {
|
|
roominfo[3] = tablesOfRoom;
|
|
} else {
|
|
continue;
|
|
}
|
|
rooms.push(roominfo);
|
|
}
|
|
}
|
|
doAjax("POST","php/contenthandler.php?module=roomtables&command=setRoomInfo",{rooms:rooms},askForCurrentRoomField,"Raumplan nicht änderbar");
|
|
}
|
|
} catch(e) {}
|
|
|
|
}
|
|
|
|
function createSpooledPrintJobButton(id,text) {
|
|
var txt = '<button type="submit" data-theme="d" class="spooledprintjob" data-icon="delete" id="' + id + '">' + text + '</button>';
|
|
return txt;
|
|
}
|
|
|
|
function createSpooledRecPrintButtons(jobs) {
|
|
var currency = $("#admin-page").data("currency");
|
|
var decpoint = $("#admin-page").data("decpoint");
|
|
txt = '';
|
|
for (var i=0;i<jobs.length;i++) {
|
|
var aJob = jobs[i];
|
|
var theType = aJob.type;
|
|
if (theType == 4) {
|
|
txt += createSpooledPrintJobButton(
|
|
'spooledJob_' + aJob.id,MAN_CLOSINGRIGHT[lang] + " (" + aJob.closingid + ": "+ aJob.closingdate + ")");
|
|
} else {
|
|
txt += createSpooledPrintJobButton(
|
|
'spooledJob_' + aJob.id,MAN_TABLE_TXT[lang]
|
|
+ ": " + aJob.tablename + " (" + aJob.billid + ": "
|
|
+ aJob.billdate + " " + aJob.brutto.replace('.',decpoint) + " " + currency + ")");
|
|
}
|
|
}
|
|
if (jobs.length > 0) {
|
|
txt += "<i>(" + MAN_DEL_HINT[lang] + ")</i>";
|
|
}
|
|
return txt;
|
|
}
|
|
|
|
function createSpooledWorkPrintButtons(jobs) {
|
|
txt = '';
|
|
for (var i=0;i<jobs.length;i++) {
|
|
var aJob = jobs[i];
|
|
//txt += createPrintJobButton('spooledJob_' + aJob.id,MAN_TABLE_TXT[lang] + ": " + aJob.tablename + (aJob.id + ": " + aJob.billdate + " - " + aJob.brutto.replace(".", decpoint)));
|
|
txt += createSpooledPrintJobButton('spooledJob_' + aJob.id,aJob.content.table);
|
|
}
|
|
if (jobs.length > 0) {
|
|
txt += "<i>(" + MAN_DEL_HINT[lang] + ")</i>";
|
|
}
|
|
return txt;
|
|
}
|
|
|
|
function bindSpooledPrintJob() {
|
|
$(".spooledprintjob").off("click").on("click", function (e) {
|
|
e.stopImmediatePropagation();
|
|
e.preventDefault();
|
|
var id = this.id.split("_")[1];
|
|
doAjax("POST","php/contenthandler.php?module=printqueue&command=deleteSpooledPrintJob",{id:id},getSpooledPrintJobs,"Problem Printjob löschen");
|
|
});
|
|
}
|
|
|
|
function insertPrintQueue(queue) {
|
|
if (queue.status == "OK") {
|
|
var jobs = queue.msg;
|
|
var li = "";
|
|
|
|
for (var i=0;i<jobs.length;i++) {
|
|
var printer = parseInt(jobs[i].printer);
|
|
var number = jobs[i].count;
|
|
|
|
var printertxt = MAN_PRINTER[lang] + " #" + printer;
|
|
if (printer == 7) {
|
|
printertxt = MAN_FOOD_PRINTER[lang];
|
|
} else if (printer == 8) {
|
|
printertxt = MAN_DRINK_PRINTER[lang];
|
|
}
|
|
|
|
li += '<ul id="printqueue_' + i + '" data-role="listview" data-divider-theme="a" data-inset="true">';
|
|
li += '<li data-role="list-divider" data-theme="b" data-role="heading">' + printertxt + '</li>';
|
|
li += '<li data-role="list-divider" data-theme="a">' + number + " " + MAN_PRINT_JOBS_COUNT[lang];
|
|
if (printer < 7) {
|
|
li += createSpooledRecPrintButtons(jobs[i].jobs);
|
|
} else {
|
|
li += createSpooledWorkPrintButtons(jobs[i].jobs);
|
|
}
|
|
li += '</li>';
|
|
li += '</ul>';
|
|
}
|
|
|
|
$("#printjobsarea").html(li);
|
|
$("#printjobsarea").trigger("create");
|
|
bindSpooledPrintJob();
|
|
}
|
|
}
|
|
|
|
function continueInitialization() {
|
|
doAjax("GET","php/contenthandler.php?module=admin&command=isLoggedinUserAdminOrManagerOrTE",null,showPanelsDueToUserStatus,"Fehler");
|
|
|
|
askAndFillUserList();
|
|
hideMenu();
|
|
|
|
createYearPartFor("select-year","#yearselection",'#closinglist');
|
|
createYearPartFor("select-year-export-start","#yearselectionexportstart",'#dataexport');
|
|
createYearPartFor("select-year-export-end","#yearselectionexportend",'#dataexport');
|
|
|
|
setMonthYearSelection();
|
|
|
|
getLastClosings();
|
|
|
|
if (adminIsLoggedIn) {
|
|
getSpeisekarte();
|
|
|
|
var groundplan = new Groundplan();
|
|
groundplan.init();
|
|
|
|
getDbStat();
|
|
}
|
|
|
|
$("#userfile").val('');
|
|
|
|
if (adminIsLoggedIn || managerIsLoggedIn) {
|
|
getSpooledPrintJobs();
|
|
|
|
getVersionInfoForUpdate();
|
|
|
|
getPrinterInstance();
|
|
}
|
|
|
|
binding();
|
|
}
|
|
|
|
$(document).on("pageinit", "#admin-page", function () {
|
|
initializeMainMenu("#modulemenu");
|
|
getGeneralConfigItems();
|
|
});
|
|
|
|
|
|
</script>
|
|
|
|
<div data-role="page" id="admin-page">
|
|
<div data-role="panel" id="modulepanel" data-position="right" data-display="overlay" class="noprint">
|
|
<ul data-role="listview" id="modulemenu" data-divider-theme="a" data-inset="true">
|
|
<li data-role="list-divider" data-theme="b" data-role="heading">Hauptmenü</li>
|
|
</ul>
|
|
</div><!-- /panel -->
|
|
|
|
<div data-role="header" data-theme="b" data-position="fixed" id="theheader" class="noprint">
|
|
<h1>Administration <img src="img/connection.png" class="connectionstatus" style="display:none;" /> <img src="img/printerstatus.png" class="printerstatus" 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">
|
|
<a href="#" data-role="button" data-icon="arrow-d" data-ajax="false" id="menuswitch">Hauptmenü</a>
|
|
</div>
|
|
</div>
|
|
<div data-role="content" id="allpagecontent">
|
|
|
|
<div data-role="collapsible" data-collapsed="false" data-theme="e" data-content-theme="c" class="noprint">
|
|
<h3><span id="acc_exporttxt">Abrechnung und Datenexport</span></h3>
|
|
<p><span id="info_acc_exporttxt">Hier finden sich die Menüpunkte zum Tagesabschluss oder Datenexport.</span></p>
|
|
|
|
<div id="closinglist" data-role="collapsible" data-theme="c" data-content-theme="c">
|
|
<h3><span id="closingtxt">Tagesabschluss</span></h3>
|
|
<p><span id="closingdetailstxt">Hier können Sie die seit dem letzten <i>Abschluss</i> getätigten neuen Transaktionen
|
|
zu einem neuen Abschluss führen. Anschließend sind alle bis zu diesem Zeitpunkt
|
|
erstellten Transaktionen/Kassenbons nicht mehr stornierbar!</span></p>
|
|
|
|
<form>
|
|
<div class="ui-field-contain" id="monthpart">
|
|
|
|
</div>
|
|
</form>
|
|
|
|
<div id=yearselection>
|
|
<form>
|
|
<div class="ui-field-contain">
|
|
<label for="select-native-1">Jahr:</label>
|
|
<select name="select-year" id="select-year">
|
|
<option value="2014">2014</option>
|
|
</select>
|
|
</div>
|
|
</div> <!-- yearselection -->
|
|
|
|
<div class="grouparea">
|
|
<b><span id="closingcreationtxt">TE erstellen</span></b>
|
|
<input type="text" id="remarkfield" value="" data-mini="true" placeholder="Bemerkung" />
|
|
|
|
<button type="submit" data-theme="f" class="cancelButton" data-icon="plus" id="createclosing">Erstellen/Bon</button>
|
|
<button type="submit" data-theme="f" class="cancelButton" data-icon="plus" id="createclosingnoprint">Erstellen/kein Bon</button>
|
|
</div>
|
|
|
|
<img id="closingwaiticon" src="php/3rdparty/images/ajax-loader.gif" style="display:none;"/>
|
|
|
|
<div id=partofclosings>
|
|
<div data-role="collapsible" data-theme="d" data-content-theme="d">
|
|
<h3>Tagesabschlussbeispiel</h3>
|
|
<p>Dieser Eintrag sollte hier nicht mehr stehen...</p>
|
|
</div><!-- /section 1A -->
|
|
</div>
|
|
</div><!-- closinglist -->
|
|
|
|
|
|
<div id="dataexport" data-role="collapsible" data-content-theme="c" style="display:none;">
|
|
<h3><span id="dataexporttxt">Datenexport</span></h3>
|
|
<p><span id="dataexportdettxt">Hier können Sie eine csv-Datei erzeugen lassen, die ...
|
|
</span>
|
|
</p>
|
|
|
|
<form>
|
|
<b>Startdatum Umsätze:</b>
|
|
<div class="ui-field-contain" id="datexportstartmonthpart"></div>
|
|
|
|
<div id=yearselectionexportstart>
|
|
<form>
|
|
<div class="ui-field-contain">
|
|
<label for="select-year-export-start">Jahr:</label>
|
|
<select name="select-year-export-start" id="select-year-export-start">
|
|
<option value="2014">2014</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<b>Enddatum Umsätze</b>:
|
|
<div class="ui-field-contain" id="datexportendmonthpart"></div>
|
|
|
|
<div id=yearselectionexportend>
|
|
<div class="ui-field-contain">
|
|
<label for="select-year-export-end">Jahr:</label>
|
|
<select name="select-year-export-end" id="select-year-export-end">
|
|
<option value="2014">2014</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="ui-grid-a" class="noprint">
|
|
<div class="ui-block-a"><button type="submit" data-theme="f" class="cancelButton exportbtn" data-icon="check" id="createdbexport">Export Umsätze CSV</button></div>
|
|
<div class="ui-block-b"><button type="submit" data-theme="f" class="cancelButton exportbtn" data-icon="check" id="createdbexportxlsx">... Excel</button></div>
|
|
</div><!-- /grid-a -->
|
|
|
|
<button type="submit" data-theme="f" class="cancelButton exportbtn" data-icon="check" id="createpdfexport">PDF-Umsatzbericht</button>
|
|
<button type="submit" data-theme="f" class="cancelButton exportbtn" data-icon="check" id="createpdfsummary">PDF-Zusammenfassung</button>
|
|
<button type="submit" data-theme="f" class="cancelButton exportbtn" data-icon="check" id="createprodexport">Export Produktdaten</button>
|
|
<button type="submit" data-theme="f" class="cancelButton exportbtn" data-icon="check" id="createuserexport">Export Benutzerdaten</button>
|
|
<button type="submit" data-theme="f" class="cancelButton exportbtn" data-icon="check" id="createconfigexport">Export Konfiguration</button>
|
|
<button type="submit" data-theme="f" class="cancelButton exportbtn" data-icon="check" id="createlogexport">Export Log</button>
|
|
</form>
|
|
</div><!-- Datenexport -->
|
|
|
|
</div> <!-- collapsible Abrechnung und Datenexport -->
|
|
|
|
<div id="rolespart" data-role="collapsible" data-collapsed="true" data-theme="e" data-content-theme="c" class="noprint" style="display:none;">
|
|
<h3><span id="rolestxt">Rollen</span></h3>
|
|
|
|
<p><div id="rolescontentpart">
|
|
<img id="roleswaiticon" src="php/3rdparty/images/ajax-loader.gif" />
|
|
</div>
|
|
</div> <!-- Benutzer -->
|
|
|
|
<div id="userpart" data-role="collapsible" data-collapsed="true" data-theme="e" data-content-theme="c" class="noprint" style="display:none;">
|
|
<h3><span id="usertxt">Benutzer</span></h3>
|
|
<div id="userlist" data-role="collapsible" data-theme="c" data-content-theme="c">
|
|
</div> <!-- userlist -->
|
|
</div> <!-- Benutzer -->
|
|
|
|
<div data-role="collapsible" data-collapsed="true" data-theme="e" data-content-theme="c" class="noprint" id="configpart" style="display:none;">
|
|
<h3><span id="configtxt">Konfiguration</span></h3>
|
|
<form action="#" method="get">
|
|
|
|
<br><b><u><span id="generalsectiontxt">GENERAL</span></u></b><br><br>
|
|
|
|
<div data-role="fieldcontain">
|
|
<label for="usstval">MwSt/Tax/IVA:</label>
|
|
<input type="text" value="" data-mini="true" placeholder="19,0" id="usstval" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="togotaxval">MwSt/Tax/IVA (ToGo):</label>
|
|
<input type="text" value="" data-mini="true" placeholder="7,0" id="togotaxval" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
<div id=taxusage></div>
|
|
<div data-role="fieldcontain">
|
|
<label for="stornocode">Stornocode (Bons):</label>
|
|
<input type="password" value="" data-mini="true" id="stornocode" class="genConfigEl"/>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<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"/>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="remoteaccesscode">Fernzugriffscode:</label>
|
|
<input type="password" value="" data-mini="true" id="remoteaccesscode" class="genConfigEl"/>
|
|
</div>
|
|
|
|
<div id="partOfRestaurantmode"></div>
|
|
<i id=restmodehint style="padding-left: 50px;padding-right: 50px;">Hinweis: siehe Anleitung</i>
|
|
|
|
<div data-role="fieldcontain">
|
|
<label for="companyinfo">Betriebsinfo:</label>
|
|
<textarea cols="40" rows="8" name="companyinfo" id="companyinfo" class="genConfigEl" style="background-color:#FFFFFF;"></textarea>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="rectemplate">Bonvorlage:</label>
|
|
<textarea cols="40" rows="8" name="rectemplate" id="rectemplate" class="genConfigEl" style="background-color:#FFFFFF;"></textarea>
|
|
<i id=rectemplatehint style="padding-left: 50px;padding-right: 50px;">Hinweis: siehe Anleitung</i>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="hosttext"><span id="hosttexttxt">Bewirtungsbeleg</span>:</label>
|
|
<textarea cols="40" rows="8" name="hosttext" id="hosttext" class="genConfigEl" style="background-color:#FFFFFF;"></textarea>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="foodtemplate">Vorlage Speisebons:</label>
|
|
<textarea cols="40" rows="8" name="foodtemplate" id="foodtemplate" class="genConfigEl" style="background-color:#FFFFFF;"></textarea>
|
|
<i id=foodtemplatehint style="padding-left: 50px;padding-right: 50px;">Hinweis: siehe Anleitung</i>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="drinktemplate">Vorlage Getränkebons:</label>
|
|
<textarea cols="40" rows="8" name="drinktemplate" id="drinktemplate" class="genConfigEl" style="background-color:#FFFFFF;"></textarea>
|
|
<i id=drinktemplatehint style="padding-left: 50px;padding-right: 50px;">Hinweis: siehe Anleitung</i>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="canceltemplate">Vorlage Storno-Arbeitsbon:</label>
|
|
<textarea cols="40" rows="8" name="canceltemplate" id="canceltemplate" class="genConfigEl" style="background-color:#FFFFFF;"></textarea>
|
|
<i id=canceltemplatehint style="padding-left: 50px;padding-right: 50px;">Hinweis: siehe Anleitung</i>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="reservationnote">Reservierungstemplate Email:</label>
|
|
<textarea cols="40" rows="8" name="reservationnote" id="reservationnote" class="genConfigEl" style="background-color:#FFFFFF;"></textarea>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="serverUrl">Webserver:</label>
|
|
<textarea cols="40" rows="1" name="serverUrl" id="serverUrl" class="genConfigEl" style="background-color:#FFFFFF;">localhost</textarea>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="webimpressum">Webimpressum:</label>
|
|
<textarea cols="40" rows="1" name="webimpressum" id="webimpressum" class="genConfigEl" style="background-color:#FFFFFF;"></textarea>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="email"><span id="fromemailtxt">Sender-Email:</span></label>
|
|
<input type="email" value="" data-mini="true" placeholder="gastwirt@anbieter.de" id="email" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="emailbadrating"><span id="emailbadratingtxt">Sender-Email:</span></label>
|
|
<input type="email" value="" data-mini="true" placeholder="gastwirt@anbieter.de" id="emailbadrating" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="emailratingcontact"><span id="emailratingcontacttxt">Sender-Email:</span></label>
|
|
<input type="email" value="" data-mini="true" placeholder="gastwirt@anbieter.de" id="emailratingcontact" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="receiveremail"><span id="toemailtxt">Standard Emailempfänger:</span></label>
|
|
<input type="email" value="" data-mini="true" placeholder="gastwirt@anbieter.de" id="receiveremail" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
|
|
<div data-role="fieldcontain">
|
|
<label for="smtphost"><span id="smtphosttxt">SMTP Host:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="beispiel.email.provider.de" id="smtphost" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
|
|
<div id="partOfSmtpauth"></div>
|
|
|
|
<div data-role="fieldcontain">
|
|
<label for="smtpuser"><span id="smtpusertxt">SMTP Benutzer:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="Benutzer" id="smtpuser" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
|
|
<div data-role="fieldcontain">
|
|
<label for="smtppass"><span id="smtppasstxt">SMTP Passwort:</span></label>
|
|
<input type="password" value="" data-mini="true" placeholder="password" id="smtppass" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
|
|
<div id="partOfSmtpsecure"></div>
|
|
|
|
<div data-role="fieldcontain">
|
|
<label for="smtpport"><span id="smtpporttxt">SMTP Port:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="587" id="smtpport" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
<div id="partOfPayPrintType"></div>
|
|
<div id="partOfBillLanguage"></div>
|
|
<div id="partOfReceiptFontSize"></div>
|
|
<div id="partOfPaymentConfig" style="display:none;"></div>
|
|
<div id="partOfWorkflowConfig"></div>
|
|
<div id="partIfDigiWorkflow">
|
|
<div id="partOfDigigopaysetready"></div>
|
|
<span id=digigopaysetreadyhint></span>
|
|
</div>
|
|
<div id="partIfWorkReceiptsWorkflow">
|
|
<div id="partOfWaitergopayprint"></div>
|
|
<span id=waitergopayprinthint></span>
|
|
</div>
|
|
<div id="partOfDigiprintworkContainer">
|
|
<div id="partOfDigiprintwork"></div>
|
|
<i id=digiprinthint style="padding-left: 50px;padding-right: 50px;">Hinweis: siehe Anleitung</i>
|
|
</div>
|
|
|
|
<div id="partAddrecPrinterIfServerPrint">
|
|
<div id="partOfAddRecPrinter"></div>
|
|
<span id=addrecprinterhint></span>
|
|
</div>
|
|
|
|
|
|
<div id="partOfOneprodworkrecf"></div>
|
|
<div id="partOfOneprodworkrecd"></div>
|
|
<div>
|
|
<div id="partOfBigFontWorkReceipt"></div>
|
|
<i id=workfontsizehint style="padding-left: 50px;padding-right: 50px;">Hinweis: Nicht für eigene Layouts</i>
|
|
</div>
|
|
<div id="partOfGroupWorkItemsf"></div>
|
|
<div id="partOfGroupWorkItemsd"></div>
|
|
|
|
<div id="partOfDiscount1"></div>
|
|
<div id="partOfDiscount2"></div>
|
|
<div id="partOfDiscount3"></div>
|
|
|
|
<div data-role="fieldcontain">
|
|
<label for="discountname1"><span id="discountname1txt">Rabattname 1:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="Bezeichnung" id="discountname1" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="discountname2"><span id="discountname2txt">Rabattname 2:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="Bezeichnung" id="discountname2" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="discountname3"><span id="discountname3txt">Rabattname 3:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="Bezeichnung" id="discountname3" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
|
|
<div id="partOfDashslot1"></div>
|
|
<div id="partOfDashslot2"></div>
|
|
<div id="partOfDashslot3"></div>
|
|
|
|
<div id="partOfHotelInterface"></div>
|
|
<div id="hs3area">
|
|
<div data-role="fieldcontain">
|
|
<label for="hsinfile"><span id="hsinfiletxt">HS/3 CASH.IN:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="c:\\HS3CASH.IN" id="hsinfile" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="hsoutfile"><span id="hsoutfiletxt">HS/3 CASH.OUT:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="c:\\HS3CASH.OUT" id="hsoutfile" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="hscurrency"><span id="hscurrencytxt">HS/3 Währung:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="EUR" id="hscurrency" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="hs3refresh"><span id="hs3refreshtxt">PHP Memory Limit:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="60" id="hs3refresh" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
</div>
|
|
|
|
<div data-role="fieldcontain">
|
|
<label for="memorylimit"><span id="memorylimittxt">PHP Memory Limit:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="256" id="memorylimit" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
|
|
<div data-role="fieldcontain">
|
|
<label for="updateurl"><span id="updateurltxt">Update-Server:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="" id="updateurl" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
|
|
<div class="grouparea">
|
|
<div data-role="fieldcontain">
|
|
<label for="tmpdir"><span id="tmpdirtxt">PHP-Tmp:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="" id="tmpdir" data-theme="c" class="genConfigEl"/><br><br>
|
|
<button type="submit" data-theme="f" data-icon="check" id="defaulttmpbtn">Default</button><br>
|
|
<i><span id="tmpdirhint">Hinweis</span></i>
|
|
</div>
|
|
</div>
|
|
|
|
<div data-role="fieldcontain">
|
|
<label for="ftphost"><span id="ftphosttxt">FTP-Server:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="" id="ftphost" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="ftpuser"><span id="ftpusertxt">FTP-User:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="" id="ftpuser" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="ftppass"><span id="ftppasstxt">FTP-Pass:</span></label>
|
|
<input type="password" value="" data-mini="true" placeholder="" id="ftppass" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
|
|
<div id="partOfAustria"></div>
|
|
|
|
<div id="partIfAustriaEnabled">
|
|
<i><b><span id=austriahint></span></b></i>
|
|
<div data-role="fieldcontain">
|
|
<label for="paydeskid"><span id="paydeskidtxt">Kassenid:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="OrderSprinter-1" id="paydeskid" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="aeskey"><span id="aeskeytxt">AES-Schlüssel:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="" id="aeskey" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="rksvserver"><span id="rksvservertxt">RKSV-Modul:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="http://localhost/rksv:8099" id="rksvserver" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="certificatesn"><span id="certificatesntxt">Zert.Seriennummer:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="1234567" id="certificatesn" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
|
|
<div data-role="fieldcontain">
|
|
<label for="taxaustrianormalval">Steuersatz 'Normal':</label>
|
|
<input type="text" value="" data-mini="true" placeholder="7,0" id="taxaustrianormalval" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
|
|
<div data-role="fieldcontain">
|
|
<label for="taxaustriaerm1val">Steuersatz 'Ermäßigt-1':</label>
|
|
<input type="text" value="" data-mini="true" placeholder="7,0" id="taxaustriaerm1val" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
|
|
<div data-role="fieldcontain">
|
|
<label for="taxaustriaerm2val">Steuersatz 'Ermäßigt-2':</label>
|
|
<input type="text" value="" data-mini="true" placeholder="7,0" id="taxaustriaerm2val" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
|
|
<div data-role="fieldcontain">
|
|
<label for="taxaustriaspecialval">Steuersatz 'Besonders':</label>
|
|
<input type="text" value="" data-mini="true" placeholder="7,0" id="taxaustriaspecialval" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
</div>
|
|
|
|
<br><b><u><span id="mobilviewsectiontxt">MOBILANSICHT</span></u></b><br><br>
|
|
|
|
<div id="partOfProminentSearch"></div>
|
|
|
|
<div data-role="fieldcontain">
|
|
<label for="startprodsearch"><span id="startprodsearchtxt">Starte Prodsuche:</span></label>
|
|
<input type="text" value="" data-mini="true" placeholder="3" id="startprodsearch" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
|
|
<div id="partOfPriceinlist"></div>
|
|
|
|
<br><b><u><span id="desktopviewsectiontxt">DESKTOPANSICHT</span></u></b><br><br>
|
|
|
|
<div>
|
|
<div id="partOfReturntoorder"></div>
|
|
<i id=returntoorderhint style="padding-left: 50px;padding-right: 50px;">Hinweis: siehe Anleitung</i>
|
|
</div>
|
|
|
|
<br><b><u><span id="closingprintstxt">Tageserfassungsbons</span></u></b><br><br>
|
|
|
|
<div id="partOfclosshowci"></div>
|
|
<div id="partOfclosshowpaytaxes"></div>
|
|
<div id="partOfclosshowprods"></div>
|
|
|
|
<br><b><u><span id="showpaymentstxt">Zahlungswege</span></u></b><br><br>
|
|
|
|
<div id="partOfshowpayment2"></div>
|
|
<div id="partOfshowpayment3"></div>
|
|
<div id="partOfshowpayment4"></div>
|
|
<div id="partOfshowpayment5"></div>
|
|
<div id="partOfshowpayment6"></div>
|
|
<div id="partOfshowpayment7"></div>
|
|
<div id="partOfshowpayment8"></div>
|
|
|
|
<br><b><u><span id="guestsystemsectiontxt">Gastsystem</span></u></b><br><br>
|
|
|
|
<div data-role="fieldcontain">
|
|
<label for="guesturl">Webserver-Gastsystem:</label>
|
|
<input type="text" value="" data-mini="true" placeholder="http://www.restaurant.de" id="guesturl" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="guestcode">Zugriffscode-Gastsystem:</label>
|
|
<input type="password" value="" data-mini="true" placeholder="123456" id="guestcode" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
<div data-role="fieldcontain">
|
|
<label for="dailycode">Gastsystem-Tageslosung:</label>
|
|
<input type="text" value="" data-mini="true" placeholder="Code" id="dailycode" data-theme="c" class="genConfigEl"/>
|
|
</div>
|
|
|
|
<div id="partOfGuestjobprint"></div>
|
|
<div id="partOfAskdaycode"></div>
|
|
<div id="partOfAsktablecode"></div>
|
|
<div id="partOfShowdaycode"></div>
|
|
<div data-role="fieldcontain">
|
|
<label for="guesttimeout"><span id="guesttimeoutxt">Timeout</span>:</label>
|
|
<input type="text" value="" data-mini="true" placeholder="5" id="guesttimeout" data-theme="c" class="genConfigEl"/><br>
|
|
<i id=guesttimeouthint style="padding-left: 50px;padding-right: 50px;">Hinweis: 0 = kein Timeout</i>
|
|
</div>
|
|
|
|
<br><b><u><span id="specialsettingssectiontxt">Spezialeinstellungen</span></u></b><br><br>
|
|
|
|
<div>
|
|
<div id="partOfPrintAndQueueJobs"></div>
|
|
<i id=printandqueuehint style="padding-left: 50px;padding-right: 50px;">Hinweis: siehe Anleitung</i>
|
|
</div>
|
|
|
|
<div>
|
|
<div id="partOfCash"></div>
|
|
<i id=cashhint style="padding-left: 50px;padding-right: 50px;">Hinweis: siehe Anleitung</i>
|
|
</div>
|
|
|
|
<div id="partOfBeepCooked"></div>
|
|
|
|
<div id="partOfDblog"></div>
|
|
|
|
<p>
|
|
|
|
<button type="submit" data-theme="f" data-icon="check" id="changeConfig">Ändern</button>
|
|
</form><!-- Konfiguration -->
|
|
|
|
<img id="logoimgpart" height="70px" src="php/contenthandler.php?module=printqueue&command=getLogoAsPng" />
|
|
<form id="logoform" enctype="multipart/form-data" action="php/contenthandler.php?module=admin&command=readlogo" method="POST" data-ajax="false">
|
|
<input type="hidden" name="MAX_FILE_SIZE" value="16777210" />
|
|
<span id=upllogotxt>Logo-Datei hochladen:</span>
|
|
<input name="logofile" id="logofile" type="file" />
|
|
<div id=logoinfoafterclick></div>
|
|
<input type="submit" data-theme="f" value="Laden" id="logobtntxt" formaction="php/contenthandler.php?module=admin&command=readlogo"/>
|
|
</form>
|
|
<form>
|
|
<a href="#" data-theme="d" data-role="button" data-icon="delete" data-ajax="false" id="dellogobtn">Kein Logo</a>
|
|
</form>
|
|
</div> <!-- Konfiguration -->
|
|
|
|
<div data-role="collapsible" data-collapsed="true" data-theme="e" data-content-theme="c" class="noprint" id="printerinstances" style="display:none;">
|
|
<h3><span id="printerinstancesheader">Druckerinstanzzuordnung</span></h3>
|
|
<p><div id=printerinstancesarea>
|
|
<table id="printerinstancestable" class="gridtable">
|
|
<tr><th> <th colspan="10" id="printerinstancetxt">Instanz</tr>
|
|
<tr><th> <th>1<th>2<th>3<th>4<th>5<th>6<th>7<th>8<th>9<th>10</tr>
|
|
|
|
<tr id="pia_k1" class="prinstancerow"><td class="rowname"><span class="pia_k_txt">Kasse</span> 1<td id="pia_k1_1"><td id="pia_k1_2"><td id="pia_k1_3"><td id="pia_k1_4"><td id="pia_k1_5"><td id="pia_k1_6"><td id="pia_k1_7"><td id="pia_k1_8"><td id="pia_k1_9"><td id="pia_k1_10"></tr>
|
|
<tr id="pia_k2" class="prinstancerow"><td class="rowname"><span class="pia_k_txt">Kasse</span> 2<td id="pia_k2_1"><td id="pia_k2_2"><td id="pia_k2_3"><td id="pia_k2_4"><td id="pia_k2_5"><td id="pia_k2_6"><td id="pia_k2_7"><td id="pia_k2_8"><td id="pia_k2_9"><td id="pia_k2_10"></tr>
|
|
<tr id="pia_k3" class="prinstancerow"><td class="rowname"><span class="pia_k_txt">Kasse</span> 3<td id="pia_k3_1"><td id="pia_k3_2"><td id="pia_k3_3"><td id="pia_k3_4"><td id="pia_k3_5"><td id="pia_k3_6"><td id="pia_k3_7"><td id="pia_k3_8"><td id="pia_k3_9"><td id="pia_k3_10"></tr>
|
|
<tr id="pia_k4" class="prinstancerow"><td class="rowname"><span class="pia_k_txt">Kasse</span> 4<td id="pia_k4_1"><td id="pia_k4_2"><td id="pia_k4_3"><td id="pia_k4_4"><td id="pia_k4_5"><td id="pia_k4_6"><td id="pia_k4_7"><td id="pia_k4_8"><td id="pia_k4_9"><td id="pia_k4_10"></tr>
|
|
<tr id="pia_k5" class="prinstancerow"><td class="rowname"><span class="pia_k_txt">Kasse</span> 5<td id="pia_k5_1"><td id="pia_k5_2"><td id="pia_k5_3"><td id="pia_k5_4"><td id="pia_k5_5"><td id="pia_k5_6"><td id="pia_k5_7"><td id="pia_k5_8"><td id="pia_k5_9"><td id="pia_k5_10"></tr>
|
|
<tr id="pia_k6" class="prinstancerow"><td class="rowname"><span class="pia_k_txt">Kasse</span> 6<td id="pia_k6_1"><td id="pia_k6_2"><td id="pia_k6_3"><td id="pia_k6_4"><td id="pia_k6_5"><td id="pia_k6_6"><td id="pia_k6_7"><td id="pia_k6_8"><td id="pia_k6_9"><td id="pia_k6_10"></tr>
|
|
|
|
<tr id="pia_f1" class="prinstancerow"><td class="rowname"><span class="pia_f_txt">Speise</span> 1<td id="pia_f1_1"><td id="pia_f1_2"><td id="pia_f1_3"><td id="pia_f1_4"><td id="pia_f1_5"><td id="pia_f1_6"><td id="pia_f1_7"><td id="pia_f1_8"><td id="pia_f1_9"><td id="pia_f1_10"></tr>
|
|
<tr id="pia_f2" class="prinstancerow"><td class="rowname"><span class="pia_f_txt">Speise</span> 2<td id="pia_f2_1"><td id="pia_f2_2"><td id="pia_f2_3"><td id="pia_f2_4"><td id="pia_f2_5"><td id="pia_f2_6"><td id="pia_f2_7"><td id="pia_f2_8"><td id="pia_f2_9"><td id="pia_f2_10"></tr>
|
|
<tr id="pia_d1" class="prinstancerow"><td class="rowname"><span class="pia_d_txt">Getränke</span> 1<td id="pia_d1_1"><td id="pia_d1_2"><td id="pia_d1_3"><td id="pia_d1_4"><td id="pia_d1_5"><td id="pia_d1_6"><td id="pia_d1_7"><td id="pia_d1_8"><td id="pia_d1_9"><td id="pia_d1_10"></tr>
|
|
<tr id="pia_d2" class="prinstancerow"><td class="rowname"><span class="pia_d_txt">Getränke</span> 2<td id="pia_d2_1"><td id="pia_d2_2"><td id="pia_d2_3"><td id="pia_d2_4"><td id="pia_d2_5"><td id="pia_d2_6"><td id="pia_d2_7"><td id="pia_d2_8"><td id="pia_d2_9"><td id="pia_d2_10"></tr>
|
|
|
|
</table>
|
|
<span id="printerInstanceHint" id=printandqueuehint style="padding-left: 50px;padding-right: 50px;">Hinweis: Printserver ab 1.3.14</span>
|
|
|
|
<button type="submit" data-theme="f" data-icon="check" id="applyPrinterInstances">Anwenden</button>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div data-role="collapsible" data-collapsed="true" data-theme="e" data-content-theme="c" class="noprint" id="printerqueue" style="display:none;">
|
|
<h3><span id="printjobsheader">Druckerwarteschlangen</span></h3>
|
|
<p><div id=printjobsarea>Daten</div>
|
|
|
|
<div class="ui-grid-a" class="noprint">
|
|
<div class="ui-block-a"><input type="text" placeholder="Arbeitsbon-Id" id="reprintworkreceipt" style="background:white;" /></div>
|
|
<div class="ui-block-b"><button type="submit" data-theme="f" data-icon="check" id="reprintworkreceiptbtn">Re-Print</button></div>
|
|
</div><!-- /grid-a -->
|
|
|
|
<div class="ui-grid-a" class="noprint">
|
|
<div class="ui-block-a"><button type="submit" data-theme="f" data-icon="check" id="updateprintqueue">Refresh</button></div>
|
|
<div class="ui-block-b"><button type="submit" data-theme="d" data-icon="delete" id="clearprintqueue">Clear print jobs</button></div>
|
|
</div><!-- /grid-a -->
|
|
|
|
</div> <!-- Druckerwarteschlangen -->
|
|
|
|
<div data-role="collapsible" data-collapsed="true" data-theme="e" data-content-theme="c" class="noprint" id="dbactionui" style="display:none;">
|
|
<h3><span id="dbtxt">Datenbank</span></h3>
|
|
|
|
<div data-role="collapsible" data-collapsed="true" data-theme="f" data-content-theme="c" class="noprint" id="dbactionspeisenconfig">
|
|
<p><h3><span id="speisekarte">Speisekarte</span></h3></p>
|
|
<div class="ui-grid-a" class="noprint">
|
|
<div class="ui-block-a"><button data-theme="e" data-icon="plus" id="readsamplemenu"><span id=samplemenutxt>Beispielkarte</span></button></div>
|
|
<div class="ui-block-b grid_right"><button type="submit" data-theme="f" class="applySpeisekarte" data-icon="check" id="readspeisekarte">Anwenden</button></div>
|
|
</div><!-- /grid-a -->
|
|
<div data-role="collapsible" data-collapsed="true" data-theme="e" data-collapsed-icon="info" data-expanded-icon="info" data-content-theme="c" class="noprint" id="menulegenddiv">
|
|
<p><h3><span id="legendheader">Legende</span></h3>
|
|
<h2>Aufbau der Speisekarte</h2>
|
|
|
|
<p>Die Syntax der Speisekarte ist sehr strikt. Das Format, insbesondere die Einrückungen, müssen genau
|
|
eingehalten werden, damit der Inhalt korrekt übernommen werden kann!
|
|
|
|
<h3>Struktur</h3>
|
|
|
|
<p>Einrückungen bilden das Produktangebot hierarchisch ab. Die tiefsten Einrückungen stellen die <i>Produkte</i> dar,
|
|
alle Eebenen darüber die <i>Kategorien</i>.
|
|
|
|
<p>Die einfachste Form einer Speisekarte (Angabe des Langnames und des Preises für alle Preisstufen) sieht folgendermaßen aus:
|
|
|
|
<pre>
|
|
Speisen
|
|
Gericht 1 ; 2,90
|
|
Gericht 2 ; 3,90
|
|
Untergruppe xy
|
|
Gericht 3 ; 2,90
|
|
Getränke
|
|
...
|
|
</pre>
|
|
|
|
<p>In diesem Beispiel wurde jedem Produkt ein Preis zugewiesen, der für alle Preisstufen verwendet wird. Kategorien und Produkte können zusätzlich noch weiter spezifiziert werden.
|
|
|
|
<h3>Produkteinträge</h3>
|
|
|
|
<p>Ein Produkteintrag hat in der einfachsten Schreibweise folgende Syntax: <i>Produktname; Preis</i>. Sollen jedoch weitere Eigenschaften
|
|
festgelegt werden, können diese hinter einem Doppelkreuz per Semikolon getrennt angegeben werden: <i>Produktname; Preis # Eigenschaft1:Wert1; Eigenschaft2: Wert2</i>.
|
|
|
|
<p>Folgende Eigenschaften können angegeben werden:
|
|
|
|
<ul>
|
|
<li><b>ID</b>: Eine ID wird vom System festgelegt, sobald ein Produkt erstmalig angelegt wurde. Wenn ein Produkt verändert wird,
|
|
so sollte man die ID-Kennzeichnung beibehalten. Nur so kann das System das Produkt eindeutig identifizieren und in der
|
|
Statistik später eindeutig zuordnen. Es ist wichtig, keine eigenen IDs zu vergeben, denn neue IDs werden stets
|
|
vom OrderSprinter erzeugt!
|
|
<li><b>Kurzname</b>: Der Kurzname ist die Produktbezeichnung, die auf dem Bestellterminal erscheint. Wenn beispielsweise die übergeordnete
|
|
Kategorie <i>Cola</i> lautet, kann man darunter Produkte mit den Kurznamen <i>0,3l</i> und <i>0,5l</i> eintragen und damit die Übersicht auf
|
|
mobilen Geräten verbessern. Der Langname sollte jedoch die komplette Bezeichnung enthalten (<i>Cola 0,2l</i> und <i>Cola 0,5l</i>). Wird
|
|
der Kurzname nicht angegeben, wird automatisch der Langname verwendet.
|
|
<li><b>vorhanden</b>: Wenn ein Produkt zwar in der Speisekarte eingetragen werden soll, jedoch temporär nicht verfügbar ist, kann man dies
|
|
kennzeichnen, indem man den Wert auf <i>0</i> oder <i>nein</i> setzt.
|
|
<li><b>PreisB</b>: Preis der Preisstufe B. Wird diese Eigenschaft nicht angegeben, wird der Preis A verwendet, d.h. der Preis vor dem Doppelkreuz.
|
|
<li><b>PreisC</b>: Preis der Preisstufe C. Wird diese Eigenschaft nicht angegeben, wird der Preis A verwendet, d.h. der Preis vor dem Doppelkreuz.
|
|
<li><b>Fixsteuersatz</b>: Es ist möglich, einem Produkt einen fixen Umsatzsteuersatz zuzuordnen, so dass das Produkt bei der Bestellung
|
|
unabhängig von der Zuordnung <i>Tischbestellung</i> oder <i>Außer-Haus-Bestellung</i> immer den hier zugeordneten Steuersatz zugeordnet
|
|
bekommt.
|
|
<li><b>Steuersatz-Austria</b>: Diese Einstellung ist für Österreichische Betriebe wichtig: 1: Steuersatz 'Normal', 2: Ermäßigt-1, 3: Ermäßigt-2, 4: Steuersatz 'Besonders'. Ist der Betriebsmodus 'Österreich' ausgewählt, so wird <u><i>immer</i></u> dieser Steuersatz verwendet.
|
|
<li><b>Menge</b>: Die verfügbare Menge. Bei jeder Bestellung wird die Anzahl um 1 vermindert. Kurz vor Erreichen der Anzahl 0 bekommt der Kellner einen Warnhinweis bei dem Produkt.
|
|
<li><b>Einheit</b>:
|
|
<ul>
|
|
<li>Stück: Die Preisangaben beziehen sich auf ein Stück dieses Artikels (in diesem Fall muss diese Eigenschaft nicht angegeben werden.)
|
|
<li>Eingabe: Preis des Produktes wird bei der Bestellaufnahme abgefragt.
|
|
</ul>
|
|
<li><b>Tage</b>: Man kann die Tage einschränken, an denen ein Produkt bestellt werden kann. 0=Sonntag, 1=Montag, usw. bis 6=Samstag. Wird ein Produkt an allen Tagen verkauft, ist keine Angabe erforderlich. Ein Produkt, welches nur an Wochenenden verkauft wird, muss mit '06' oder '60' ausgezeichnet werden.
|
|
<li><b>Bildnr</b>: Produkte können mit Bildern versehen werden. Jedes Bild in der Bilddatenbank besitzt eine eindeutige ID. Über die Angabe der Bildnummer können Bilder mehreren Produkten zugeordnet werden. Bilder, die keine Referenz mehr besitzen, werden regelmäßig aus der Datenbank entfernt.
|
|
<li><b>Anzeige</b>: K: Anzeige nur in der Kellneransicht, G: Anzeige nur in der Gastbestellansicht, KG: Anzeige in beiden Ansichten (Standard)
|
|
</ul>
|
|
|
|
<p>Ein Produkteintrag mit weiteren Eigenschaften kann beispielsweise so aussehen:
|
|
<pre>
|
|
Cola 0,2l; 2,30 # Kurzname: 0.2l; vorhanden:nein; PreisB: 1,90
|
|
</pre>
|
|
|
|
<h3>Kategorien</h3>
|
|
|
|
<p>Das Gleichheitszeichen dient als Trenner zwischen Namen und weiteren Eigenschaften.
|
|
Wird ein <i>K</i> und <i>B</i> mitgegeben, so werden diese Produkte über die Küchen-
|
|
und Bereitstellungsansicht geführt. Die Einstellung wird auf die Unterkategorien
|
|
vererbt, wenn die darunter liegenden Kategorien keine Angabe dazu enthalten.
|
|
Hinter dem zweiten Gleichheitszeichen kann die Nummer eines Arbeitsbondruckers
|
|
des jeweiligen Typs (Speise/Getränk) angegeben werden.
|
|
|
|
<p>Wenn ein <i>D</i> angegeben ist, wird als Typ <b>Getränk</b> angenommen, bei einem <i>F</i> <b>Speise</b>.
|
|
Wenn die Angabe fehlt, wird die Eigenschaft des übergeordneten Eintrags verwendet.
|
|
|
|
<h3>Extras</h3>
|
|
<p>Extras werden mit einem Ausrufezeichen am Zeilenanfang deklariert. Nach dem Namen und der (vom OrderSprinter vergebenenen ID, die also
|
|
nicht vom Benutzer angegeben werden muss), können nach einem Semikolon die Produkte angegeben werden, die mit diesem Extra
|
|
verkauft werden dürfen. Zur Angabe eines Produktes kann man dessen Name oder in Klammern dessen ID verwenden. Ein Eintrag
|
|
hat demnach folgendes Aussehen (Beispiel):
|
|
|
|
<pre>
|
|
!Extraname (ID:8) 12,34 ; (45),Langname eines Produkts,(49),(50)
|
|
</pre>
|
|
|
|
<p>Dabei gilt:
|
|
<ul>
|
|
<li>Die ID-Angabe ist optional (kann weggelassen werden). Wenn OrderSprinter diese hinzugefügt hat, sollte man sie
|
|
beibehalten. Ein selbt erstellter neuer Extras-Eintrag sollte keine ID-Nummer enthalten.
|
|
<li>Der Wert 12,34 ist der Aufpreis.
|
|
<li>Hinter dem Semikolon wurden Komma-getrennt Produkte angegeben, die mit diesem Extra bestellt werden können, in diesem Fall
|
|
die Produkte mit der ID 45, 49 und 50 sowie ein Produkt mit dem Langnamen <i>Langname eines Produkts</i>.
|
|
</ul>
|
|
|
|
<p><i>Hinweis:</i> Gibt es den Langnamen mehrfach, wird das Extra auch mehrfach zugewiesen.
|
|
|
|
<h3>Reservierte Buchstaben</h3>
|
|
|
|
<p>Aus der beschriebenen Syntax ergibt sich, dass einige Buchstaben eine spezielle Bedeutung haben und nicht überall
|
|
verwendet werden dürfen:
|
|
|
|
<ul>
|
|
<li><b>#</b>: Ein Doppelkreuz zu Beginn einer Zeile leitet einen Kommentar ein, d.h. diese Zeile wird nicht interpretiert. Innerhalb
|
|
einer Zeile trennt das Doppelkreuz die Grundeigenschaften eines Produkts von den optionalen Eigenschaften.
|
|
<li><b>=</b>: Das Gleichheitszeichen hat bei einem Kategorieneintrag die Funktion eines Trennzeichens.
|
|
<li><b>;</b>: Das Semikolon wird bei einem Produkteintrag als Trenner der Eigenschaften verwendet.
|
|
<li><b>!</b>: Das Ausrufezeichen am Anfang einer Zeile leitet die Deklaration eines Extras ein.
|
|
</ul>
|
|
|
|
</div>
|
|
<textarea cols="40" rows="8" name="speiseninfo" id="speiseninfo" data-theme="a" style='font-family:"monospace"'></textarea>
|
|
|
|
</div> <!-- Speisekarte -->
|
|
|
|
<p>
|
|
<div data-role="collapsible" data-collapsed="true" data-theme="f" data-content-theme="c" class="noprint">
|
|
<p><h3><span id="taxestxt">Umsatzsteuer-Zuw.</span></h3></p>
|
|
<p id="taxesassdescr"></p>
|
|
<p id="taxesassdescr2"></p>
|
|
<p>
|
|
<table>
|
|
<tr><td><span id=taxesfoodtxt></span> (%): <td>
|
|
<select id='taxesassfood'>
|
|
<option value='1'>Steuersatz 'Normal'</option>
|
|
<option value='2'>Steuersatz 'Ermäßigt-1'</option>
|
|
<option value='3'>Steuersatz 'Ermäßigt-2'</option>
|
|
<option value='4'>Steuersatz 'Besonders'</option>
|
|
</select>
|
|
</tr>
|
|
<tr><td><span id=taxesdrinkstxt></span> (%): <td>
|
|
<select id='taxesassdrinks'>
|
|
<option value='1'>Steuersatz 'Normal'</option>
|
|
<option value='2'>Steuersatz 'Ermäßigt-1'</option>
|
|
<option value='3'>Steuersatz 'Ermäßigt-2'</option>
|
|
<option value='4'>Steuersatz 'Besonders'</option>
|
|
</select>
|
|
</tr>
|
|
<tr><td colspan=2><button type="submit" data-theme="e" id="taxass_apply"><span id=taxapplytxt>Anwenden</span></button></tr>
|
|
</table>
|
|
</p>
|
|
</div>
|
|
</p>
|
|
|
|
<div data-role="collapsible" data-collapsed="true" data-theme="f" data-content-theme="c" class="noprint" id="dbactionroomconfig">
|
|
<p><h3><span id="roomplantxt">Raumplan</span></h3></p>
|
|
<form>
|
|
|
|
<div id=roomfield>
|
|
</div>
|
|
|
|
</form>
|
|
|
|
<div id="tablemap" class="tmcontainer noprint" style="background-color:white;border-radius: 25px;border: 2px solid #8AC007;padding: 20px;width:95%; ">
|
|
<div id="tablemaps">Inhalt</div>
|
|
<hr>
|
|
<div id=tablenav></div>
|
|
|
|
<form id="tablemapimgform" enctype="multipart/form-data" method="POST" data-ajax="false">
|
|
<input name="tmimgfile" id="tmimgfile" type="file" />
|
|
|
|
<div class="ui-grid-a" class="noprint">
|
|
<div class="ui-block-a"><button type="submit" data-theme="f" id="tmimgbtn"><span id=tmimgbtntxt>Laden</span></button></div>
|
|
<div class="ui-block-b grid_right"><button type="submit" data-theme="d" id="tmimgdelbtn"><span id=tmimgdelbtntxt>Löschen</span></button></div>
|
|
</div><!-- /grid-a -->
|
|
</form>
|
|
|
|
<p id=tmhint></p>
|
|
<p>
|
|
<img id="mapimgpart" style="width:100%;" src=img/empty-room.png />
|
|
</p>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<p>
|
|
<div data-role="collapsible" data-collapsed="true" data-theme="f" data-content-theme="c" class="noprint" id="dbactionbakrest">
|
|
<p><h3><span id="bakrestxt">Sicherung und Import</span></h3>
|
|
<span id='bakresinfotxt'>Die Datensicherung und -wiederherstellung erfordert...</span>
|
|
<div id=backuparea1>
|
|
<form action='dummy'>
|
|
<button type="submit" data-theme="f" id="backup_btn"><span id="backupbtntxt">Sicherung</span></button>
|
|
</form>
|
|
</div>
|
|
<div id=backuparea2>
|
|
<form action='dummy'>
|
|
<button type="submit" data-theme="f" id="backupguests_btn"><span id="backupguestsbtntxt">Sicherung</span></button>
|
|
</form>
|
|
</div>
|
|
<span id='bakresinfotxtall'>Die Datensicherung und -wiederherstellung erfordert...</span>
|
|
<div id=backuparea3>
|
|
<form action='dummy'>
|
|
<button type="submit" data-theme="f" id="backup_btnall"><span id="backupbtntxtall">Sicherung</span></button>
|
|
<button type="submit" data-theme="f" id="backup_btnalllogs"><span id="backupbtntxtalllogs">Sicherung</span></button>
|
|
<button type="submit" data-theme="f" id="backup_btnftpall"><span id="backupbtnftptxtall">FTPSicherung</span></button>
|
|
</form>
|
|
</div>
|
|
|
|
<div id=restorearea>
|
|
<span id=uplfiletxt>Diese Datei hochladen (<i>importieren</i>):</span>
|
|
<div id="restorefilearea">Upload</div>
|
|
<div id="restorestatus"></div>
|
|
<div id="waitimportinprogress" style="display:none;">Warten...</div>
|
|
</div>
|
|
|
|
<p><button type="submit" data-theme="d" id="golive"><span id="golivetxt">Starte Produktivbetrieb</span></button>
|
|
</div>
|
|
|
|
<p><div data-role="collapsible" data-collapsed="true" data-theme="f" data-content-theme="c" class="noprint" id="updatearea">
|
|
<p><h3><span id="updatetxt">Update</span></h3>
|
|
<span id='updatehinttxt'>Update-Hinweis...</span>
|
|
<p><div>
|
|
<form action='dummy'>
|
|
<span id="availableversiontxt">Verf.Version</span>: <span id="availversion">?</span><br>
|
|
<span id="urltxt">URL</span>:
|
|
<input id="urlpath" type="text" value="" style="background:white;" disabled /><br>
|
|
<button type="submit" data-theme="f" id="update_btn"><span id="updatebtntxt">Upd</span></button><br>
|
|
|
|
<div id="sliderarea" style="display:none;">
|
|
<label for="updateslider" id="updateprogresslabel">Fortschr.</label> <span id="updatestatus"></span>
|
|
<input type="range" name="updateslider" id="updateslider" value="0" min="0" max="100" data-theme="b" data-track-theme="e" class="ui-hidden-accessible" />
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<p><div data-role="collapsible" data-collapsed="true" data-theme="f" data-content-theme="c" class="noprint" id="dbproparea">
|
|
<p><h3><span id="dbproptxt">Tabellen...</span></h3>
|
|
<p><div id="dbtablearea"></div>
|
|
</div>
|
|
|
|
|
|
<p>
|
|
<form action="dummy" method="GET">
|
|
<!-- <button type="submit" data-theme="e" id="initreceiptbutton"><span id="initreceiptbtntxt">Startbeleg</span></button>-->
|
|
<button type="submit" data-theme="d" id="optimize_btn"><span id="optimizebtntxt">Datenbank optimieren</span></button>
|
|
<div id="optimizehinttxt"></div><br>
|
|
<button type="submit" data-theme="d" id="shutdown_btn"><span id="shutdownbtntxt">Shutdown</span></button>
|
|
<div id="shutdownhinttxt"></div>
|
|
</form>
|
|
|
|
|
|
</div> <!-- collapsible Datenbank -->
|
|
|
|
<div id="tableforprint" class="printpart">Wenn dieser Text dargestellt wird, liegt ein Fehler vor!</div>
|
|
|
|
<div id="printserverdownloadpart" style="display:none;">
|
|
<a class="noprint" href="OrderSprinterPrintserver.exe" data-role="button" data-icon="arrow-d" data-ajax="false">Download Windows-Printserver</a>
|
|
</div> <!-- printerdownloadpart -->
|
|
<div data-role="footer" data-theme="b" id="thefooterr" class="noprint">
|
|
<div class="ui-grid-a">
|
|
<div class="ui-block-a userinfo" id="loggedinuser"></div>
|
|
<div class="ui-block-b grid_right" id="versioninfo"></div>
|
|
</div><!-- /grid-a -->
|
|
</div> <!-- footer -->
|
|
|
|
</div>
|
|
|
|
<div data-role="popup" id="nochangeddata" data-overlay-theme="a" style="max-width:70%;" class="ui-corner-all">
|
|
<div data-role="header" class="ui-corner-top">
|
|
<h1>Keine Datenänderung</h1>
|
|
</div>
|
|
<a href="#" data-rel="back" data-role="button" data-theme="a" data-icon="delete" data-iconpos="notext" class="ui-btn-right"></a>
|
|
<div data-role="content" class="ui-corner-bottom ui-content">
|
|
<p>Es wurden keine Daten geändert.</p>
|
|
</div>
|
|
</div> <!-- popup for reading sample queue data -->
|
|
|
|
|
|
<div data-role="popup" id="progresspopup" data-overlay-theme="a" style="max-width:70%;" class="ui-corner-all">
|
|
<div data-role="header" class="ui-corner-top">
|
|
<h1>Aktion wird durchgeführt</h1>
|
|
</div>
|
|
<a href="#" data-rel="back" data-role="button" data-theme="a" data-icon="delete" data-iconpos="notext" class="ui-btn-right"></a>
|
|
<div data-role="content" class="ui-corner-bottom ui-content">
|
|
<p><img id="progressimginpopup" src="php/3rdparty/images/ajax-loader.gif" /></p>
|
|
</div>
|
|
</div> <!-- popup for reading sample queue data -->
|
|
|
|
</div>
|
|
|
|
<!-- Dialog page -->
|
|
<div data-role="dialog" id="sure" data-title="Aktion">
|
|
<div data-role="content">
|
|
<h3 class="sure-1">?</h3>
|
|
<p class="sure-2">?</p>
|
|
<a href="#" class="sure-do" data-role="button" data-theme="b" data-rel="back">Ja</a>
|
|
<a href="#" data-role="button" data-theme="c" data-rel="back">Nein</a>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
</body>
|
|
</html>
|