diff --git a/javaprinter/config.json b/javaprinter/config.json index ad87635..987090c 100644 --- a/javaprinter/config.json +++ b/javaprinter/config.json @@ -1,4 +1,5 @@ { + "instance" : 1, "vendorid" : "4348", "productid" : "5584", "printersize" : 32, @@ -6,13 +7,6 @@ "baseurl":"http://localhost", "baseusername" : "", "basepass" : "", - "printreceipts" : 1, - "forreceiptprinters" : "1,2,3,4,5,6", - "printclosings" : 1, - "printfoodtickets1" : 1, - "printdrinktickets1" : 1, - "printfoodtickets2" : 1, - "printdrinktickets2" : 1, "escinits" : [ 27, 64, 27, 116, 0 ], "escposts" : [ 29, 86, 66, 10, 27, 64], "useeveryprintdevice" : 1, diff --git a/javaprinter/javaprinter.jar b/javaprinter/javaprinter.jar index d83db7d..85c22a5 100644 Binary files a/javaprinter/javaprinter.jar and b/javaprinter/javaprinter.jar differ diff --git a/printserver/OrderSprinterPrintserver.exe b/printserver/OrderSprinterPrintserver.exe index 7e4d086..9adef07 100644 Binary files a/printserver/OrderSprinterPrintserver.exe and b/printserver/OrderSprinterPrintserver.exe differ diff --git a/spider/install/installer.php b/spider/install/installer.php index 3d59cb4..e3d8cf3 100644 --- a/spider/install/installer.php +++ b/spider/install/installer.php @@ -85,7 +85,7 @@ class Installer { } Database::dropTables($pdo); Database::createEmptyTables($pdo, $prefix); - Database::setVersion($pdo,$prefix,"1.3.13"); + Database::setVersion($pdo,$prefix,"1.3.14"); Database::setAccessPassword($pdo,$prefix,$adminpass); Database::setRefreshRate($pdo,$prefix,"5"); // default: 5 times per hour return array("status" => "OK","msg" => "Installation successful"); diff --git a/webapp/OrderSprinterPrintserver.exe b/webapp/OrderSprinterPrintserver.exe index 7e4d086..9adef07 100644 Binary files a/webapp/OrderSprinterPrintserver.exe and b/webapp/OrderSprinterPrintserver.exe differ diff --git a/webapp/bar.html b/webapp/bar.html index bd38b64..ec8d1fd 100644 --- a/webapp/bar.html +++ b/webapp/bar.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/bill.html b/webapp/bill.html index 36247fc..7b2d41a 100644 --- a/webapp/bill.html +++ b/webapp/bill.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/css/bestformat.css b/webapp/css/bestformat.css index 140edb4..a2a7b51 100644 --- a/webapp/css/bestformat.css +++ b/webapp/css/bestformat.css @@ -1 +1 @@ -@charset "UTF-8";table.viewtable{width:100%;display:block;table-layout:fixed}table.viewtable th{background:#7abe5f;font-size:10pt;border-bottom:1px solid rgba(255,255,255,.7);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);-o-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.2);padding:6px 10px}table.viewtable td{background:#eed33f;font-size:8pt;border-bottom:1px solid #fafafa;border-bottom:1px solid rgba(255,255,255,.5);padding:6px 10px;color:rgba(0,0,0,255)}table.viewtable th.complete{background:#17370b;color:rgba(255,255,255,0)}table.viewtable th.incomplete{background:#9c9224;color:rgba(0,0,0,255)}table.viewtable td.complete{background:#78bb5e;color:rgba(0,0,0,255)}table.viewtable td.incomplete{background:#eed33f;color:rgba(0,0,0,255)}table.viewtable tr:last-child td{border-bottom:0}table.viewtable tr:hover td{background-color:#faf}table.receipttable td{border:solid black 0;padding:3px;text-align:left;vertical-align:bottom}table.receipttable td.price{border:solid black 0;padding:3px;text-align:right;vertical-align:bottom}table.receipttable td.restinfo{text-align:center;vertical-align:bottom}table.receipttable td.declaration{font-weight:bold;text-align:right}table.gridtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:2px;border-color:#666;border-collapse:collapse;width:100%}table.gridtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold}table.gridtable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#fff}table.linetable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:2px;border-color:#666;border-collapse:collapse;width:100%}table.linetable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold}table.linetable td{border-width:1px;padding:8px;border-style:solid;border-color:#666}table.linetable tr{background:#fff}table.linetable tr:hover{background-color:#faf}table.reporttable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border:solid black 2px;border-color:#666;border-collapse:collapse;width:100%;border-spacing:10px}table.reporttable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold}table.reporttable td{border:solid black 0;padding:8px;text-align:left;vertical-align:top}table.reporttable tr{background:#d6f8be}table.reporttable tr:hover{background-color:#faf}table.commandtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:100%}table.commandtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#e4d662;font-weight:bold}table.commandtable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#fff;font-weight:bold}table.navitable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:100%}table.navitable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#d09696;font-weight:bold}table.navitable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c08f8f}table.infotable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:100%}table.infotable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold}table.infotable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff}table.billtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#000;border:solid black 2px;border-color:#000;border-collapse:collapse;width:100%;border-spacing:10px}table.billtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold;text-align:left}table.billtable #pricecolheader{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold;text-align:right}table.billtable td{border:solid black 0;padding:8px;background-color:#fff;text-align:left}table.billtable #pricecol{border:solid black 0;padding:8px;background-color:#fff;text-align:right}table.billtable #totalprice{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold;text-align:center}.grid_right{text-align:right;font-style:italic}.userinfo{font-style:italic}.counting{position:absolute;top:0;bottom:0;right:90px;width:80px;border:0;background-color:rgb(246,246,246,0.0) !important}.counting:hover{background-color:#0f0}.goup{position:absolute;top:5px;bottom:0;right:90px;border:0;background-color:#f6f6f6 !important}.osroom-1{height:40px !important}.osroom-2{height:70px !important}.ostable-1{height:40px !important}.ostable-2{height:70px !important}.osprod-1{height:40px !important}.osprod-2{height:70px !important}.osbigbtn.ui-btn{height:40px !important;text-align:center;line-height:30px}table.prodtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:70%}table.prodtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:OrangeRed;font-weight:bold}table.prodtable .prodtype td{background-color:DarkGreen}table.prodtable tr>td:first-child{text-align:left}table.prodtable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:LimeGreen;text-align:right;font-weight:bold;white-space:nowrap;max-width:50%;word-break:break-all}table.prodtable input{line-height:30px;background-color:PaleGreen;font-weight:bold}table.prodtable select{background-color:PaleGreen;font-weight:bold;width:100%}table.prodtable option.yes{background-color:green}table.prodtable option.no{background-color:red}table.prodtable .prodpriceA{width:50px;text-align:right}table.prodtable .prodpriceB{width:50px;text-align:right}table.prodtable .prodpriceC{width:50px;text-align:right}.prodinfo,.srinfo{position:absolute;top:0;bottom:0;right:20px;width:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.waitinfo{position:absolute;top:0;bottom:0;right:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.waitinfo img{position:absolute;top:0;bottom:0;right:20px;height:35px;border:0;background-color:rgb(246,246,246,0.0) !important}.typehigher{text-align:right;background-color:rgb(246,246,246,0.0) !important}.typetop{text-align:left;background-color:rgb(246,246,246,0.0) !important}@media all and (min-width:0){.typetop img{width:100px}.typehigher img{width:100px}}@media all and (min-width:20em){.typetop img{width:120px}.typehigher img{width:120px}}@media all and (min-width:40em){.typetop img{width:160px}.typehigher img{width:160px}}.prodminus,.srminus{position:absolute;top:0;bottom:0;right:130px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodcount,.srprodcount{position:absolute;top:10px;bottom:0;right:95px;width:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodplus,.srplus{position:absolute;top:0;bottom:0;right:60px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodplus img{width:30px}.prodminus img{width:30px}.srplus img{width:30px}.srminus img{width:30px}.srminus:hover,.prodminus:hover{height:40px;width:30px;background-color:#0f0}.srplus:hover,.prodplus:hover{height:40px;width:30px;background-color:#0f0}.prodinfo img:hover,.srinfo img:hover{background-color:#0f0}.tbusy{color:black !important;font-weight:bold;font-style:italic}.tempty{color:gray !important;color:gray !important;font-weight:normal}.overlaytxt{background:linear-gradient(red,yellow);color:black;font-weight:bold;border-radius:25px;border:3px solid #000;padding:8px}.overlayfull{background:linear-gradient(red,yellow)}.overlayempty{background:linear-gradient(green,yellow)}.overlaysize-0{font-size:7px}.overlaysize-1{font-size:12px}.overlaysize-2{font-size:15px}.selectedtable{border:6px solid red}.prodreadyicon{position:absolute;top:0;bottom:0;right:70px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodreadyicon:hover{height:40px;background-color:#0f0}.prodreadycount{position:absolute;top:10px;bottom:0;right:40px;width:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.changetableprodlist{width:100%;background-color:LightCyan;resize:none}.usersums{border:solid black 3px;background-color:#ffe8bc}.usersums td{border:solid black 1px;padding:3px;text-align:right;vertical-align:bottom}.taxessums{border:solid black 3px;background-color:#f0e8bc}.taxessums td{border:solid black 1px;padding:3px;text-align:right;vertical-align:bottom}.scrolllistview{height:150px;top:10px;overflow:auto;background-color:blanchedalmond;-webkit-overflow-scrolling:touch}.scrolllistview li{height:15px;vertical-align:middle}.selecteditem{color:black;font-weight:bold}.unselecteditem{color:gray}.printerstatus{height:20px}.warning{color:red}.whiteinput[type=text]{color:black;background-color:white}.customerlistbox{background-color:white;border:2px solid #aaa}.genConfigEl[type=text],.genConfigEl[type=password]{border:1px solid #666;background-color:#fff;font-family:"Courier New",Courier,monospace}#userlabel_username[type=text],#userlabel_password[type=text],.userlabel_newpassword[type=text],#remarkfield[type=text],#oldpass[type=password],#newpass[type=password]{border:1px solid #666;background-color:#fff}.reservationinputfield[type=text]{border:1px solid #666;background-color:#fff}textarea.genConfigEl{font-family:"Courier New",Courier,monospace} \ No newline at end of file +@charset "UTF-8";table.viewtable{width:100%;display:block;table-layout:fixed}table.viewtable th{background:#7abe5f;font-size:10pt;border-bottom:1px solid rgba(255,255,255,.7);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);-o-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.2);padding:6px 10px}table.viewtable td{background:#eed33f;font-size:8pt;border-bottom:1px solid #fafafa;border-bottom:1px solid rgba(255,255,255,.5);padding:6px 10px;color:rgba(0,0,0,255)}table.viewtable th.complete{background:#17370b;color:rgba(255,255,255,0)}table.viewtable th.incomplete{background:#9c9224;color:rgba(0,0,0,255)}table.viewtable td.complete{background:#78bb5e;color:rgba(0,0,0,255)}table.viewtable td.incomplete{background:#eed33f;color:rgba(0,0,0,255)}table.viewtable tr:last-child td{border-bottom:0}table.viewtable tr:hover td{background-color:#faf}table.receipttable td{border:solid black 0;padding:3px;text-align:left;vertical-align:bottom}table.receipttable td.price{border:solid black 0;padding:3px;text-align:right;vertical-align:bottom}table.receipttable td.restinfo{text-align:center;vertical-align:bottom}table.receipttable td.declaration{font-weight:bold;text-align:right}table.gridtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:3px;border-color:#666;border-collapse:collapse;width:100%}table.gridtable th{border-width:4px;padding:8px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold;text-align:center}table.gridtable td{border-width:2px;padding:8px;border-style:solid;border-color:#666;background-color:#fff;text-align:center}table.gridtable td.rowname{font-weight:bold;text-align:left}table.gridtable td:hover{background-color:#faf}table.gridtable td.rowname:hover{background-color:#fff}table.linetable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:2px;border-color:#666;border-collapse:collapse;width:100%}table.linetable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold}table.linetable td{border-width:1px;padding:8px;border-style:solid;border-color:#666}table.linetable tr{background:#fff}table.linetable tr:hover{background-color:#faf}table.reporttable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border:solid black 2px;border-color:#666;border-collapse:collapse;width:100%;border-spacing:10px}table.reporttable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold}table.reporttable td{border:solid black 0;padding:8px;text-align:left;vertical-align:top}table.reporttable tr{background:#d6f8be}table.reporttable tr:hover{background-color:#faf}table.commandtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:100%}table.commandtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#e4d662;font-weight:bold}table.commandtable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#fff;font-weight:bold}table.navitable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:100%}table.navitable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#d09696;font-weight:bold}table.navitable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c08f8f}table.infotable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:100%}table.infotable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold}table.infotable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff}table.billtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#000;border:solid black 2px;border-color:#000;border-collapse:collapse;width:100%;border-spacing:10px}table.billtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold;text-align:left}table.billtable #pricecolheader{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold;text-align:right}table.billtable td{border:solid black 0;padding:8px;background-color:#fff;text-align:left}table.billtable #pricecol{border:solid black 0;padding:8px;background-color:#fff;text-align:right}table.billtable #totalprice{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold;text-align:center}.grid_right{text-align:right;font-style:italic}.userinfo{font-style:italic}.counting{position:absolute;top:0;bottom:0;right:90px;width:80px;border:0;background-color:rgb(246,246,246,0.0) !important}.counting:hover{background-color:#0f0}.goup{position:absolute;top:5px;bottom:0;right:90px;border:0;background-color:#f6f6f6 !important}.osroom-1{height:40px !important}.osroom-2{height:70px !important}.ostable-1{height:40px !important}.ostable-2{height:70px !important}.osprod-1{height:40px !important}.osprod-2{height:70px !important}.osbigbtn.ui-btn{height:40px !important;text-align:center;line-height:30px}table.prodtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:70%}table.prodtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:OrangeRed;font-weight:bold}table.prodtable .prodtype td{background-color:DarkGreen}table.prodtable tr>td:first-child{text-align:left}table.prodtable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:LimeGreen;text-align:right;font-weight:bold;white-space:nowrap;max-width:50%;word-break:break-all}table.prodtable input{line-height:30px;background-color:PaleGreen;font-weight:bold}table.prodtable select{background-color:PaleGreen;font-weight:bold;width:100%}table.prodtable option.yes{background-color:green}table.prodtable option.no{background-color:red}table.prodtable .prodpriceA{width:50px;text-align:right}table.prodtable .prodpriceB{width:50px;text-align:right}table.prodtable .prodpriceC{width:50px;text-align:right}.prodinfo,.srinfo{position:absolute;top:0;bottom:0;right:20px;width:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.waitinfo{position:absolute;top:0;bottom:0;right:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.waitinfo img{position:absolute;top:0;bottom:0;right:20px;height:35px;border:0;background-color:rgb(246,246,246,0.0) !important}.typehigher{text-align:right;background-color:rgb(246,246,246,0.0) !important}.typetop{text-align:left;background-color:rgb(246,246,246,0.0) !important}@media all and (min-width:0){.typetop img{width:100px}.typehigher img{width:100px}}@media all and (min-width:20em){.typetop img{width:120px}.typehigher img{width:120px}}@media all and (min-width:40em){.typetop img{width:160px}.typehigher img{width:160px}}.prodminus,.srminus{position:absolute;top:0;bottom:0;right:130px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodcount,.srprodcount{position:absolute;top:10px;bottom:0;right:95px;width:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodplus,.srplus{position:absolute;top:0;bottom:0;right:60px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodplus img{width:30px}.prodminus img{width:30px}.srplus img{width:30px}.srminus img{width:30px}.srminus:hover,.prodminus:hover{height:40px;width:30px;background-color:#0f0}.srplus:hover,.prodplus:hover{height:40px;width:30px;background-color:#0f0}.prodinfo img:hover,.srinfo img:hover{background-color:#0f0}.tbusy{color:black !important;font-weight:bold;font-style:italic}.tempty{color:gray !important;color:gray !important;font-weight:normal}.overlaytxt{background:linear-gradient(red,yellow);color:black;font-weight:bold;border-radius:25px;border:3px solid #000;padding:8px}.overlayfull{background:linear-gradient(red,yellow)}.overlayempty{background:linear-gradient(green,yellow)}.overlaysize-0{font-size:7px}.overlaysize-1{font-size:12px}.overlaysize-2{font-size:15px}.selectedtable{border:6px solid red}.prodreadyicon{position:absolute;top:0;bottom:0;right:70px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodreadyicon:hover{height:40px;background-color:#0f0}.prodreadycount{position:absolute;top:10px;bottom:0;right:40px;width:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.changetableprodlist{width:100%;background-color:LightCyan;resize:none}.usersums{border:solid black 3px;background-color:#ffe8bc}.usersums td{border:solid black 1px;padding:3px;text-align:right;vertical-align:bottom}.taxessums{border:solid black 3px;background-color:#f0e8bc}.taxessums td{border:solid black 1px;padding:3px;text-align:right;vertical-align:bottom}.scrolllistview{height:150px;top:10px;overflow:auto;background-color:blanchedalmond;-webkit-overflow-scrolling:touch}.scrolllistview li{height:15px;vertical-align:middle}.selecteditem{color:black;font-weight:bold}.unselecteditem{color:gray}.printerstatus{height:20px}.warning{color:red}.whiteinput[type=text]{color:black;background-color:white}.customerlistbox{background-color:white;border:2px solid #aaa}.genConfigEl[type=text],.genConfigEl[type=password]{border:1px solid #666;background-color:#fff;font-family:"Courier New",Courier,monospace}#userlabel_username[type=text],#userlabel_password[type=text],.userlabel_newpassword[type=text],#remarkfield[type=text],#oldpass[type=password],#newpass[type=password]{border:1px solid #666;background-color:#fff}.reservationinputfield[type=text]{border:1px solid #666;background-color:#fff}textarea.genConfigEl{font-family:"Courier New",Courier,monospace} \ No newline at end of file diff --git a/webapp/css/ospage.css b/webapp/css/ospage.css index 8d5efc1..40f685e 100644 --- a/webapp/css/ospage.css +++ b/webapp/css/ospage.css @@ -1 +1 @@ -html{overflow-y:scroll}.ospage{font-family:Helvetica,Arial,Verdana,sans-serif;display:-webkit-flex;display:flex;-webkit-flex-flow:row wrap;flex-flow:row wrap;text-align:center;color:white}.ospage>*{padding:10px;flex:100%}.main{text-align:left;background:cornflowerblue;-webkit-flex:5;flex:5;-webkit-flex-flow:nowrap;flex-flow:nowrap}.header{background:black}.footer{display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-flex-wrap:row nowrap;flex-flow:row nowrap;background:black;-webkit-align-items:stretch;align-items:stretch}#loggedinuser{text-align:left;width:50%}#versioninfo{text-align:right;color:white;width:50%}.aside1{background:moccasin;color:black;width:0;-webkit-flex:2;flex:2}.aside2{background:violet;-webkit-flex:1;flex:1}@media all and (min-width:400px){.aside1{order:1}.main{order:2}.aside2{order:3}.ordereditem-sentcontainer{order:4}.waitermsg{order:5}.footer{order:6}}.input100{width:100%;height:50px;font-weight:bold;text-align:center}.input90{width:89%;height:50px;font-weight:bold;text-align:center}.input50{width:49%;height:50px;font-weight:bold;text-align:center}.area10{width:9%;height:50px;text-align:center}.inputwhite[type="text"]{background-color:white}.inputwhite[type="submit"]{background-color:white}.inputgreen[type="text"]{background-color:#0f0}.inputgreen[type="submit"]{background-color:#0f0}.inputblue[type="text"]{background-color:#8ee5ee}.inputblue[type="submit"]{background-color:#8ee5ee}.infoarea{width:49%;background-color:#afa;color:black;font-weight:bold;font-size:20px;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;align-items:center;border:2px solid red}.mainmenuchoice{list-style-type:none;padding:0;border:1px solid #ddd}.mainmenuitem{padding:8px 16px;border-bottom:1px solid #ddd;background-color:#fff6b5;height:40px;font-size:16px;font-weight:bold}.mainmenuitem:hover{background-color:#eed33f}.commentitem:last-child{border-bottom:0}.commentitem{padding:8px 16px;border-bottom:1px solid #ddd;background-color:#fff6b5;height:40px;font-size:16px;font-weight:bold}.commentitem:last-child{border-bottom:0}#loggedinuser{color:black}.buttonarea{box-shadow:10px 10px 5px #888} \ No newline at end of file +html{overflow-y:scroll}.ospage{font-family:Helvetica,Arial,Verdana,sans-serif;display:-webkit-flex;display:flex;-webkit-flex-flow:row wrap;flex-flow:row wrap;text-align:center;color:white}.ospage>*{padding:10px;flex:100%}.tableospage{width:100%;height:40px;background-color:black;color:white;text-align:center;vertical-align:middle;display:inline-table}.main{text-align:left;background:cornflowerblue;-webkit-flex:5;flex:5;-webkit-flex-flow:nowrap;flex-flow:nowrap}.tablemain{text-align:left;background:cornflowerblue;vertical-align:top;width:65%}#rightsidearea{vertical-align:top;background:violet;color:black;width:15%}.header{background:black;font-weight:bold;display:inline-table;vertical-align:middle;padding:10px}.footer{display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-flex-wrap:row nowrap;flex-flow:row nowrap;background:black;-webkit-align-items:stretch;align-items:stretch}.tablefooter{padding:10px;background-color:black;vertical-align:middle;display:inline-table;width:100%;height:15px}.tabledashheader{padding:10px;background-color:black;vertical-align:middle;display:inline-table;width:100%;height:15px;text-align:center}.dashheader{color:white;text-align:center;font-weight:bold}#loggedinuser{float:left;color:white;background-color:black}#versioninfo{color:white;float:right;background-color:black}.floatright{float:right}.aside1{background:moccasin;color:black;width:0;-webkit-flex:2;flex:2}.tableaside1{background:moccasin;color:black;width:20%;vertical-align:top}.tablepanelheader{width:100%;height:40px;color:white;background-color:black;text-align:center;vertical-align:middle}.aside2{background:violet;-webkit-flex:1;flex:1}@media all and (min-width:400px){.aside1{order:1}.main{order:2}.aside2{order:3}.ordereditem-sentcontainer{order:4}.waitermsg{order:5}.footer{order:6}}.input100{width:100%;height:50px;font-weight:bold;text-align:center}.input90{width:89%;height:50px;font-weight:bold;text-align:center}.input50{width:49%;height:50px;font-weight:bold;text-align:center}.area10{width:9%;height:50px;text-align:center}.inputwhite[type="text"]{background-color:white}.inputwhite[type="submit"]{background-color:white}.inputgreen[type="text"]{background-color:#0f0}.inputgreen[type="submit"]{background-color:#0f0}.inputblue[type="text"]{background-color:#8ee5ee}.inputblue[type="submit"]{background-color:#8ee5ee}.infoarea{width:49%;background-color:#afa;color:black;font-weight:bold;font-size:20px;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;align-items:center;border:2px solid red}.mainmenuchoice{list-style-type:none;padding:0;border:1px solid #ddd}.mainmenuitem{padding:8px 16px;border-bottom:1px solid #ddd;background-color:#fff6b5;height:40px;font-size:16px;font-weight:bold}.mainmenuitem:hover{background-color:#eed33f}.commentitem:last-child{border-bottom:0}.commentitem{padding:8px 16px;border-bottom:1px solid #ddd;background-color:#fff6b5;height:40px;font-size:16px;font-weight:bold}.commentitem:last-child{border-bottom:0}.buttonarea{box-shadow:10px 10px 5px #888} \ No newline at end of file diff --git a/webapp/dash.php b/webapp/dash.php new file mode 100644 index 0000000..0359eed --- /dev/null +++ b/webapp/dash.php @@ -0,0 +1,230 @@ + + + Ansicht Dashboard + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Dashboard + +
+ +
+ + + + + +

+

+

+
+ + +
+ +
+ + +
+ + + + + + \ No newline at end of file diff --git a/webapp/elements/dash.js b/webapp/elements/dash.js new file mode 100644 index 0000000..96617a5 --- /dev/null +++ b/webapp/elements/dash.js @@ -0,0 +1,147 @@ +function Dash() { + + this.backColors = [ + 'rgba(255, 99, 132, 0.2)', + 'rgba(54, 162, 235, 0.2)', + 'rgba(255, 206, 86, 0.2)', + 'rgba(75, 192, 192, 0.2)', + 'rgba(153, 102, 255, 0.2)', + 'rgba(255, 159, 64, 0.2)' + ]; + + this.borderColors = [ + 'rgba(255,99,132,1)', + 'rgba(54, 162, 235, 1)', + 'rgba(255, 206, 86, 1)', + 'rgba(75, 192, 192, 1)', + 'rgba(153, 102, 255, 1)', + 'rgba(255, 159, 64, 1)' + ]; + + this.createColsArray = function(inputColors,count) { + var cols = []; + for (var i=0;i' - + '

'; + + '

'; return txt; } @@ -386,14 +386,23 @@ function createProdType(id,name,kind,usekitchen,usesupplydesk,printer) { createUpperMenuTypeStructure: function() { - var txt = '

' + this.name + '

' - + "

" - + "
" - + "
" - + "
" + + var txt = '

' + this.name + '

' + + + '' + + '

' + + '

'; return txt; }, diff --git a/webapp/feedback.html b/webapp/feedback.html index c4d5e48..eecb832 100644 --- a/webapp/feedback.html +++ b/webapp/feedback.html @@ -4,7 +4,7 @@ - + diff --git a/webapp/index.html b/webapp/index.html index 9c68b60..48d81ba 100644 --- a/webapp/index.html +++ b/webapp/index.html @@ -9,8 +9,8 @@ - - + + @@ -206,7 +206,7 @@ function handleResultOfInstallCheck(is_installed) { if (is_installed == "Yes") { useInstallation(); } else { - setTimeout(function(){document.location.href = "install.html?v=1.3.13"},500); + setTimeout(function(){document.location.href = "install.html?v=1.3.14"},500); } } diff --git a/webapp/install.html b/webapp/install.html index 45f06fa..39e9ee5 100644 --- a/webapp/install.html +++ b/webapp/install.html @@ -725,7 +725,7 @@ $(document).ready(function() {   - +   diff --git a/webapp/install/installer.php b/webapp/install/installer.php index 81ce562..c5565df 100644 --- a/webapp/install/installer.php +++ b/webapp/install/installer.php @@ -1171,12 +1171,12 @@ return false; } private function execSql($pdo,$sql) { -$stmt = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql)); +$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); $stmt->execute(); } private function execSqlWithParam($pdo,$sql,$param) { -$stmt = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql)); +$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); $stmt->execute($param); } @@ -1849,13 +1849,9 @@ $sql = "SHOW COLUMNS FROM %customers% LIKE 'hello'"; $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); $stmt->execute(); $result = $stmt->fetchAll(); -if (count($result) == 0) { -$sql = "ALTER TABLE %customers% ADD hello VARCHAR(100) NULL AFTER www"; -$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); -$stmt->execute(); -$sql = "ALTER TABLE %customers% ADD regards VARCHAR(100) NULL AFTER hello"; -$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); -$stmt->execute(); +if (count($result) == 0) { +$this->execSql($pdo, "ALTER TABLE %customers% ADD hello VARCHAR(100) NULL AFTER www"); +$this->execSql($pdo, "ALTER TABLE %customers% ADD regards VARCHAR(100) NULL AFTER hello"); $this->execSql($pdo, "OPTIMIZE TABLE %customers%"); } @@ -1947,9 +1943,7 @@ return false; DbUtils::overrulePrefix($prefix); -$sql = "INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL,?,?)"; -$stmt = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql)); -$stmt->execute(array('updateurl','http://www.ordersprinter.de/update')); +$this->execSqlWithParam($pdo, "INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL,?,?)", array('updateurl','http://www.ordersprinter.de/update')); $this->updateVersion($pdo, '1.3.7'); return true; @@ -2009,24 +2003,15 @@ return false; DbUtils::overrulePrefix($prefix); -$sql = "ALTER TABLE %products% ADD unit INT(2) NULL AFTER priceC"; -$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); -$stmt->execute(); -$sql = "ALTER TABLE %histprod% ADD unit INT(2) NULL AFTER priceC"; -$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); -$stmt->execute(); +$this->execSql($pdo, "ALTER TABLE %products% ADD unit INT(2) NULL AFTER priceC"); +$this->execSql($pdo, "ALTER TABLE %histprod% ADD unit INT(2) NULL AFTER priceC"); $this->updateVersion($pdo, '1.3.9'); -$sql = "ALTER TABLE %products% ADD days VARCHAR(20) NULL AFTER unit"; -$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); -$stmt->execute(); -$sql = "ALTER TABLE %histprod% ADD days VARCHAR(20) NULL AFTER unit"; -$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); -$stmt->execute(); -$sql = "ALTER TABLE %user% ADD failedlogins VARCHAR(20) NULL AFTER extrasapplybtnpos"; -$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); -$stmt->execute(); +$this->execSql($pdo, "ALTER TABLE %products% ADD days VARCHAR(20) NULL AFTER unit"); +$this->execSql($pdo, "ALTER TABLE %histprod% ADD days VARCHAR(20) NULL AFTER unit"); + +$this->execSql($pdo, "ALTER TABLE %user% ADD failedlogins VARCHAR(20) NULL AFTER extrasapplybtnpos"); return true; } catch (PDOException $e) { @@ -2079,9 +2064,7 @@ $stmt->execute(array('showpayment7','0')); $stmt->execute(array('showpayment8','0')); } -$sql = "ALTER TABLE %extras% ADD sorting INT(2) NULL AFTER price"; -$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); -$stmt->execute(); +$this->execSql($pdo, "ALTER TABLE %extras% ADD sorting INT(2) NULL AFTER price"); $sql = "SELECT id FROM %extras% WHERE removed is null"; $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); @@ -2175,6 +2158,63 @@ return false; } } +function updateUserTable1313_1314($prefix, $version, $dbname) { +$pdo = $this->pdo; +try { +if ($version != "1.3.13") { +$ret = $this->updateUserTable1312_1313($prefix, $version, $dbname); +if (!$ret) { +echo "Version update v1.3.12 to 1.3.13 not successful."; +return false; +} +} + +DbUtils::overrulePrefix($prefix); + +$sql = "INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL,?,?)"; +$stmt = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql)); +$stmt->execute(array('k1prinstance','1')); +$stmt->execute(array('k2prinstance','1')); +$stmt->execute(array('k3prinstance','1')); +$stmt->execute(array('k4prinstance','1')); +$stmt->execute(array('k5prinstance','1')); +$stmt->execute(array('k6prinstance','1')); +$stmt->execute(array('d1prinstance','1')); +$stmt->execute(array('d2prinstance','1')); +$stmt->execute(array('f1prinstance','1')); +$stmt->execute(array('f2prinstance','1')); + +$stmt->execute(array('dashslot1','1')); +$stmt->execute(array('dashslot2','2')); +$stmt->execute(array('dashslot3','3')); + +$sql = "SHOW COLUMNS FROM %user% LIKE 'right_dash'"; +$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); +$stmt->execute(); +$result = $stmt->fetchAll(); +if (count($result) == 0) { +$this->execSql($pdo, "ALTER TABLE %user% ADD right_dash INT(2) NULL AFTER right_closing"); +$this->execSql($pdo, "ALTER TABLE %histuser% ADD right_dash INT(2) NULL AFTER right_closing"); + +$this->execSqlWithParam($pdo, "UPDATE %user% SET right_dash=?", array(0)); +$this->execSqlWithParam($pdo, "UPDATE %histuser% SET right_dash=?", array(0)); + +$this->execSqlWithParam($pdo, "UPDATE %user% SET right_dash=? WHERE right_manager=? OR is_admin=?", array(1,1,1)); +$this->execSqlWithParam($pdo, "UPDATE %histuser% SET right_dash=? WHERE right_manager=? OR is_admin=?", array(1,1,1)); + +$this->execSql($pdo, "OPTIMIZE TABLE %user%"); +$this->execSql($pdo, "OPTIMIZE TABLE %histuser%"); +} + +$this->updateVersion($pdo, '1.3.14'); + +return true; +} catch (PDOException $e) { +echo "Error in v1.3.13 to 1.3.14: $e"; +return false; +} +} + function setVersion($prefix,$theVersion) { $pdo = $this->pdo; @@ -2301,7 +2341,7 @@ $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VAL $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'billlanguage', $billlanguage)"); $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'currency', '$currency')"); $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'receiptfontsize', '12')"); -$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'version', '1.3.13')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'version', '1.3.14')"); $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'paymentconfig', '0')"); $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'remoteaccesscode', null)"); $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'decpoint', '$decpoint')"); @@ -2365,6 +2405,10 @@ $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VAL $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'showpayment7', '1')"); $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'showpayment8', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'dashslot1', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'dashslot2', '2')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'dashslot3', '3')"); + $hosttext = self::genSampleHostText(); $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'hosttext', '$hosttext')"); @@ -2373,6 +2417,17 @@ date_default_timezone_set($timezone); $installDate = date('Y-m-d H:i:s'); $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'installdate', '$installDate')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'k1prinstance', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'k2prinstance', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'k3prinstance', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'k4prinstance', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'k5prinstance', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'k6prinstance', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'd1prinstance', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'd2prinstance', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'f1prinstance', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'f2prinstance', '1')"); + $this->readConfigTableAndSendToHist($pdo); return; } @@ -2445,24 +2500,24 @@ $stmt_insert_hist->execute(array($currentTime, $action, $refIdForHist)); function insertUser($username,$adminpass,$is_admin,$right_waiter,$right_kitchen,$right_bar, $right_supply,$right_paydesk,$right_statistics,$right_bill,$right_products,$right_changeprice,$right_customers, -$right_manager,$right_closing,$right_reservation,$right_rating,$lang,$prefertablemap) { +$right_manager,$right_closing,$right_dash,$right_reservation,$right_rating,$lang,$prefertablemap) { $md5adminpass = md5($adminpass); $pdo = $this->pdo; -$userInsertSql = "INSERT INTO `%user%` (`id` , `username` , `userpassword`, `is_admin`, `right_waiter`,`right_kitchen`,`right_bar`,`right_supply`,`right_paydesk`,`right_statistics`,`right_bill`,`right_products`,`right_changeprice`,`right_customers`,`right_manager`,`right_closing`,`right_reservation`,`right_rating`,`language`,`prefertablemap`,`keeptypelevel`,`extrasapplybtnpos`,`active`) VALUES (NULL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,'1','1')"; +$userInsertSql = "INSERT INTO `%user%` (`id` , `username` , `userpassword`, `is_admin`, `right_waiter`,`right_kitchen`,`right_bar`,`right_supply`,`right_paydesk`,`right_statistics`,`right_bill`,`right_products`,`right_changeprice`,`right_customers`,`right_manager`,`right_closing`,`right_dash`,`right_reservation`,`right_rating`,`language`,`prefertablemap`,`keeptypelevel`,`extrasapplybtnpos`,`active`) VALUES (NULL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,'1','1')"; $stmt = $pdo->prepare(DbUtils::substTableAlias($userInsertSql)); -$stmt->execute(array($username,$md5adminpass,$is_admin,$right_waiter,$right_kitchen,$right_bar,$right_supply,$right_paydesk,$right_statistics,$right_bill,$right_products,$right_changeprice,$right_customers,$right_manager,$right_closing,$right_reservation,$right_rating,$lang,$prefertablemap,0)); +$stmt->execute(array($username,$md5adminpass,$is_admin,$right_waiter,$right_kitchen,$right_bar,$right_supply,$right_paydesk,$right_statistics,$right_bill,$right_products,$right_changeprice,$right_customers,$right_manager,$right_closing,$right_dash,$right_reservation,$right_rating,$lang,$prefertablemap,0)); $newUserIdForHist = $pdo->lastInsertId(); // now insert into hist $sql_insert_histuser = "INSERT INTO %histuser% (`id` , `userid`, `username` , `is_admin`, `right_waiter`,`right_kitchen`,`right_bar`,`right_supply`,`right_paydesk`, -`right_statistics`,`right_bill`,`right_products`,`right_changeprice`,`right_customers`,`right_manager`,`right_closing`,`right_reservation`,`right_rating`,`active`) VALUES ( -NULL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; +`right_statistics`,`right_bill`,`right_products`,`right_changeprice`,`right_customers`,`right_manager`,`right_closing`,`right_dash`,`right_reservation`,`right_rating`,`active`) VALUES ( +NULL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; $stmt_insert_histuser = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql_insert_histuser)); -$stmt_insert_histuser->execute(array($newUserIdForHist,$username,$is_admin,$right_waiter,$right_kitchen,$right_bar,$right_supply,$right_paydesk,$right_statistics,$right_bill,$right_products,$right_changeprice,$right_customers,$right_manager,$right_closing,$right_reservation,$right_rating,1)); +$stmt_insert_histuser->execute(array($newUserIdForHist,$username,$is_admin,$right_waiter,$right_kitchen,$right_bar,$right_supply,$right_paydesk,$right_statistics,$right_bill,$right_products,$right_changeprice,$right_customers,$right_manager,$right_closing,$right_dash,$right_reservation,$right_rating,1)); $newRefIdForHist = $pdo->lastInsertId(); $this->insertIntoHist($pdo, '3', $newRefIdForHist); } @@ -2621,15 +2676,15 @@ $stmt->execute(array(6,76,22)); } if ($workflow == 2) { -$this->insertUser( $waiterTxt[$lang], $adminpass,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,$lang,1); +$this->insertUser( $waiterTxt[$lang], $adminpass,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,$lang,1); if ($level == 3) { -$this->insertUser( $bossTxt[$lang], $adminpass,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,$lang,1); +$this->insertUser( $bossTxt[$lang], $adminpass,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,$lang,1); } } else { -$this->insertUser( $waiterTxt[$lang], $adminpass,0,1,0,0,1,1,0,1,0,0,0,0,0,1,0,$lang,1); +$this->insertUser( $waiterTxt[$lang], $adminpass,0,1,0,0,1,1,0,1,0,0,0,0,0,0,1,0,$lang,1); if ($level == 3) { -$this->insertUser( $cookTxt[$lang], $adminpass,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,$lang,1); -$this->insertUser( $bossTxt[$lang], $adminpass,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,$lang,1); +$this->insertUser( $cookTxt[$lang], $adminpass,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,$lang,1); +$this->insertUser( $bossTxt[$lang], $adminpass,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,$lang,1); } } @@ -2684,7 +2739,7 @@ if (!$ok) { echo json_encode("Fehler: Ist OpenSSL richtig installiert?"); return; } -$admin->insertUser("admin",$_POST['adminpass'],1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,$_POST['lang'],1); +$admin->insertUser("admin",$_POST['adminpass'],1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,$_POST['lang'],1); $admin->writeConfigFile($_POST['host'],$_POST['db'],$_POST['user'],$_POST['password'],$_POST['prefix']); if(session_id() == '') { @@ -2714,7 +2769,7 @@ $zones[] = $timezone_identifiers[$i]; } echo json_encode($zones); } else if ($command == 'update') { -$installerVersion = "1.3.13"; +$installerVersion = "1.3.14"; $admin = new InstallAdmin(); $pdo = $admin->openDbAndReturnPdo($_POST['host'],$_POST['db'],$_POST['user'],$_POST['password']); @@ -2744,7 +2799,8 @@ $supportedVersions = array("1.0.22","1.0.23","1.0.24","1.0.25","1.0.26","1.0.27" "1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.1.7","1.1.8", "1.1.9","1.1.10","1.1.11","1.1.12","1.1.13","1.1.14","1.1.15","1.1.16","1.1.17", "1.1.18","1.1.19","1.1.20","1.1.21","1.1.22","1.1.23","1.1.24","1.1.25","1.1.26","1.1.27","1.1.28","1.1.29","1.1.30", "1.2.0","1.2.1","1.2.2", "1.2.3", "1.2.4","1.2.5","1.2.6","1.2.7","1.2.8","1.2.9","1.2.10","1.2.11","1.2.12","1.2.13","1.2.14","1.2.15","1.2.16","1.2.17", -"1.2.18","1.2.19","1.2.20","1.2.21","1.2.22","1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.8","1.3.9","1.3.10","1.3.11","1.3.12" +"1.2.18","1.2.19","1.2.20","1.2.21","1.2.22","1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.8","1.3.9","1.3.10","1.3.11","1.3.12", +"1.3.13" ); if (!in_array($version, $supportedVersions)) { @@ -2752,7 +2808,7 @@ echo json_encode("Quellversion nicht unterstützt"); return; } -$ret = $admin->updateUserTable1312_1313($_POST['prefix'], $version, $_POST['db']); +$ret = $admin->updateUserTable1313_1314($_POST['prefix'], $version, $_POST['db']); if(session_id() == '') { session_start(); diff --git a/webapp/kitchen.html b/webapp/kitchen.html index f4733f4..b68bf60 100644 --- a/webapp/kitchen.html +++ b/webapp/kitchen.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/manager.html b/webapp/manager.html index 72b8ebd..66caf6f 100644 --- a/webapp/manager.html +++ b/webapp/manager.html @@ -5,7 +5,7 @@ - + @@ -67,6 +67,7 @@ var MAN_CHANGEPRICE = ["Preisänderung während Bestellung","Change price during 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"]; @@ -363,9 +364,18 @@ var MAN_CLOSING_TIME_LIMIT_ERROR = ["Ein Tagesabschluss wurde nicht erzeugt, wei 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 nur bei Printserverversionen ab 1.3.14!","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 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]; +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]; var numberOfClosings = 0; @@ -373,6 +383,7 @@ var unpaidTables = ""; var version = ''; var newerversionavailable = 0; var adminIsLoggedIn = false; +var managerIsLoggedIn = false; var generalValuesSettings = [ ["usstval","MwSt","i",2,"Mehrwertsteuer ist kein Zahlenwert"], @@ -455,7 +466,10 @@ var generalValuesSettings = [ ["memorylimit",MAN_MEMORYLIMIT[lang],"i",0,""], ["updateurl",MAN_UPDATEURL[lang],"i",0,""], - ["hs3refresh",MAN_HS3REFRESH[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] ]; var predef = ""; @@ -597,6 +611,17 @@ function setLanguage(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]); } function createMonthSelection(label) { @@ -623,11 +648,13 @@ function showPanelsDueToUserStatus(jsonAnswer) { adminIsLoggedIn = true; } if (jsonAnswer == "manager" || (jsonAnswer == 'admin')) { + managerIsLoggedIn = true; $("#userpart").show(); $("#configpart").show(); $("#printerqueue").show(); $("#dataexport").show(); $("#printserverdownloadpart").show(); + $("#printerinstances").show(); } if(jsonAnswer == "No") { @@ -683,7 +710,7 @@ function insertGeneralConfigItems(configResult) { generalVals[1] = 2; } generalVals[3] = values.paymentconfig; - generalVals[4] = values.workflowconfig; + generalVals[4] = values.workflowconfig; generalVals[16] = values.addreceipttoprinter; if ((values.addreceipttoprinter == "") || (values.addreceipttoprinter == null)) { generalVals[16] = 0; @@ -693,6 +720,9 @@ function insertGeneralConfigItems(configResult) { $("#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)); $("#partOfGroupWorkItems").html(createGroupWorkItemsPart(values.groupworkitems)); @@ -781,6 +811,10 @@ function insertGeneralConfigItems(configResult) { generalVals[33] = values.showpayment7; generalVals[34] = values.showpayment8; + generalVals[35] = values.dashslot1; + generalVals[36] = values.dashslot2; + generalVals[37] = values.dashslot3; + $("#smtphost").val(values.smtphost); $("#partOfSmtpauth").html(createSMTPAuth(values.smtpauth)); $("#smtpuser").val(values.smtpuser); @@ -966,6 +1000,30 @@ function createYesNo(label,nameOnGui,theValue) { 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 = '
'; + html += ''; + html += '
'; + + return html; +} + function createWorkflowConfigPart(workflow) { var html = '
'; html += ''; @@ -1592,9 +1650,9 @@ function handleUpdateCheckResult(answer) { var millis=getMillis(); setTimeout(function(){ - document.location.href = "install.html?v=1.3.13&mode=onlyupdate&n=" + millis; + document.location.href = "install.html?v=1.3.14&mode=onlyupdate&n=" + millis; },250); - document.location.href = "install.html?v=1.3.13&mode=onlyupdate&n=" + millis; + document.location.href = "install.html?v=1.3.14&mode=onlyupdate&n=" + millis; } function handleUpdateReplace(answer) { @@ -1613,6 +1671,111 @@ function handleUpdateReplace(answer) { $("#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(""); + } else { + $(cellRowId + "_" + InstanceNo).html(""); + } + } + + } +} + function bindSelectionsWithActions() { $("#austria").off("change").on("change", function (e) { e.stopImmediatePropagation(); @@ -1633,6 +1796,30 @@ function bindSelectionsWithActions() { $("#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(); @@ -2007,7 +2194,7 @@ function createLabelWithOption(aLabel,displayedName,hasTheRight) { * the username and the rights that the user has to work in the * various modules. */ -function createCollapsibeOfUser(id,username,isAdmin,rWaiter,rKitchen,rBar,rSupply,rPay,rStat,rBill,rProd,rReservation,rRating,rChangeprice,rCustomers,rClosing, rManager,forNewUser) { +function createCollapsibeOfUser(id,username,isAdmin,rWaiter,rKitchen,rBar,rSupply,rPay,rStat,rBill,rProd,rReservation,rRating,rChangeprice,rCustomers,rClosing, rDash, rManager,forNewUser) { var collapsiblePart = '
+
+
+
+
@@ -3107,6 +3272,33 @@ $(document).on("pageinit", "#admin-page", function () {
+ + "}else{a+='
'+g.name+"
"}});var e=roominfo.takeawayprice.replace(".",decpoint)+" "+currency;if(e!=""){e='
'+e+"
"}if(selectedroomindex<0){a+='
';a+='
Zum Mitnehmen
';a+=e;a+="
"}else{a+='
';a+='
Zum Mitnehmen
';a+=e;a+="
"}$("#roompanel").html(a);$("#tablepanelcontent").html("");showRoomTableTextInfo();showTablesForRoomIndex();bindingRoom()}function getRoomsForDialog(){var b=roominfo.roomstables;var a="";$.each(b,function(e,c){a+='
'+c.name+"
"});return a}function bindingRoom(){$(".roomitem").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();var a=parseInt(this.id.split("_")[1]);$("#changetablebtn").hide();if(panelMode=="waiter"){if(neworders.length>0){$("#unsentorderdlg").dialog({autoOpen:false,modal:true,height:400,buttons:{Nein:function(){$(this).dialog("close")},Ja:function(){$(this).dialog("close");discardChangeRoom(a)}}});$("#unsentorderdlg").dialog("open")}else{changeRoom(a);if(selectedroomindex=="-1"){startProductDisplay()}}}else{changeRoom(a);goPayDesk()}})}function discardChangeRoom(a){neworders=[];groupedNewOrders=null;showNewOrders();changeRoom(a)}function changeRoom(a){clearProductsSelection();selectedtableindex=null;selectedroomindex=a;if(restaurantmode==1){showRooms()}}function showRoomTableTextInfo(){var a="Keine Auswahl";if(selectedroomindex!==null){if(selectedroomindex<0){a="Zum Mitnehmen"}else{a="Raum: "+roominfo.roomstables[selectedroomindex].name;if(selectedtableindex!==null){var b=roominfo.roomstables[selectedroomindex].tables[selectedtableindex];a+=" - Tisch: "+b.name}}}$("#location").html(a)}function showTablesForRoomIndex(){if((selectedroomindex>=0)&&(selectedroomindex!==null)){var f=roominfo.roomstables[selectedroomindex].id;var g=shallDisplayRoom(f);if(g.show){$("#tablepanelcontent").hide();d=new Date();$("#mapimgpart").attr("src","php/tablemap.php?command=getTableMapImgAsPng&showBubbles=0&roomid="+f+"&"+d.getTime());$("#tablemapcontent").show();var c=new Tablemap(selectedroomindex,null,"");var e=roominfo.roomstables[selectedroomindex]["tables"];var a=null;if(selectedtableindex!=null){a=roominfo.roomstables[selectedroomindex].tables[selectedtableindex].id}var b=c.createOverlay("#mapimgpart",g.pos,W_TO_PAY[lang],decpoint,currency,e,ostablebtnsize,a);$("#tableoverlay").html(b);c.bindingForOverlaySelection(handleClickInTablemap.bind(this),f,e,switchZoomView)}else{showTablesListForRoomIndex()}}else{showTablesListForRoomIndex()}}function switchZoomView(){if(tableMapIsZoomed){$(".main").show();$("#roompanel").show();tableMapIsZoomed=false}else{$(".main").hide();$("#roompanel").hide();tableMapIsZoomed=true}}function unZoomTableMap(){tableMapIsZoomed=true;switchZoomView()}function handleClickInTablemap(b){selectedtableindex=null;var c=roominfo.roomstables[selectedroomindex].tables;for(var a=0;a=0)&&(selectedroomindex!==null)){var c=roominfo.roomstables[selectedroomindex].tables;var a="";$.each(c,function(f,g){if((selectedtableindex!=null)&&(c[selectedtableindex].id==g.id)){a+='
'}else{a+='
'}a+='
'+g.name+"
";var h=g.pricesum;if(h!=0){var e=h.replace(".",decpoint)+" "+currency;a+='
'+e+"
"}a+="
"});$("#tablepanelcontent").html(a)}else{$("#tablepanelcontent").html("")}$("#tablepanelcontent").show();bindingTable()}function getTablesForDialog(b){var c=roominfo.roomstables[b].tables;var a="";$.each(c,function(e,f){a+='
'+f.name+"
"});return a}function updateChangeTableBtnIfTableIsSelected(){if(panelMode=="waiter"){$("#changetablebtn").show()}else{$("#changetablebtn").hide()}}function bindingTable(){$(".tableitem").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();var a=parseInt(this.id.split("_")[1]);if(panelMode=="waiter"){$("#changetablebtn").show();if(neworders.length>0){$("#unsentorderdlg").dialog({autoOpen:false,modal:true,height:400,buttons:{Nein:function(){$(this).dialog("close")},Ja:function(){$(this).dialog("close");discardChangeTable(a)}}});$("#unsentorderdlg").dialog("open")}else{changeTable(a);startProductDisplay()}}else{changeTable(a);goPayDesk()}})}function discardChangeTable(a){neworders=[];groupedNewOrders=null;showNewOrders();changeTable(a)}function changeTable(a){selectedtableindex=a;showRoomTableTextInfo();showTablesForRoomIndex()}function startProductDisplay(){selectedtypeid=null;selectedprodid=null;clearProductsSelection();requestProdInformation();requestOrderedInformation();$("#search").val("");$("#searchpanel").show();$("#remarkpanel").show()}function clearProductsSelection(){neworders=[];groupedNewOrders=[];selectedtypeid=null;$("#groupchain").html("");$("#groupchoice").html("");$("#productspanel").html("");$("#remark").val("");$("#neworders").html("");$("#ordered").html("");$("#searchpanel").hide();$("#remarkpanel").hide()}var allOrderdItems=[];function requestOrderedInformation(){if(panelMode!="waiter"){return}var a=0;if((selectedroomindex==null)&&(selectedtableindex==null)){return}if((selectedroomindex!=null)&&(selectedroomindex!="-1")){var b=roominfo.roomstables[selectedroomindex].tables[selectedtableindex];a=b.id}doAjax("GET","php/contenthandler.php?module=queue&command=getJsonLongNamesOfProdsForTableNotDelivered&tableid="+a,null,insertOrderedInformation,true)}function insertOrderedInformation(b){allOrderdItems=b;var c=new Grouping(b,createTxtAssignedProd);c.group();var a="";a+=c.outputList(createListElOfAssignedProd);$("#ordered").html(a);bindOrderedItem()}function createTxtAssignedProd(e){var b="";if(e.option!=""){b="

"+toHtml(e.option)+""}var f="";var c=toHtml(e.longname);if(e.togo==1){f="To-Go: "}c='

'+f+''+c+"
";if(e.pricechanged==1){c+=" - "+e.price.replace(".",decpoint)}var a="";if(e.isready=="1"){a+=" ☞"}if(e.isCooking=="1"){a+=" ♨"}if(e.isPaid=="1"){a+=" ☑"}return c+'
'+b+a+createExtraParagraphForOrderedEl(e.extras)+"
"}function createListElOfAssignedProd(c){var b="";if("count" in c){if(c.count>1){b='
'+c.count+"x
"}}var a="
"+b+createTxtAssignedProd(c)+"
";return a}function createExtraParagraphForOrderedEl(b){if((b==null)||(b=="")){return""}var e="";var c=[];for(var a=0;a"}return"

"+c.join("
")}function bindOrderedItem(){$(".ordereditem-item-sent").off("click").on("click",function(g){g.stopImmediatePropagation();g.preventDefault();var b=this.id.split("_")[1];var h=allOrderdItems;for(var c=0;c=0){c[c.length]={id:h.id,name:h.name,amount:h.amount}}}}else{if(selectedtypeid!=null){var a=getType(selectedtypeid);for(var e=0;e'+c.name+"

"}else{a+='
'+c.name+"
"}})}$("#groupchoice").html(a);showChain();bindType()}function bindType(){$(".groupitemchoice").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();$("#search").val("");productFilter=null;showAllProdsToChoose();selectedtypeid=parseInt(this.id.split("_")[1]);updateProductInfoDisplay()})}function showAllProdsToChoose(){var b="osprod-desk-0";if(osprodbtnsize==1){b="osprod-desk-1"}else{if(osprodbtnsize==2){b="osprod-desk-2"}}var a="";if((selectedroomindex=="-1")||(selectedtableindex!=null)){var c=getAllProds(productFilter);$.each(c,function(e,f){a+='
'+f.name;if((f.amount!="null")&&(f.amount<11)){a+=" ("+W_ONLY[lang]+" "+f.amount+")"}a+="
"})}$("#productspanel").html(a);bindProduct();bindRemark()}function getTypeChain(){var b=getType(selectedtypeid);if(b==null){return[]}var e=[b];var c=false;while(!c){var a=b.ref;if((a==null)||(a==0)){c=true;break}else{b=getType(a);e[e.length]=b}}return e}function showChain(){var a="";if((selectedroomindex=="-1")||(selectedtableindex!=null)){var e=getTypeChain();a+='
Auswahl
';for(var c=e.length-1;c>=0;c--){var b=e[c];a+='
'+b.name+"
"}}$("#groupchain").html(a);bindChain();bindSearch()}function bindChain(){$(".groupitem").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();selectedtypeid=parseInt(this.id.split("_")[1]);if(selectedtypeid=="-1"){selectedtypeid=null}updateProductInfoDisplay();$("#search").val("");productFilter=null;showAllProdsToChoose()})}function bindSearch(){$("#search").off("keyup").on("keyup",function(a){a.stopImmediatePropagation();a.preventDefault();productFilter=($("#search").val().trim().toLowerCase()).trim();if(productFilter==""){productFilter=null}showAllProdsToChoose()})}function bindProduct(){$(".productitem").off("click").on("click",function(f){f.stopImmediatePropagation();f.preventDefault();$("#search").val("");selectedprodid=parseInt(this.id.split("_")[1]);var c=$("#remark").val();var a=getProdEntry(selectedprodid);var b=a.extras;if((b!=null)&&(b.length>0)){if(a.unit==1){requestPriceInExtras=true;presetPriceInExtras=""}else{requestPriceInExtras=false}showExtras(a,c)}else{if(a.unit==1){enterpricedlgshown=true;$("#enterpricedlg").data("prodid",selectedprodid);$("#enterpricedlg").data("option",c);$("#enterpricefield").val("");$("#enterpricedlg").dialog({autoOpen:false,modal:true,height:570,width:400,buttons:{Abbrechen:function(){$(this).dialog("close")}}});$("#enterpricedlg").dialog("open");bindEnterPriceNumbers()}else{addProductToNewOrders(selectedprodid,c,null,"NO",0)}}})}function bindEnterPriceNumbers(){$(".numfield td").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();var f=$(this).html();var a=$(this).attr("class");if(a=="keyboardapply"){applyPriceEnter()}else{var c=String($("#enterpricefield").val());$("#enterpricefield").val(c+f)}})}function applyPriceEnter(){var b=$("#enterpricedlg").data("prodid");var c=$("#enterpricefield").val();var a=$("#enterpricedlg").data("option");c=c.trim();c=c.replace(decpoint,".");if((c!="")&&($.isNumeric(c))){$("#enterpricedlg").dialog("close");addProductToNewOrders(b,a,null,c,0,c)}else{alert(W_NO_VALID_PRICE[lang])}}function bindRemark(){$("#remark").off("click").on("click",function(c){if(genComments!=null){if(genComments.length>0){c.stopImmediatePropagation();c.preventDefault();var a="";for(var b=0;b"+toHtml(genComments[b].comment)+""}$("#commentschoice").html(a);$("#gencommentsdlg").dialog({autoOpen:false,modal:true,height:600,buttons:{Abbrechen:function(){$(this).dialog("close")},Anwenden:function(){$(this).dialog("close");applyComment()}}});$("#gencommentsdlg").dialog("open");$("#gencommentsdlg").css("height",genComments.length*52+150);$("#generalcommentfield").val("");$(".ui-dialog-buttonset .ui-button:nth-child(1)").css("background-color","#eeeeee");$(".ui-dialog-buttonset .ui-button:nth-child(1)").css("color","#ff0000");$(".ui-dialog-buttonset .ui-button:nth-child(2)").css("background-color","#00ff00");$(".ui-dialog-buttonset .ui-button:nth-child(2)").css("color","#000000");$(".ui-widget-header").css("background-color","#ff4400");bindCommentClick()}}})}function bindCommentClick(){$(".commentitem").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();$("#gencommentsdlg").dialog("close");$("#remark").val($(this).text())})}function applyComment(){$("#remark").val($("#generalcommentfield").val())}function getProdEntry(c){var a=productInformation.prods;for(var b=0;b0){b+="

"+p.join("
")}else{b=""}var r=A+"-"+o+"-"+b;if(f!="NO"){r=A+"-"+o+"-"+b+f}if(l==1){r+=" - To-Go"}var k=z.joinedvals.indexOf(r);if(k>=0){z.count[k]=z.count[k]+1;idxarr=z.origidxs[k];idxarr[idxarr.length]=v;z.origidxs[k]=idxarr}else{var n=z.count.length;z.count[n]=1;z.joinedvals[n]=r;z.name[n]=A;z.price[n]=t;z.option[n]=o;z.extras[n]=b;z.prodids[n]=q;z.changedPrices[n]=f;z.togos[n]=l;z.origidxs[n]=[v]}}return z}function showNewOrders(){groupedNewOrders=group(neworders);var h="";var n=groupedNewOrders.count.length;for(var g=n-1;g>=0;g--){var m=toHtml(groupedNewOrders.name[g]);var l=groupedNewOrders.option[g];var k=groupedNewOrders.count[g];if(k>1){m=""+k.toString()+"x "+m}var f=groupedNewOrders.prodids[g];if(l!=""){l="

"+toHtml(l)+"

"}var c=groupedNewOrders.changedPrices[g];var b=groupedNewOrders.togos[g];var o="";var e=groupedNewOrders.extras[g];if((e!=null)&&(e!="")){o=""+e+""}var a="";if(c!="NO"){if(b!=0){a="
("+c.replace(".",decpoint)+" "+currency+" - To-Go)"}else{a="
("+c.replace(".",decpoint)+" "+currency+")"}}else{if(b!=0){a="
(To-Go)"}}h+='
'+m+l+o+a+"
"}$("#neworders").html(h);$("#remark").val("");if(neworders.length>0){enableSendButton()}else{disableSendButton()}bindNewOrderItem();displayRightButtons()}var roominfo=null;var selectedroomindex=null;var selectedtableindex=null;var productInformation=null;var selectedtypeid=null;var selectedprodid=null;var neworders=[];var groupedNewOrders={count:[],joinedvals:[],name:[],prodids:[],extras:[],origidxs:[],changedPrices:[],togos:[]};var workflowconfig=0;var decpoint=".";var currency="";var rightchangeprice=0;var rightpaydesk=false;var restaurantmode=1;var supplyright=0;var prominentsearch=0;var discount1=50;var discount2=20;var discount3=10;var discountname1="";var discountname2="";var discountname3="";var osroombtnsize=0;var ostablebtnsize=0;var osprodbtnsize=0;var tableMapIsZoomed=false;var waitergopayprint=0;var mainmenu=[];var version="";var loggedinUser="";var lang=0;var payments="";var hostTemplate="";var cancelunpaidcode="";var WORKFLOW_DIGI_AND_WORK=0;var WORKFLOW_DIGI=1;var WORKFLOW_WORK=2;var WORKFLOW_WORK_TRANSFER=3;var productFilter=null;var prodsToMove=[];var allselected=0;var moveFromTableId=null;var moveToRoomIndex=null;var moveToTableId=null;var panelMode="waiter";var cashenabled=1;var returntoorder=1;var genComments=null;var allowPrintAndOrderBtn=false;var enterpricedlgshown=false;var requestPriceInExtras=false;var presetPriceInExtras="";var W_SELALL=["Alles auswählen","Select all","Elegir todo"];var W_UNSELALL=["Alles abwählen","Unselect all","No elegir nada"];var W_NO_PRODS_SELECTED=["Es wurden keine Produkte ausgewählt!","You have not chosen any products!","No ha seleccionado ningún producto!"];var W_ONLY=["noch","only","sólo"];var W_TO_PAY=["offen","to pay","a pagar"];var P_CASHACTION_OK=["Kassenaktion abgeschlossen.","Action completed.","Acción terminado."];var W_NO_VALID_PRICE=["Keine gültige Preiseingabe","No valid price","Precio no valido"];var W_NO_REORDER_VAR_PRICE=["Produkt mit variablem Preis kann nicht auf diese Weise nachbestellt werden.","Produkt with variable price cannot be reordered this way.","Producto con un precio variable no se puede reordenado asi."];function setLanguage(a){}$(document).ready(function(){selectedroomindex=null;productFilter=null;doAjax("GET","php/contenthandler.php?module=admin&command=getWaiterSettings",null,insertWaiterConfig,"Fehler Konfigurationsdaten",true);doAjax("GET","php/contenthandler.php?module=admin&command=getJsonMenuItemsAndVersion",null,saveMenuInfo,null,true);getGeneralConfigItems();getTableMapPreferences();intervalGetItemsToPayAndRoomInfo(10);getMenuInBackground(60);getPayments(savePayments);getHostTemplate();intervalGetPrinterStatus(5);intervalGetGeneralCommentsAndTablePref(10);intervalGetWaiterMessage(20);if(restaurantmode==0){changeRoom(-1);startProductDisplay()}});function savePayments(a){payments=a.payments;hotelinterface=a.hotelinterface;guests=a.guests;internalguests=a.internalguests}function intervalGetItemsToPayAndRoomInfo(b){var a=setInterval(function(){getAndShowPayItems();requestRoomInformation();requestOrderedInformation()},b*1000)}function intervalGetGeneralCommentsAndTablePref(b){doAjax("GET","php/contenthandler.php?module=products&command=getAllGeneralComments",null,fillGenCommentsList,null,true);var a=setInterval(function(){doAjax("GET","php/contenthandler.php?module=products&command=getAllGeneralComments",null,fillGenCommentsList,null,true);getTableMapPreferences()},b*1000)}function intervalGetWaiterMessage(b){doAjax("GET","php/contenthandler.php?module=admin&command=getWaiterMessage",null,fillWaiterMessage,null,true);var a=setInterval(function(){doAjax("GET","php/contenthandler.php?module=admin&command=getWaiterMessage",null,fillWaiterMessage,null,true)},b*1000)}function getMenuInBackground(b){var a=setInterval(function(){requestProdInformation()},b*1000)}function insertWaiterConfig(c){var a=c.isUserLoggedIn;if(a!=1){setTimeout(function(){document.location.href="index.html"},250)}else{var b=c.config;workflowconfig=b.workflowconfig;decpoint=b.decpoint;currency=b.currency;rightchangeprice=c.rightchangeprice;supplyright=c.supplyright;prominentsearch=b.prominentsearch;waitergopayprint=b.waitergopayprint;discount1=b.discount1;discount2=b.discount2;discount3=b.discount3;discountname1=b.discountname1;discountname2=b.discountname2;discountname3=b.discountname3;cashenabled=b.cashenabled;rightpaydesk=c.rightpaydesk;restaurantmode=b.restaurantmode;returntoorder=b.returntoorder;if((b.cancelunpaidcode!=null)&&(b.cancelunpaidcode!="")){cancelunpaidcode=b.cancelunpaidcode}else{cancelunpaidcode=""}osroombtnsize=c.buttonsizes.roombtnsize;ostablebtnsize=c.buttonsizes.tablebtnsize;osprodbtnsize=c.buttonsizes.prodbtnsize;initializeOrderView()}}function fillGenCommentsList(a){if(a.status!="OK"){alert("Fehler "+a.code+": "+a.msg);return}genComments=a.msg}function fillWaiterMessage(a){if(a.status=="OK"){var b=a.msg.trim();if(b!=""){$("#waitermessagearea").html("Nachricht: "+toHtml(b));$("#waitermessagearea").show()}else{$("#waitermessagearea").html("");$("#waitermessagearea").hide()}}}function initializeOrderView(){panelMode="waiter";initGui();clearProductsSelection();requestRoomInformation();requestProdInformation();bindMainMenuButton();bindRightButtons();if(restaurantmode==0){$("#tablepanel").hide()}}function getHostTemplate(){$.ajax({url:"customer/bon-bewirtungsvorlage.html",async:false,success:function(a){hostTemplate=a},error:function(a){},cache:false})}function saveMenuInfo(a){if(a.loggedin==1){loggedinUser=a.user;$("#loggedinuser").html(" "+loggedinUser);$("#versioninfo").html(a.version);version=a.version;$.each(a.menu,function(e,c){var b=c.name;var f=c.link;mainmenu[mainmenu.length]={name:b,link:f}});$("#mainmenubtn").show()}else{$("#mainmenubtn").hide()}}function bindMainMenuButton(){$("#selectiondialog").dialog({autoOpen:false,modal:true,height:400,buttons:{Anwenden:function(){$(this).dialog("close");applyExtras()}}});$("#unsentorderdlg").dialog({autoOpen:false,modal:true,height:400,buttons:{Nein:function(){$(this).dialog("close")},Ja:function(){$(this).dialog("close")}}});$("#actmenudlg").dialog({autoOpen:false,modal:true,height:400});$("#mainmenudlg").dialog({autoOpen:false,modal:true,height:400,width:200,position:{my:"right top",at:"right top",of:"body"},buttons:{Abbrechen:function(){$(this).dialog("close")}}});$("#ordereditemdlg").dialog({autoOpen:false,modal:true,height:400,width:200});$("#moveItemdslg").dialog({autoOpen:false,modal:true,height:400,width:200});$("#mainmenubtn").off("click").on("click",function(f){f.stopImmediatePropagation();f.preventDefault();var b="
";$("#mainmenudlg").html(b);var a=280+mainmenu.length*40;$("#mainmenudlg").dialog({autoOpen:false,modal:true,height:a,width:200,position:{my:"right top",at:"right top",of:"body"},buttons:{Abbrechen:function(){$(this).dialog("close")}}});$("#mainmenudlg").dialog("open");$(".mainmenuitem").off("click").on("click",function(i){i.stopImmediatePropagation();i.preventDefault();var h=parseInt(this.id.split("_")[1]);var g=mainmenu[h].link;$("#mainmenudlg").dialog("close");setTimeout(function(){document.location.href=g},250)})})}function goOrderDesk(){panelMode="waiter";initGui();clearProductsSelection();requestProdInformation();requestOrderedInformation()}function goPayDesk(){panelMode="paydesk";initGui();startCashProcess()}function initGui(){displayPanels();displayRightButtons()}function displayPanels(){if(panelMode==="waiter"){$("#panelmodetxt").html("Bestellung");$("#groupchain").show();$("#groupchoice").show();$("#searchpanel").show();$("#productspanel").show();$("#remarkpanel").show();$("#ordered").show();$("oben").html("");$("#oben").hide();$("#unten").html("");$("#unten").hide();$("#receiptpanel").hide();$("#paybuttonpanel").hide();$("#receiptpanel").hide()}else{$("#panelmodetxt").html("Kasse");$("#groupchain").hide();$("#groupchoice").hide();$("#searchpanel").hide();$("#productspanel").hide();$("#remarkpanel").hide();$("#ordered").hide();$("oben").html("");$("#oben").show();$("#unten").html("");$("#unten").show();$("#goorderbtn").show();$("#receiptpanel").show();$("#paybuttonpanel").show();$("#receiptpanel").show()}}function displayRightButtons(){$("#changetablebtn").hide();if(panelMode==="waiter"){if((rightpaydesk==1)&&(cashenabled==1)){$("#paydeskbtn").show()}$("#hostbutton").hide();$("#cashbutton").hide();$("#paydeskcash").hide();$("#paydeskprint").hide();$("#goorderbtn").hide();if(neworders.length>0){if((workflowconfig==WORKFLOW_DIGI_AND_WORK)||(workflowconfig==WORKFLOW_WORK)||(workflowconfig==WORKFLOW_WORK_TRANSFER)){$("#workbtn").show()}if((workflowconfig==WORKFLOW_DIGI_AND_WORK)||(workflowconfig==WORKFLOW_DIGI)||(workflowconfig==WORKFLOW_WORK_TRANSFER)){$("#sendNewOrders").show()}}if((selectedtableindex!=null)&&(neworders.length==0)){$("#changetablebtn").show()}}else{$("#paydeskbtn").hide();if(restaurantmode==1){$("#hostbutton").show()}$("#cashbutton").show();if(prodsaccounted.length>0){$("#paydeskcash").show();$("#paydeskprint").show();$("#goorderbtn").show()}else{$("#paydeskcash").hide();$("#paydeskprint").hide()}$("#workbtn").hide();$("#sendNewOrders").hide()}}var e_extras=[];var e_extras_selection=[];var e_prod=null;var e_option=null;function showExtras(a,c){e_prod=a;e_option=c;e_extras=a.extras;e_extras_selection=[];for(var b=0;b'}for(var e=0;e"+toHtml(c)+""}else{a+="
  • "+toHtml(c)+"
  • "}}a+="
    ";$("#selectiondialog").html(a);$(".ui-dialog-buttonset .ui-button").css("background-color","#44ff44");$(".ui-widget-header").css("background-color","#ff4400");bindExtra()}function bindExtra(){$(".extraitem").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();extraClicked(parseInt(this.id.split("_")[2]))});$(".extraitemselected").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();extraClicked(parseInt(this.id.split("_")[2]))})}function extraClicked(a){if(requestPriceInExtras!==false){presetPriceInExtras=$("#enterpriceextrasfield").val()}if(e_extras_selection[a]){e_extras_selection[a]=false}else{e_extras_selection[a]=true}displayExtras()}function applyExtras(){var b=[];for(var e=0;e0){actcount--}}else{if(b==="actplusbtn"){actcount++}else{if(b==="actdiscount1btn"){actprice=origprice-origprice*discount1/100;var a=actprice.toFixed(2).replace(".",decpoint);$("#actpricefield").val(a);$("#actpriceinfo").html(a+" "+currency)}else{if(b==="actdiscount2btn"){actprice=origprice-origprice*discount2/100;var a=actprice.toFixed(2).replace(".",decpoint);$("#actpricefield").val(a);$("#actpriceinfo").html(a+" "+currency)}else{if(b==="actdiscount3btn"){actprice=origprice-origprice*discount3/100;var a=actprice.toFixed(2).replace(".",decpoint);$("#actpricefield").val(a);$("#actpriceinfo").html(a+" "+currency)}else{if(b==="acttogobtn"){acttogo=1-acttogo}}}}}}insertDataIntoActDialog()})}function changeAllNewOrders(){actionNewOrderConfirm(CHANGE_ALL)}function changeOneNewOrder(){actionNewOrderConfirm(CHANGE_ONE)}function delNewOrderItem(){actcount=0;actionNewOrderConfirm(CHANGE_ALL)}function actionNewOrderConfirm(h){var c=selectedEntry;if(rightchangeprice==1){var g=$("#actpricefield").val().trim();g=g.replace(",",".");if(g>999.99){alert("Maximaler Preis für das Produkt überschritten");return}if(g==""){g="NO"}else{if(!$.isNumeric(g)){alert("Es wurde ein falsches Zahlenformat angegeben");return}else{actprice=g;$("#actpricefield").val("")}}}else{g="NO"}if(h==CHANGE_ONE){var a=c.origidxs;neworders[a[0]].option=$("#actremarkfield").val();neworders[a[0]].changedPrice=g;neworders[a[0]].togo=acttogo}else{var a=c.origidxs;for(m=0;m0){var a=c.origidxs;var q=a[0];var l=neworders[q].prodid;var g=neworders[q].changedPrice;var e=neworders[q].togo;var n=neworders[q].option;var k=neworders[q].extras;for(m=0;m=0){if(selectedtableindex!=null){var b=roominfo.roomstables[selectedroomindex].tables[selectedtableindex];a=b.id;taxtype="normal"}else{a=null}}else{tabeid=0;taxtype="togo"}}else{a=null}if(a!=null){doAjax("GET","php/contenthandler.php?module=queue&command=getJsonProductsOfTableToPay",{tableid:a},showProductsToPay,"Fehler bei der Datenübermittlung",true)}else{prodsToPayList=[];displayProdsToPayForTable();displayProdsOnReceipt()}}}function showProductsToPay(a){if(a.status!="OK"){alert("Fehler: "+a.msg);if(a.code==4){setTimeout(function(){document.location.href="index.html"},250)}}prodsToPayList=a.msg;if((a.msg.length==0)&&(returntoorder==1)){unZoomTableMap();goOrderDesk()}else{displayProdsToPayForTable();displayProdsOnReceipt()}}function displayProdsToPayForTable(){bindHostButton("#hostbutton");bindCashButton();if(prodsToPayList.length==0){$("#oben").html("Keine weiteren Artikel vorhanden.")}else{prodsToPayListGrouping=new Grouping(prodsToPayList,createHashOfPayableItem);prodsToPayListGrouping.group();var a=prodsToPayListGrouping.outputList(createPayableItemListElement);$("#oben").html(a)}$(".payable").off("click").on("click",function(c){c.stopImmediatePropagation();c.preventDefault();var h=this.id;var g=$(".payable").index(this);var f=prodsToPayListGrouping.sortedset[g];var b=aProdToPayIsClicked(f);updateAccounted(h,b,f.count);displayProdsOnReceipt()});$("#payall").off("click").on("click",function(h){h.stopImmediatePropagation();h.preventDefault();for(var b=0;b";c+="


    ";for(var b=0;b'+a+"
    "}if((f==3)&&(showpayment3==1)){c+='
    '+a+"
    "}if((f==4)&&(showpayment4==1)){c+='
    '+a+"
    "}if((f==5)&&(showpayment5==1)){c+='
    '+a+"
    "}if((f==6)&&(showpayment6==1)){c+='
    '+a+"
    "}if((f==7)&&(showpayment7==1)){c+='
    '+a+"
    "}if((f==8)&&(showpayment8==1)){c+='
    '+a+"
    "}}c+='
    '+P_CANCEL[lang]+"
    ";$("#selectiondialog").html(c);var e=600;if(paymentconfig==1){e=380}$("#selectiondialog").dialog({autoOpen:false,modal:true,height:e,buttons:{Abbrechen:function(){$(this).dialog("close")}}});$("#selectiondialog").dialog("open");bindPayment()}function bindPayment(){$(".paymentcancel").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();$("#selectiondialog").dialog("close")});$(".paymentitem").off("click").on("click",function(a){a.stopImmediatePropagation();a.preventDefault();var b=this.id.split("_")[1];currentPaymentId=b;$("#selectiondialog").dialog("close");if((currentPaymentId==PAYMENT_HS3)||(currentPaymentId==PAYMENT_GUEST)){$("#hoteldialog").dialog({autoOpen:false,modal:true,height:400,width:500,buttons:{Abbrechen:function(){$(this).dialog("close")}}});$("#hoteldialog").dialog("open");$("#roomguesttextfield").val("");bindhotelinterface(currentPaymentId);return}else{startPayProcess(b,"","","")}})}function bindhotelinterface(a){generateGuestResult($("#roomguesttextfield").val(),false,a);$("#roomguesttextfield").off("keyup").on("keyup",function(b){generateGuestResult($("#roomguesttextfield").val(),false,a)});$("#paym_hotel").off("click").on("click",function(h){h.stopImmediatePropagation();h.preventDefault();var f=$("#hotelroomfoundguest").data("reservation");var c=$("#hotelroomfoundguest").data("guest");var b=$("#hotelroomselection").find(":selected").val();if(b!=undefined){var c=guests[b];var g="";if(currentPaymentId==PAYMENT_GUEST){c=internalguests[b];g=c.id}startPayProcess(currentPaymentId,c.reservationid,c.object+" - "+c.guest,g);$("#hoteldialog").dialog("close")}else{alert("Kein Gast ausgewählt")}})}function generateGuestResult(c){c=c.trim().toLowerCase();if(c==""){$("#hotelroomselection").html("");return}var b="";var a=false;$.each(guests,function(h,k){var e=k.object;var l=k.guest;var f=(e.toLowerCase().indexOf(c)>=0);var g=(l.toLowerCase().indexOf(c)>=0);if(f||g){if(!a){a=true;b+='"}else{b+='"}}});$("#hotelroomselection").html(b)}function updateAccounted(c,a,b){if(a===b){$("#"+c).removeClass("paystillopen");$("#"+c).removeClass("payallaccounted");$("#"+c).addClass("payallaccounted")}else{$("#"+c).removeClass("paystillopen");$("#"+c).removeClass("payallaccounted");$("#"+c).addClass("paystillopen")}if(a===0){$("#"+c+" .payitemaccounted").html("")}else{$("#"+c+" .payitemaccounted").html(a)}}function getProdAccountedEntry(c){var f=createHashOfPayableItem(c);for(var a=0;a1){f=g.count+"x ";c=g.count}}var b=false;var a=getProdAccountedEntry(g);var h="";if(a!==null){if(a.count!=0){h=a.count}if(a.count==c){b=true}}var e="";if(b){e='
    '+f+createHashOfPayableItemWithoutTax(g)+"
    "+h+"
    "}else{e='
    '+f+createHashOfPayableItemWithoutTax(g)+"
    "+h+"
    "}return e}function createOnReceiptItemListElement(c){var b="";if("count" in c){if(c.count>1){b=c.count+"x "}}var a='
    '+b+createHashOfPayableItem(c)+"
    ";return a}function getProdOfAllProdsWithHash(e){var b=prodsToPayListGrouping.sortedset;for(var a=0;a";$("#receiptpanel").html(c);calcSum();var k=$("#receiptpart").html();$("#info-page").data("receipthtml",k);displayRightButtons()}function getTableName(){if(selectedtableindex!=null){var a=roominfo.roomstables[selectedroomindex].tables[selectedtableindex];return a.name}else{if(selectedroomindex=="-1"){return"Zum Mitnehmen"}else{return null}}}function createReceiptHeader(){var a=genCreateReceiptHeader(0,"",getTableName(),loggedinUser,currency);return a}function createReceiptFooter(b,c,a){var e=genCreateReceiptFooterNoSum(b,0,"",a);return e}function getQueueIdsDueToCountOfItem(g){var e=[];var h=g.hash;var f=g.count;for(var b=0;b=f){break}}}return e}function startPayProcess(n,l,m,g){var k=getTableName();var b=0;if(selectedroomindex!=-1){if(selectedtableindex!=null){var f=roominfo.roomstables[selectedroomindex].tables[selectedtableindex];b=f.id}else{b=0}}var e=$("#info-page").data("usst");if($("#info-page").data("taxtype")=="togo"){e=$("#info-page").data("togotax")}checkForLogIn();var a=[];for(var h=0;h";printContent(s)}}startCashProcess()}}else{alert("Fehler: "+q)}},error:function(i){alert("Sorry, there was a problem! "+i)}})}var P_DESCR=["Beschreibung","Description","Descripción"];var P_PRICE=["Preis","Price","Precio"];var P_TOTAL=["Total","Total","Total"];var P_ID=["Id:","Id:","Id:"];var P_ROOMSEL=["Raumauswahl","Room selection","Selección de espacio"];var P_PAYDESK_ACTIONS=["Kassenaktionen","Paydesk actions","Acciones de caja"];var P_BAR_INPUT=["Bareinlage","Input money","Insertar dinero"];var P_BAR_GET=["Barentnahme","Take money","Sacar dinero"];var P_BAR_SUM=["Einnahmen","Revenue","Cobro"];var P_TITLE=["Kasse","Paydesk","Caja"];var P_TABLE=["Tisch","Table","Mesa"];var P_TABLE_SEL=["Tischauswahl","Select table","Qué mesa?"];var P_NOT_PAID=["Ausstehend für ","Not paid for ","Impagado para "];var P_ALL=["Alles","All","Todo"];var P_CONTENT_RECEIPT=["Inhalt Kassenbon","Content of receipt","Contenido del tique"];var P_ONLY_PAY=["Nur Zahlung","Only pay","Solo pagar"];var P_PAY_PRINT=["Bondruck","Pay+Print","Pagar+Imprimir"];var P_CHANGE_CALC=["Wechselgeldrechner:","Change Calculator:","Calculadora de Cambio:"];var P_CHOOSE_PAYWAY=["Auswahl der Zahlungsart:","Selection of method of payment:","Selección del modo de pago:"];var P_CANCEL=["Abbrechen","Cancel","Cancelar"];var P_CASHTAKEOUT=["Barentnahme aus der Kasse","Cash take-out","Sacar dinero"];var P_CASHTAKIN=["Bareinlage in die Kasse","Cash insert","Insertar dinero"];var P_AMOUNT=["Betrag:","Amount:","Valor:"];var P_OVERVIEW=["Übersicht Kellnerkasse","Overview waiter purse","Resumen cartera de bolsillo"];var P_PUT_IN=["Einlegen","Insert","Insertar"];var P_TAKE_OUT=["Entnehmen","Take out","Sacar"];var P_OVERV_DETAILS=["Diese Übersicht zeigt die Einnahmen durch den Kellner pro Zahlungsweg seit der letzten Tageslosung sowie als weiteren Wert den Kassenstand unter Berücksichtigung der eigenen Eingaben und Entnahmen.","This overview contains the amount of money of this waiter since the last closing as well as the total amount of money including the own cash insert and take-out actions.","Este resumen contiene todo el dinero del camarero, y también el dinero incluido con acciones de insertar y sacar."];var P_CASH_SUM=["Bewirtungseinnahmen (ohne Ein-/Auslagen):","Cash by payment (without inserts/take-outs):","Cobro (sin tomas/entradas):"];var P_INCLUDE_OWN=["Barbestand inkl. eigener Kassen-Eingaben/Entnahmen:","Cash incl. own cash insert/take-outs:","Cash incl. tomas y entradas proprias:"];var P_NO_ELEM=["Keine Rechnungselemente","No items selected","Ningún producto selecionado"];var P_NO_ELEM_DETAILS=["Es wurden keine abrechenbaren Produkte festgelegt (der Bon ist leer!).","There are no selected items. The receipt is empty!","No hay ningún elemento seleccionado para pagar."];var P_CASHACTION_OK=["Kassenaktion abgeschlossen.","Action completed.","Acción terminado."];var P_NAV=["Navigation","Navigation","Navigación"];var P_ORDER_ACTION=["-> Bestellansicht","-> Order view","-> Vista de Orden"];var P_TO_PAY=["Zu zahlen: ","To pay: ","Pagar total: "];var P_PAY_RETURN=["Zurück: ","Return: ","Torna: "];var P_CALC_PAYBACK=["Berechne","Calculate","Calcular"];var P_HAS_PAID=["Bezahlt: ","Paid: ","Pagado: "];var P_TOGO=["Außer-Haus-Verkauf","Sale with Tax No 2","Venta IVA 2"];var P_TIP=["nur Trinkg.: ","Only tip: ","Solo prop.: "];var P_TOTAL_INCL_TIP=["Zielbetrag:","Target pay:","Quiere pagar:"];var CALC_TIP_TXT=["Angabe extra Trinkg.","Do Tip separate","Propina individual"];var CALC_TOTAL_TXT=["Angabe inkl.Trinkg.","Do Tip incl.","Propina incl."];var P_GUESTS=["Gäste","Guests","Habitaciones"];var showHostTemplate=false;var guests=[];var internalguests=[];var hotelinterface=0;var PAYMENT_HS3=7;var PAYMENT_GUEST=8;var currentPaymentId=7;var showpayment2=1;var showpayment3=1;var showpayment4=1;var showpayment5=1;var showpayment6=1;var showpayment7=1;var showpayment8=1;function getGeneralConfigItems(){doAjax("GET","php/contenthandler.php?module=admin&command=getGeneralConfigItems",null,insertGeneralConfigItems,"Fehler Konfigurationsdaten")}function getPayments(a){doAjax("GET","php/contenthandler.php?module=admin&command=getPayments",null,a,"Fehler Zahlungswege")}function insertGeneralConfigItems(b){if(b.status=="OK"){var a=b.msg;decpoint=a.decpoint;$("#info-page").data("decpoint",a.decpoint);currency=a.currency;var e=a.tax;var c=e.replace(".",decpoint);$("#info-page").data("usstGerVal",c);$("#info-page").data("usst",e);e=a.togotax;c=e.replace(".",decpoint);$("#info-page").data("togoTaxGerVal",c);$("#info-page").data("togotax",e);$("#info-page").data("companyinfo",a.companyinfo);$("#info-page").data("payPrintType",a.payprinttype);$("#info-page").data("currency",a.currency);$("#info-page").data("billlanguage",a.billlanguage);$("#info-page").data("userlanguage",a.userlanguage);receiptfontsize=parseInt(a.receiptfontsize);$("#receiptpart").css("font-size",receiptfontsize+"px");paymentconfig=a.paymentconfig;showpayment2=a.showpayment2;showpayment3=a.showpayment3;showpayment4=a.showpayment4;showpayment5=a.showpayment5;showpayment6=a.showpayment6;showpayment7=a.showpayment7;showpayment8=a.showpayment8;$("#curtopay2").html(" "+a.currency);workflowconfig=a.workflowconfig;digigopaysetready=a.digigopaysetready;setLanguage(a.userlanguage)}else{$("#contentpart").hide();setTimeout(function(){document.location.href="index.html"},250)}}function addEntryOrIncreaseCount(a,f){var c=0;var g=false;var e=f.prodid+"-"+f.extras.join("_")+f.price+"-"+f.pricelevelname+"#"+f.tax+"_"+f.togo;for(c=0;cID:"+e+"";g+=' ";g+=""+c+"";g+=" ";if(l!=""){g+="Gast: "+toHtml(l)+"";g+=" "}g+=""+P_NO[b]+""+P_DESCR[b]+""+P_PRICE[b]+""+P_TOTAL[b]+"";return g}function genCreateReceiptFooterNoSum(c,e,b,a){return genCreateReceiptFooter(c,e,b,"","","",a)}function genCreateReceiptFooter(a,f,b,k,e,m,n){var c='style="border: solid black 0px;padding: 3px;text-align:right;vertical-align:bottom;"';var p='style="text-align:center;vertical-align:bottom;"';var h=" ";var o=h;o+=""+P_MWST[f]+"% "+P_MWST[f]+""+P_NETTO[f]+""+P_BRUTTO[f]+"";for(var l=0;l"+k+'"+e+'"+m+""}o+=h;o+="   "+P_SUM[f]+'"+m+"";o+=h;o+="
     
    ";o+=toHtml(b).replace(/(?:\r\n|\r|\n)/g,"
    ");o+="
    ";return o}function generateOneProdLine(k,g,i,a,n,f){var b='style="border: solid black 0px;padding: 3px;text-align:right;vertical-align:bottom;"';var h='style="border: solid black 0px;padding: 3px;text-align:center;vertical-align:bottom;"';var c=(parseFloat(i)).toFixed(2).replace(".",n);if(a!="A"){g+=" ("+a+")"}if(f==1){g="To-Go: "+g}var m=k*i;var l="";var e='style="white-space: nowrap;overflow: hidden;text-overflow:ellipsis;width: 60%;"';l+="'+k+""+g;l=l+""+c;l+=""+m.toFixed(2).replace(".",n)+"";return l}function generateProdPartByDbContent(f,e){var c=0;tablecontent="";for(c=0;c=0);var m=(p.toLowerCase().indexOf(g)>=0);if(l||m){i++;h=toHtml(k+" - "+p);if(!c){c=true;f+='"}else{f+='"}}});if(i===1){$("#hotelroomfoundguest").html(h);$("#hotelroomselection").html(f)}else{$("#hotelroomselection").html(f)}if(b){$("#hotelroomselection").selectmenu("refresh")}}function generateCashOverviewOfUser(e){var a="";for(var b=0;b"+(parseFloat(c.value).toFixed(2)).replace(".",decpoint)+"
    "}return a}; -
    -
    Kellneransicht (Bestellung)
    - - +
    + Kellneransicht (Bestellung) +
    - -
    -
    -
    -
    + +
    + + +
    Extras to select...
    diff --git a/webapp/waiterdesktopdefault.txt b/webapp/waiterdesktopdefault.txt index e631f1f..334cdf8 100644 --- a/webapp/waiterdesktopdefault.txt +++ b/webapp/waiterdesktopdefault.txt @@ -1,65 +1,63 @@ - - -
    - -
    - -
    - - - -
    - - - - - - - - - - + + + + + + +
    +
    Raum: Raum xyz
    +
    - +
    - + + +
    +
    + +
    + + + +
    + + + + + + + + + + + +
    +
    + +
    + + + + + + + + +
    + +
    +
    +
    -
    - - + +
    \ No newline at end of file