diff --git a/printserver/OrderSprinterPrintserver.exe b/printserver/OrderSprinterPrintserver.exe index 878381d..0a46e44 100644 Binary files a/printserver/OrderSprinterPrintserver.exe and b/printserver/OrderSprinterPrintserver.exe differ diff --git a/webapp/OrderSprinterPrintserver.exe b/webapp/OrderSprinterPrintserver.exe index 878381d..0a46e44 100644 Binary files a/webapp/OrderSprinterPrintserver.exe and b/webapp/OrderSprinterPrintserver.exe differ diff --git a/webapp/bar.html b/webapp/bar.html index 2f92989..37161d3 100644 --- a/webapp/bar.html +++ b/webapp/bar.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/bill.html b/webapp/bill.html index 60bb076..98e2c03 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 f16af38..6a7403e 100644 --- a/webapp/css/bestformat.css +++ b/webapp/css/bestformat.css @@ -1,582 +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:none; -} -table.viewtable tr:hover td { - background-color: #ffaaff; -} - - -table.receipttable td { - border: solid black 0px; - padding: 3px; - text-align:left; - vertical-align:bottom; -} - -table.receipttable td.price { - border: solid black 0px; - 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:#333333; - border-width: 2px; - border-color: #666666; - border-collapse: collapse; - width: 100%; -} -table.gridtable th { - border-width: 1px; - padding: 8px; - border-style: solid; - border-color: #666666; - background-color: #dedede; - font-weight:bold; -} -table.gridtable td { - border-width: 1px; - padding: 8px; - border-style: solid; - border-color: #666666; - background-color: #ffffff; -} - -table.linetable { - font-family: verdana,arial,sans-serif; - font-size:20px; - color:#333333; - border-width: 2px; - border-color: #666666; - border-collapse: collapse; - width: 100%; -} -table.linetable th { - border-width: 1px; - padding: 8px; - border-style: solid; - border-color: #666666; - background-color: #dedede; - font-weight:bold; -} -table.linetable td { - border-width: 1px; - padding: 8px; - border-style: solid; - border-color: #666666; -} - -table.linetable tr{ - background: #ffffff; - } - -table.linetable tr:hover { - background-color: #ffaaff; -} - -table.reporttable { - font-family: verdana,arial,sans-serif; - font-size:20px; - color:#333333; - border: solid black 2px; - border-color: #666666; - border-collapse: collapse; - width: 100%; - border-spacing: 10px; -} -table.reporttable th { - border-width: 1px; - padding: 8px; - border-style: solid; - border-color: #666666; - background-color: #dedede; - font-weight:bold; -} -table.reporttable td { - border: solid black 0px - padding: 8px; - text-align:left; - vertical-align:top; -} - -table.reporttable tr{ - background: #d6f8be; - } - -table.reporttable tr:hover { - background-color: #ffaaff; -} - - -table.commandtable { - font-family: verdana,arial,sans-serif; - font-size:20px; - color:#333333; - border-width: 1px; - border-color: #666666; - border-collapse: collapse; - width: 100%; -} -table.commandtable th { - border-width: 1px; - padding: 8px; - border-style: solid; - border-color: #666666; - background-color: #e4d662; - font-weight:bold; -} -table.commandtable td { - border-width: 1px; - padding: 8px; - border-style: solid; - border-color: #666666; - background-color: #ffffff; - font-weight:bold; -} - -table.navitable { - font-family: verdana,arial,sans-serif; - font-size:20px; - color:#333333; - border-width: 1px; - border-color: #666666; - border-collapse: collapse; - width: 100%; -} -table.navitable th { - border-width: 1px; - padding: 8px; - border-style: solid; - border-color: #666666; - background-color: #d09696; - font-weight:bold; -} -table.navitable td { - border-width: 1px; - padding: 8px; - border-style: solid; - border-color: #666666; - background-color: #c08f8f; -} - -table.infotable { - font-family: verdana,arial,sans-serif; - font-size:20px; - color:#333333; - border-width: 1px; - border-color: #666666; - border-collapse: collapse; - width: 100%; -} -table.infotable th { - border-width: 1px; - padding: 8px; - border-style: solid; - border-color: #666666; - background-color: #c3c3ff; - font-weight:bold; -} -table.infotable td { - border-width: 1px; - padding: 8px; - border-style: solid; - border-color: #666666; - background-color: #c3c3ff; -} - -table.billtable { - font-family: verdana,arial,sans-serif; - font-size:20px; - color:#000000; - border: solid black 2px; - border-color: #000000; - border-collapse: collapse; - width: 100%; - border-spacing: 10px; -} -table.billtable th { - border-width: 1px; - padding: 8px; - border-style: solid; - border-color: #666666; - background-color: #c3c3ff; - font-weight:bold; - text-align:left; -} -table.billtable #pricecolheader { - border-width: 1px; - padding: 8px; - border-style: solid; - border-color: #666666; - background-color: #c3c3ff; - font-weight:bold; - text-align:right; -} -table.billtable td { - border: solid black 0px - padding: 8px; - background-color: #ffffff; - text-align:left; -} - -table.billtable #pricecol { - border: solid black 0px - padding: 8px; - background-color: #ffffff; - text-align:right; -} - -table.billtable #totalprice { - border-width: 1px; - padding: 8px; - border-style: solid; - border-color: #666666; - 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: 0px; bottom: 0px; right: 90px; - width: 80px; - border: 0; - background-color: rgb(246, 246, 246, 0.0) !important; -} - -.counting:hover { - background-color: rgb(0,255,0); -} - -.goup { - position: absolute; - top: 5px; bottom: 0px; right: 90px; - border: 0; - background-color: rgb(246, 246, 246) !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:#333333; - border-width: 1px; - border-color: #666666; - border-collapse: collapse; - width: 70%; -} -table.prodtable th { - border-width: 1px; - padding: 8px; - border-style: solid; - border-color: #666666; - 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: #666666; - 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: 0px; bottom: 0px; right: 20px; - width: 20px; - border: 0; - background-color: rgb(246, 246, 246, 0.0) !important; -} - -.waitinfo { - position: absolute; - top: 0px; bottom: 0px; right: 20px; - border: 0; - background-color: rgb(246, 246, 246, 0.0) !important; -} -.waitinfo img { - position: absolute; - top: 0px; bottom: 0px; 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: 0em){ - .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: 0px; bottom: 0px; right: 130px; - width: 20px; - border: 0; - background-color: rgb(246, 246, 246, 0.0) !important; -} - -.prodcount,.srprodcount { - position: absolute; - top: 10px; bottom: 0px; right: 95px; - width: 20px; - border: 0; - background-color: rgb(246, 246, 246, 0.0) !important; -} - -.prodplus,.srplus { - position: absolute; - top: 0px; bottom: 0px; 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: rgb(0, 255, 0); -} -.srplus:hover, .prodplus:hover{ - height: 40px; - width: 30px; - background-color: rgb(0, 255, 0); -} -.prodinfo img:hover,.srinfo img:hover { - background-color: rgb(0, 255, 0); -} - -.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 #000000; - 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; -} - -.prodreadyicon { - position: absolute; - top: 0px; bottom: 0px; right: 70px; - height: 20px; - border: 0; - background-color: rgb(246, 246, 246, 0.0) !important; -} - -.prodreadyicon:hover { - height: 40px; - background-color: rgb(0, 255, 0); -} - -.prodreadycount { - position: absolute; - top: 10px; bottom: 0px; 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: rgb(255, 232, 188); -} -.usersums td { - border: solid black 1px; - padding: 3px; - text-align:right; - vertical-align:bottom; -} \ 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: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;width: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}.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} \ No newline at end of file diff --git a/webapp/feedback.html b/webapp/feedback.html index ed99f07..5ad16d8 100644 --- a/webapp/feedback.html +++ b/webapp/feedback.html @@ -4,7 +4,7 @@ - + diff --git a/webapp/index.html b/webapp/index.html index 12fbee2..438dcff 100644 --- a/webapp/index.html +++ b/webapp/index.html @@ -7,8 +7,8 @@ - - + + diff --git a/webapp/install.html b/webapp/install.html index 6f53eae..f680bf0 100644 --- a/webapp/install.html +++ b/webapp/install.html @@ -679,7 +679,7 @@ $(document).ready(function() {   - +   diff --git a/webapp/install/installer.php b/webapp/install/installer.php index 8570447..df51bd2 100644 --- a/webapp/install/installer.php +++ b/webapp/install/installer.php @@ -832,6 +832,18 @@ return false; } } +function updateUserTable1113_1114($prefix,$version) { +$ret = true; +if ($version != "1.1.13") { +$ret = $this->updateUserTable1112_1113($prefix,$version); +if (!$ret) { +return false; +} +} +$ret &= $this->setVersion($prefix, '1.1.14'); +return $ret; +} + function setVersion($prefix,$theVersion) { $pdo = $this->pdo; try { @@ -903,7 +915,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.1.13')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'version', '1.1.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')"); @@ -1276,7 +1288,7 @@ return; $supportedVersions = array("1.0.22","1.0.23","1.0.24","1.0.25","1.0.26","1.0.27","1.0.28","1.0.29", "1.0.30","1.0.31","1.0.32","1.0.33","1.0.34","1.0.35","1.0.36","1.0.37","1.0.38","1.0.39", "1.0.40","1.0.41","1.0.42","1.0.43", -"1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.1.7","1.1.8", "1.1.9","1.1.10","1.1.11","1.1.12" +"1.1.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" ); if (!in_array($version, $supportedVersions)) { @@ -1284,7 +1296,7 @@ echo json_encode("Quellversion nicht unterstützt"); return; } -$ret = $admin->updateUserTable1112_1113($_POST['prefix'], $version); +$ret = $admin->updateUserTable1113_1114($_POST['prefix'], $version); if(session_id() == '') { session_start(); diff --git a/webapp/kitchen.html b/webapp/kitchen.html index eb5bc1f..5504b7d 100644 --- a/webapp/kitchen.html +++ b/webapp/kitchen.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/manager.html b/webapp/manager.html index a2708bf..2bea823 100644 --- a/webapp/manager.html +++ b/webapp/manager.html @@ -5,7 +5,7 @@ - + @@ -172,6 +172,10 @@ var MAN_WORKFLOW = ["Arbeitsablauf","Workflow","Modo de trabajar"]; var MAN_WORKFLOW_BOTH = ["Digital und Arbeitsbons","Digital and work receipts","Digital y tiques de trabajar"]; var MAN_WORKFLOW_ONLY_DIGI = ["Nur digital","Only digital","Solo digital"]; var MAN_WORKFLOW_ONLY_WR = ["Nur Arbeitsbons","Only work receipts","Solo tiques de trabajar"]; +var MAN_WORKFLOW_WR_AND_TRANSFER = ["Arbeitsbons mit Serverübermittlung", "Work receipts and server transmit","Tiques de trabajar y enviar a servidor"]; +var MAN_WORKFLOW_WR_AND_TRANSFER_HLP = ["Hinweis: 'Arbeitsbons mit Serverübermittlung': In der Bestellansicht werden die Artikel bei Druck auf 'Bestellung senden' an den Server übermittelt, durchlaufen aber nicht die Ansichten Küche/Bar und Bereitstellung und es wird in diesem Fall kein Arbeitsbon gedruckt.", + "Hint: 'Work receipts and server transmit': In the waiter's view the orders can be sent to the server without printining a work receipt. In this case the items won't pass the modules kitchen/bar and supplydesk.", + "Información: 'Tiques de trabajar y enviar a servidor': El camarero puede enviar las ordenes al servidor sin imprimir un tique de trabajo."]; var MAN_NO_ADMIN = ["Um Admin-Rechte zu bearbeiten, muss der Benutzer selbst Adminrechte besitzen.", "Modifying admin rights require that the changing user has also admin rights.", "Necesitas derecho de admin para modificar derecho de admin para otros usarios."]; var MAN_NO_ADMIN_CREATE = ["Nur Admin-Benutzer können andere Admin-Benutzer anlegen", "Only admin users can create other admin users", @@ -578,17 +582,27 @@ function createWorkflowConfigPart(workflow) { html += ''; html += ''; html += ''; + html += ''; } else if (workflow == 1) { html += ''; html += ''; html += ''; - } else { + html += ''; + } else if (workflow == 2){ html += ''; html += ''; html += ''; + html += ''; + } else { + html += ''; + html += ''; + html += ''; + html += ''; } html += ''; - return html; + + html += "

" + MAN_WORKFLOW_WR_AND_TRANSFER_HLP[lang] + "

"; + return html; } function createSMTPAuth(smtpauth) { diff --git a/webapp/paydesk.html b/webapp/paydesk.html index d2dd84f..b7d7c12 100644 --- a/webapp/paydesk.html +++ b/webapp/paydesk.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/php/admin.php b/webapp/php/admin.php index 1b3b810..4f17b66 100644 --- a/webapp/php/admin.php +++ b/webapp/php/admin.php @@ -350,7 +350,7 @@ class Admin { } else { $_SESSION['is_admin'] = ($zeile['is_admin'] == 1 ? true : false); $_SESSION['right_waiter'] = ($zeile['right_waiter'] == 1 ? true : false); - if ($workflow == 2) { + if (($workflow == 2) || ($workflow == 3)) { $_SESSION['right_kitchen'] = false; $_SESSION['right_bar'] = false; $_SESSION['right_supply'] = false; @@ -1108,19 +1108,19 @@ class Admin { $right_rating = $_SESSION['right_rating']; if (!self::isOnlyRatingUser($rights, $right_rating, true)) { - if ($_SESSION['right_waiter']) { $mainMenu[] = array("name" => $waitertxt[$lang], "link" => "waiter.html?v=1.1.13"); }; - if ($_SESSION['right_kitchen']) { $mainMenu[] = array("name" => $kitchentxt[$lang], "link" => "kitchen.html?v=1.1.13"); }; - if ($_SESSION['right_bar']) { $mainMenu[] = array("name" => "Bar", "link" => "bar.html?v=1.1.13"); }; - if ($_SESSION['right_supply']) { $mainMenu[] = array("name" => $supplytxt[$lang], "link" => "supplydesk.html?v=1.1.13"); }; + if ($_SESSION['right_waiter']) { $mainMenu[] = array("name" => $waitertxt[$lang], "link" => "waiter.html?v=1.1.14"); }; + if ($_SESSION['right_kitchen']) { $mainMenu[] = array("name" => $kitchentxt[$lang], "link" => "kitchen.html?v=1.1.14"); }; + if ($_SESSION['right_bar']) { $mainMenu[] = array("name" => "Bar", "link" => "bar.html?v=1.1.14"); }; + if ($_SESSION['right_supply']) { $mainMenu[] = array("name" => $supplytxt[$lang], "link" => "supplydesk.html?v=1.1.14"); }; if ($_SESSION['right_paydesk']) { $mainMenu[] = array("name" => $paydesktxt[$lang], "link" => "paydesk.html"); }; - if ($_SESSION['right_statistics']) { $mainMenu[] = array("name" => $stattxt[$lang], "link" => "reports.html?v=1.1.13"); }; - if ($_SESSION['right_bill']) { $mainMenu[] = array("name" => $bontxt[$lang], "link" => "bill.html?v=1.1.13"); }; - if ($_SESSION['right_products']) { $mainMenu[] = array("name" => $prodtxt[$lang], "link" => "products.html?v=1.1.13"); }; - if ($_SESSION['right_reservation']) { $mainMenu[] = array("name" => $restxt[$lang], "link" => "reservation.html?v=1.1.13"); }; - if ($_SESSION['right_rating']) { $mainMenu[] = array("name" => $ratingtxt[$lang], "link" => "rating.html?v=1.1.13"); }; - if ($_SESSION['right_manager'] || $_SESSION['is_admin']) { $mainMenu[] = array("name" => $admintxt[$lang], "link" => "manager.html?v=1.1.13"); }; - $mainMenu[] = array("name" => $settingtxt[$lang], "link" => "preferences.html?v=1.1.13"); - $mainMenu[] = array("name" => "Feedback", "link" => "feedback.html?v=1.1.13"); + if ($_SESSION['right_statistics']) { $mainMenu[] = array("name" => $stattxt[$lang], "link" => "reports.html?v=1.1.14"); }; + if ($_SESSION['right_bill']) { $mainMenu[] = array("name" => $bontxt[$lang], "link" => "bill.html?v=1.1.14"); }; + if ($_SESSION['right_products']) { $mainMenu[] = array("name" => $prodtxt[$lang], "link" => "products.html?v=1.1.14"); }; + if ($_SESSION['right_reservation']) { $mainMenu[] = array("name" => $restxt[$lang], "link" => "reservation.html?v=1.1.14"); }; + if ($_SESSION['right_rating']) { $mainMenu[] = array("name" => $ratingtxt[$lang], "link" => "rating.html?v=1.1.14"); }; + if ($_SESSION['right_manager'] || $_SESSION['is_admin']) { $mainMenu[] = array("name" => $admintxt[$lang], "link" => "manager.html?v=1.1.14"); }; + $mainMenu[] = array("name" => $settingtxt[$lang], "link" => "preferences.html?v=1.1.14"); + $mainMenu[] = array("name" => "Feedback", "link" => "feedback.html?v=1.1.14"); } $mainMenu[] = array("name" => $logout[$lang], "link" => "logout.php"); @@ -1129,7 +1129,7 @@ class Admin { $waiterMessage = $this->getMessage(null, "waitermessage"); } // CAUTION: change version also in config.txt!!! - $mainMenuAndVersion = array ("version" => "OrderSprinter 1.1.13", + $mainMenuAndVersion = array ("version" => "OrderSprinter 1.1.14", "user" => $currentUser, "menu" => $mainMenu, "waitermessage" => $waiterMessage, diff --git a/webapp/php/queuecontent.php b/webapp/php/queuecontent.php index 3ddeead..ec7ae85 100644 --- a/webapp/php/queuecontent.php +++ b/webapp/php/queuecontent.php @@ -771,6 +771,9 @@ class QueueContent { $stmt->execute(array('tax')); $row = $stmt->fetchObject(); $normaltax = $row->setting; + $stmt->execute(array('workflowconfig')); + $row = $stmt->fetchObject(); + $workflowconfig = $row->setting; // get current pricelevel $currentPriceLevel = $this->commonUtils->getCurrentPriceLevel($pdo); @@ -856,8 +859,8 @@ class QueueContent { VALUES ( NULL , ?,?,?,?,?,?,?,?,?,?,?, '0000-00-00 00:00:00', '0000-00-00 00:00:00', NULL,NULL,'0',NULL,'0');"; - $stmt = $pdo->prepare(DbUtils::substTableAlias($insertSql)); - $stmt->execute(array($theTableid,$productid,$currentPriceLevelId,$price,$tax,$productname,$ordertime,$_SESSION['userid'],$theOption,($theChangedPrice == "NO" ? 0 : 1),$togo)); + $stmt = $pdo->prepare(DbUtils::substTableAlias($insertSql)); + $stmt->execute(array($theTableid,$productid,$currentPriceLevelId,$price,$tax,$productname,$ordertime,$_SESSION['userid'],$theOption,($theChangedPrice == "NO" ? 0 : 1),$togo)); $queueid = $pdo->lastInsertId(); if (!is_null($extras) && ($extras != "")) { @@ -870,18 +873,23 @@ class QueueContent { $stmt->execute(array($queueid,$extraid,$extraname)); } } - - if ($useConditions["usekitchen"] == 0) { - // no - can bypass the kitchen - $this->reallyDeclareAsCooked($pdo,$queueid); - // then also look for supplydesk, since kitchen action won't do this! - if ($useConditions["usesupply"] == 0) { - // can bypass the supplydesk - $this->declareProductBeDeliveredWithGivenPdo($pdo,$queueid); - // THIS autop declares as "prepared" (cooked)!!! - } + + if (($workflowconfig == 3) && ($doPrint == 0)) { + $this->reallyDeclareAsCooked($pdo,$queueid); + $this->declareProductBeDeliveredWithGivenPdo($pdo,$queueid); } else { - $insertedQueueIds[] = $queueid; + if ($useConditions["usekitchen"] == 0) { + // no - can bypass the kitchen + $this->reallyDeclareAsCooked($pdo,$queueid); + // then also look for supplydesk, since kitchen action won't do this! + if ($useConditions["usesupply"] == 0) { + // can bypass the supplydesk + $this->declareProductBeDeliveredWithGivenPdo($pdo,$queueid); + // THIS autop declares as "prepared" (cooked)!!! + } + } else { + $insertedQueueIds[] = $queueid; + } } } } diff --git a/webapp/preferences.html b/webapp/preferences.html index b532020..4cc8ff3 100644 --- a/webapp/preferences.html +++ b/webapp/preferences.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/products.html b/webapp/products.html index c521416..8126502 100644 --- a/webapp/products.html +++ b/webapp/products.html @@ -7,7 +7,7 @@ - + diff --git a/webapp/rating.html b/webapp/rating.html index 01d10c9..385bdfa 100644 --- a/webapp/rating.html +++ b/webapp/rating.html @@ -7,7 +7,7 @@ - + diff --git a/webapp/reports.html b/webapp/reports.html index 2792b2c..9f73e38 100644 --- a/webapp/reports.html +++ b/webapp/reports.html @@ -7,7 +7,7 @@ - + diff --git a/webapp/reservation.html b/webapp/reservation.html index b591699..faf909a 100644 --- a/webapp/reservation.html +++ b/webapp/reservation.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/supplydesk.html b/webapp/supplydesk.html index c9adc25..fcb3b94 100644 --- a/webapp/supplydesk.html +++ b/webapp/supplydesk.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/waiter.html b/webapp/waiter.html index 106d685..78611cc 100644 --- a/webapp/waiter.html +++ b/webapp/waiter.html @@ -4,7 +4,7 @@ - + @@ -30,2488 +30,8 @@ -var W_TABLES = ["Tische","Tables","Mesas"]; -var W_ROOMS = ["Räume","Rooms","Espacios"]; -var W_SELECTION = ["Auswahl","Selection","Selección"]; -var W_LAST_SELECTED = ["zuletzt","last","seleccionado"]; -var W_FAVS = ["Favoriten","Favorites","Favoritos"]; -var W_NEW_ORDER = ["Neue Order","New Orders","Ordenes nuevas"]; -var W_KIT_BAR = ["nicht serviert/unbezahlt","unserved/unpaid","no servido/impagado"]; -var W_OTHER_PROD = ["Auswahl Produktkategorie","Select product categroy","Categoría diferente"]; -var W_WORK_TICKET = ["Arbeitsbon","Work ticket","Tique de trabajar"]; -var W_NOTE = ["Bemerkung","Comment","Comentario"]; -var W_SEND_ORDERS = ["Bestellung senden","Send orders","Enviar Ordenes"]; -var W_TO_PAYDESK = ["-> Kasse","-> Paydesk","-> Caja"]; -var W_TABLECHANGE = ["Tischwechsel","Change table","Cambiar mesa"]; -var W_ROOMTABLE = ["Raum-Tisch","Room-Table","Espacio-Mesa"]; -var W_TABLE_SEL = ["Tischauswahl","Select table","Qué mesa?"]; -var W_UNDELIV_INFO = ["Liste enthält die Produkte die noch in der Küchen-/Baransicht sind, sowie unbezahlte Produkte, die die Bereitstellungsansicht nicht durchlaufen.", - "List contains the products which are still in kitchen or bar view, as well as unpaid products that do not pass the supplydesk view.", - "La lista contiene los productos que estan todavía en modulo de cocina/bar, también productos impagados que no pasan vista de productos preparados."]; -var W_REMOVE_ERROR = ["Ansicht nicht mehr aktuell - Liste wird neu geladen.","View is obsolete - List will be reloaded.","Vista no esta actual - vamos a actualisar la lista."]; -var W_FOOD_FOR = ["Speisen für","Food for","Comidas para"]; -var W_DRINKS_FOR = ["Getränke für","Beverage for","Bebidas para"]; -var W_ACT_NEW_ORD_EL = ["Aktion auswählen","Select action","Que acción?"]; -var W_ACT_CHANGE = ["Ändern","Modify","Modificar"]; -var W_ACT_CHANGE_ALL = ["Alle Ändern","Modify all","Modificar todo"]; -var W_ACT_CHANGE_ONE = ["Einen Artikel ändern","Modify one item","Modificar un artículo"]; -var W_APPLY = ["Anwenden","Apply","Aplicar"]; -var W_CANCEL = ["Abbrechen","Cancel","Cancelar"]; -var W_STILL_UNSENT_ORDERS = ["Es sind noch ungesendete Orders vorhanden!","There are unsent orders in the list","Hay elementos in la liste que no han enviados"]; -var W_EXTRAS = ["Extras/Optionen","Add-ons/Options","Opciones"]; -var W_OPEN_PANEL = ["Extras-Auswahl noch offen","Add-ons selection still open","Selección de opciones todavía abierta"]; -var W_DEL = ["Löschen","Delete","Removar"]; -var W_MSG = ["Nachricht","Message","Mensaje"]; -var W_CHANGE_PRICE = ["Neuer Preis: ","New price: ","Cambiar precio: "]; -var W_PRICE = ["Preis","Price","Precio"]; -var W_WRONG_FORMAT = ["Falsches Zahlenformat","Wrong number format","Formato de precio incorecto"]; -var W_TOGO = ["Außer-Haus-Verkauf","Sale with Tax No 2","Venta IVA 2"]; -var W_YES = ["Ja","Yes","Si"]; -var W_NO = ["Nein","No","No"]; -var W_DISCARD_NO_ASK = ["Es sind noch ungesendete Orders vorhanden! Sollen diese verworfen werden?", - "There are still unsent orders. Do you want to discard them?", - "Hay todavía ordenes non-enviados. Removarlos?"]; -var W_DISCARD_HEADER = ["Neue Orders verwerfen?", "Discard new orders?", "Removar ordenes nuevos?"]; -var W_SEARCH = ["Produktsuche","Product search","Buscar producto"]; -var W_SEARCHRESULTS = ["Suchergebnis","Search Result","Encontrado"]; -var W_WRONG_PIN = ["Falscher Stornocode","Wrong cancel code","Codigo falso"]; -var W_NO_ORDERS = ["Keine gebuchten Orders vorhanden!","No orders available!","No hay ningún orden!"]; -var W_TO_PAY = ["offen","to pay","a pagar"]; -var W_UNPAID = ["unbezahlt","unpaid","no pagado"]; -var W_UNDELIVERED = ["nicht serviert (+ unbezahlt)","not served (and unpaid)","no servidos (y non-pagado)"]; -var W_MOVE_PRODS = ["Produkte verschieben","Move products","Productos a otra mesa"]; -var W_NO_PRODS_SELECTED = ["Es wurden keine Produkte ausgewählt!","You have not chosen any products!","No ha seleccionado ningún producto!"]; - -var CHANGE_ALL = 0; -var CHANGE_ONE = 1 - -function Grouping(set,hashFct) { - // initialization during construction of class - this.set = set; - - // setting by group() - this.sortedset = []; - - this.group = function() { - this.sortedset = []; - for (var i=0;i/g, ">")); -} - -function setLanguage(language) { - lang = language; - - $("#roomtableheader2").html(W_ROOMTABLE[lang]); - $("#tableselection").html(W_TABLE_SEL[lang]); - $("#actiontxt").html(W_ACT_NEW_ORD_EL[lang]); - $("#actdeltxt").html(W_DEL[lang]); - - $("#discard_new_orders_yes").html(W_YES[lang]); - $("#discard_new_orders_no").html(W_NO[lang]); - $("#discardnewordersask").html(W_DISCARD_NO_ASK[lang]); - $("#discardnoheader").html(W_DISCARD_HEADER[lang]); - - $("#change_unpaid_txt").html(W_UNPAID[lang]); - $("#change_undelivered_txt").html(W_UNDELIVERED[lang]); - $("#moveprods").html(W_MOVE_PRODS[lang]); - - var searchField = ''; - if (prominentsearch == 0) { - searchField += '
'; - } else { - searchField += '
'; - } - searchField += '
'; - - var commentField = '
\ -
\ -
\ -
'; - - if (prominentsearch == 0) { - $("#searchposition-normal").html(searchField); - } else { - $("#searchposition-prominent").html(searchField); - } - - var html = commentField; - - if ((workflowconfig == 0) || (workflowconfig == 1)) { - html += '' + W_SEND_ORDERS[lang] + ''; - } - - if ((workflowconfig == 0) || (workflowconfig == 2)) { - html += '' + W_WORK_TICKET[lang] + ''; - } - - html += '' + W_TO_PAYDESK[lang] + '' - + ''; - - $("#commandbuttons").html(html); - - $("#waiterui").trigger("create"); - - // for new orders dialog - var actCommentField = '
\ -
\ -
\ -
'; - $("#actremark").html(actCommentField); - - if (rightchangeprice == 1) { - var txt = ''; - $("#actchangepricesection").html(txt); - - var discounttxt = '
'; - discounttxt += ''; - discounttxt += ''; - discounttxt += ''; - discounttxt += '
'; - $("#actdiscount").html(discounttxt); - } - - $("#actionneworderconfirm_all").html(W_ACT_CHANGE_ALL[lang]); - $("#actionneworderconfirm_one").html(W_ACT_CHANGE_ONE[lang]); - $("#actionnewordercancel").html(W_CANCEL[lang]); - - $("#select-comment").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - var selectedComment = $("#select-comment").find(":selected").val(); - $("#optionfield").val(selectedComment); - }); - - $("#act-select-comment").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - var selectedComment = $("#act-select-comment").find(":selected").val(); - $("#act-optionfield").val(selectedComment); - }); - - - $("#discard_new_orders_no").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - parent.history.back(); - }); - - $("#discard_new_orders_no").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - parent.history.back(); - }); - - $("#discard_new_orders_yes").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - neworders = []; - gotoOtherPage($('#discardnewordersdlg').data("link")); - }); - - $("#prodbackbtn").off("click").on("click", function (e) { - if (neworders.length != 0) { - e.stopImmediatePropagation(); - e.preventDefault(); - - hideMenuProd(); - $("#discardnewordersdlg").data("link","back_table"); - $.mobile.changePage("#discardnewordersdlg"); - } else { - parent.history.back(); - } - }); - - $("#searchField").off("keyup").on("keyup", function (e) { - generateSearchResults(); - }); -} - -function generateSearchResults() { - var search = $("#searchField").val().trim().toLowerCase(); - - if (search.length < 3) { - $("#searchResult").html(""); - } else { - var size = getProdSizeClass(); - var html = ''; - $("#searchResult").html(html); - $("#searchResult").trigger("create"); - - - $(".srinfo").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - - var prodid = this.id.split("_")[1]; - var aProd = getProdEntry(prodid); - var price = aProd.price; - alert(W_PRICE[lang] + ": " + price + " " + currency); - }); - - $(".srplus").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - var prodId = this.id.split("_")[1]; - var count = getSearchProdCount(prodId); - $("#srprodcount_" + prodId).html(count+1); - }); - - $(".srminus").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - var prodId = this.id.split("_")[1]; - var count = getSearchProdCount(prodId); - if (count == 2) { - $("#srprodcount_" + prodId).html(""); - selectedProdCount = 1; - } else if (count > 2) { - $("#srprodcount_" + prodId).html(count-1); - } - }); - - $(".searchresult").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - var prodid = this.id.split("_")[1]; - selectedProdCount = getSearchProdCount(prodid); - clearSearchAndGoToHigherTypeIfExtrasOpen(); - levelOneType = 0; - handleClickOnProd(prodid); - }); - } -} - -function fillGenCommentsList(comments) { - if (comments.status != "OK") { - alert("Fehler " + comments.code + ": " + comments.msg); - return; - } - var options = ''; - var genComments = comments.msg; - var i=0; - for (i=0;i' + aComment + ''; - } - htmlComments = options; - predefinedComments = options; - - $("#select-comment").html(options); - $('#select-comment').selectmenu('refresh'); -} - -function initializeMainMenu(moduleEntries,menuid,user,version,forward) { - $("#" + user).html(" " + moduleEntries.user); - $("#" + version).html(moduleEntries.version + " "); - var li='
  • Module
  • '; - $.each(moduleEntries.menu, function (i, module) { - var name = module.name; - var link = module.link; - if (forward) { - li += '
  • ' + name + '
  • '; - } else { - li += '
  • ' + name + '
  • '; - } - }); - $(menuid).empty().append(li).promise().done(function () { - refreshList(menuid); - }); - if (menuid == "#modulemenu-room") { - var waitermsg = moduleEntries.waitermessage; - if (waitermsg != "") { - $("#waitermessage").show(); - var msgHeader = '
  • ' + W_MSG[lang] + '
  • '; - var liMsg = '
  • ' + waitermsg + '
  • '; - $("#waitermessage").html(msgHeader + liMsg); - refreshList("#waitermessage"); - } else { - $("#waitermessage").hide(); - } - }; - $(".modulebutton").off("click").on("click", function (e) { - var view = $(this).attr("href"); - doJsonAjaxAsync("POST","php/contenthandler.php?module=admin&command=setLastModuleOfUser",{ view: view}, null, "Problem Benutzerdatenpflege",false); - }); -} - -function refreshList(selector) { - if ( $(selector).hasClass('ui-listview')) { - $(selector).listview('refresh'); - } else { - $(selector).trigger('create'); - } -} - -function gotoOtherPage(linkid) { - var linkParts = linkid.split("_"); - if (linkParts[0] == "menu") { - doJsonAjax("POST","php/contenthandler.php?module=admin&command=setLastModuleOfUser", - { view: linkParts[1]}, null, null); - setTimeout(function(){document.location.href = linkParts[1]},250); // not logged in - } else if (linkParts[0] == "back") { - $("#discardnewordersdlg").dialog( "close" ); - parent.history.back(); - } -} - -function moduleForward(linkid) { - if (neworders.length == 0) { - gotoOtherPage(linkid); - } else { - hideMenuProd(); - $("#discardnewordersdlg").data("link",linkid); - $.mobile.changePage("#discardnewordersdlg"); - } -} - -function getPayPrintType() { - doJsonAjax("GET", "php/contenthandler.php?module=admin&command=getPayPrintType", null, insertPayPrintType, "Fehler Druckkonfiguration"); -} -function insertPayPrintType(payPrintType) { - $("#workprintarea").data("payPrintType",payPrintType); -} -function getUserHasRightForPaydesk() { - doJsonAjax("GET", "php/contenthandler.php?module=admin&command=hasUserPaydeskRight", null, hasUserPaydeskRight, "Fehler Kassenberechtigung"); -} -function hasUserPaydeskRight(userRight) { - $("#gopaydesk_btn").data("allowed",userRight); -} - -function hideMenuRoom() { - $( "#modulepanel-room" ).panel( "close" ); - $("#menuswitch").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - $( "#modulepanel-room" ).panel( "open" );; - }); -} - -function hideMenuTable() { - $( "#modulepanel-table" ).panel( "close" ); - $("#menuswitchtable").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - $( "#modulepanel-table" ).panel( "open" );; - }); -} - -function hideMenuProd() { - $( "#modulepanel-prod" ).panel( "close" ); - $("#menuswitchprod").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - $( "#modulepanel-prod" ).panel( "open" );; - }); -} - -function addProductToQueueNoGuiUpdate(productid,option,extras,changedPrice,togo) { - var prodprop = getProdProperties(productid); - var prodname = prodprop.name; - var prodprice = prodprop.price; - var entry = { - name: prodname, - option: option, - extras: extras, - prodid: productid, - price: prodprice, - changedPrice : changedPrice, - togo: togo - }; - - for (var i=0;i" + W_NEW_ORDER[lang] + ""; - - var grouplength = groupedNewOrders.count.length; // because of vertical structure... - for (i=0;i 1) { - lname = "" + count.toString() + "x " + lname; - } - var prodid = groupedNewOrders.prodids[i]; - if (optiontext != '') { - optiontext = "

    " + toHtml(optiontext) + "

    "; - } - var changedPrice = groupedNewOrders.changedPrices[i]; - var togo = groupedNewOrders.togos[i]; - var extrastxt = ""; - var extras = groupedNewOrders.extras[i]; - if ((extras != null ) && (extras != "")) { - extrastxt = "" + extras + ""; - } - - if (changedPrice != "NO") { - changedPrice = changedPrice.replace(".",decpoint); - if (togo != 0) { - li += '
  • ' + lname + optiontext + extrastxt + ' (' + changedPrice + ' - To-Go)' + '
  • '; - } else { - li += '
  • ' + lname + optiontext + extrastxt + ' (' + changedPrice + ')' + '
  • '; - } - } - else { - if (togo != 0) { - li += '
  • ' + lname + optiontext + extrastxt + ' - To-Go
  • '; - } else { - li += '
  • ' + lname + optiontext + extrastxt + '
  • '; - } - } - } - $("#neworders").html(li); - refreshList("#neworders"); - binding_neworderelem(); -} - -function getProdSizeClass() { - if (osprodbtnsize == 1) { - return("osprod-1"); - } else if (osprodbtnsize == 2) { - return("osprod-2"); - } - return ""; -} - -function binding_neworderelem() { - $(".neworder_el").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - - var index = $("#neworders li").index($(this).closest("li")) - 1; - - var selectedEntry = { - count: groupedNewOrders.count[index], - name: groupedNewOrders.name[index], - price: groupedNewOrders.price[index], - option: groupedNewOrders.option[index], - extras: groupedNewOrders.extras[index], - prodid: groupedNewOrders.prodids[index], - origidxs: groupedNewOrders.origidxs[index], - changedPrices: groupedNewOrders.changedPrices[index], - togos: groupedNewOrders.togos[index] - }; - - $("#actiononneworderel").data("entry",selectedEntry); - $("#actiononneworderel").data("newcount",selectedEntry.count); - $("#actiononneworderel").data("groupedListIndex",index); - $("#act-optionfield").val(selectedEntry.option); - $("#togocheckbox").prop('checked',selectedEntry.togos == 1 ? true : false); - actionSelOnNewOrderElem(); - }); -} - -function sendNewOrders(doPrint,paydesktype,fct) { - var roominfo = $("#typprodpage").data("table-info"); - var tableid = roominfo[1]; - - if (neworders.length != 0) { - var data = { - tableid: tableid, - prods: neworders, - print: (doPrint ? 1:0), - payprinttype: paydesktype - }; - $("#typprodpage").data("neworders",[]); - if (paydesktype == "s") { - doJsonAjax("POST","php/contenthandler.php?module=queue&command=addProductListToQueue",data,fct,"Fehler bei Produktversand"); - } else { - doJsonAjax("POST","php/contenthandler.php?module=queue&command=addProductListToQueue",data,fillPrintAreaAndPrint,"Fehler bei Produktversand"); - } - } else { - if (doPrint && notDeliveredProdsAvailable) { - } - } -} - -function reloadPage() { - tableListActive = false; - setTimeout(function(){document.location.href = "waiter.html"},250); -} - -function gotoTablePage() { - $.mobile.changePage("#tables-page"); -} - -// removeProductFromQueue -function removeProductFromQueue(queueid,isPaid,isCooking,isReady) { - $.ajax({ type: "POST", - dataType: "json", - url: "php/contenthandler.php?module=queue&command=removeProductFromQueue", - data : { queueid: queueid, - isPaid: isPaid, - isCooking : isCooking, - isReady: isReady }, - async: false, - success : function(text) { - if (text.status != "OK") { - alert (W_REMOVE_ERROR[lang]); - } - var roominfo = $("#typprodpage").data("table-info"); - var tableid = roominfo[1]; - var urlProdOfTableNotDelivered = "php/contenthandler.php?module=queue&command=getJsonLongNamesOfProdsForTableNotDelivered&" + "tableid=" + tableid; - fillNotDeliveredProductsOfATable(urlProdOfTableNotDelivered); - }, - error: function( text ) { - alert( "Sorry, Fehler bei Produktentfernung!" ); - } - }); -} - -function getWaiterSettings() { - doJsonAjax("GET", "php/contenthandler.php?module=admin&command=getWaiterSettings", null, insertWaiterSettings, "Fehler Konfigurationsdaten"); -} - -function insertWaiterSettings(settings) { - var isUserLoggedIn = settings.isUserLoggedIn; - if (isUserLoggedIn != 1) { - setTimeout(function(){document.location.href = "index.html"},250); - } else { - var config = settings.config; - workflowconfig = config.workflowconfig; - decpoint = config.decpoint; - currency = config.currency; - rightchangeprice = settings.rightchangeprice; - supplyright = settings.supplyright; - keeptypelevel = settings.keeptypelevel; - applyExtraBtnPos = settings.extrasapplybtnpos; - prominentsearch = config.prominentsearch; - setLanguage(settings.userlanguage); - - if (rightchangeprice == 1) { - $("#changepricesection").show(); - } else { - $("#changepricesection").hide(); - } - if ((config.cancelunpaidcode != null) && (config.cancelunpaidcode != "")) { - cancelunpaidcode = config.cancelunpaidcode; - } else { - cancelunpaidcode = ''; - } - - osroombtnsize = settings.buttonsizes.roombtnsize; - ostablebtnsize = settings.buttonsizes.tablebtnsize; - osprodbtnsize = settings.buttonsizes.prodbtnsize; - - initializeMainMenu(settings.jsonMenuItemsAndVersion,"#modulemenu-room","loggedinuser1","versioninfo1",false); - initializeMainMenu(settings.jsonMenuItemsAndVersion,"#modulemenu-table","loggedinuser2","versioninfo2",false); - initializeMainMenu(settings.jsonMenuItemsAndVersion,"#modulemenu-prod","loggedinuser3","versioninfo3",true); - - doJsonAjax("GET", "php/contenthandler.php?module=products&command=getAllGeneralComments", null, fillGenCommentsList, "Fehler Bemerkungsdatensatz"); - - getTableMapPreferences(); - - neworders = []; - updateNewOrdersGui(); - - initializeEverything(); - } -} - -$(document).on("pageinit", "#info-page", function () { - fetchTypeProdsFromServer(); - getWaiterSettings(); - fetchMenuInInterval(60); - intervalFetchRoomTableInfoFromServer(10); -}); - -function intervalFetchRoomTableInfoFromServer(seconds) { - var fetchTimer = setInterval(function() { - if (tableListActive) { - doJsonAjaxAsync("GET","php/contenthandler.php?module=products&command=getAllTypesAndAvailProds",null,updateTableViewIfListStillOpen,true); - } - }, seconds * 1000); -} - -function updateTableViewIfListStillOpen() { - $.getJSON("php/contenthandler.php?module=roomtables&command=showAllRooms",function(roominfo) { - if (tableListActive) { - insertTableList(roominfo); - } - }); -} - -function fetchMenuInInterval (seconds) { - var fetchTimer = setInterval(function() { - fetchTypeProdsFromServer(); - }, seconds * 1000); -} - -function getTableMapPreferences() { - doJsonAjax("GET","php/tablemap.php?command=getTableMapPreferences",null,insertTMInfo,"Keine TM-Information"); -} - -function insertTMInfo(jsonTminfo) { - tminfo = jsonTminfo; -} - -function updateTableList() { - $.getJSON("php/contenthandler.php?module=roomtables&command=showAllRooms",function(roominfo) { - insertTableList(roominfo); - }); -} - -function insertTableList(roominfo) { - var roomtableinfo = roominfo.roomstables; - $("#tables-page").data("allroomtables",roomtableinfo); - - var noOfRooms = roomtableinfo.length; - var allRooms = roomtableinfo; // default: rooms - - if (noOfRooms == 1) { - $("#info-page").data("type","t"); - $("#tables-page").data("roomdetail", roomtableinfo[0]); - nextPage = "typprodpage"; - } else { - $("#info-page").data("type","r"); - $("#roomtableheader").html(W_ROOMS[lang]); - - var roomdetail = allRooms[currentRoomIndex]; - $("#tables-page").data("roomdetail", roomdetail); - } - - displayTablesListOrMap("#tables-list"); -} - -function initializeEverything() { - lastSelectedProduct = ""; - $(".modules").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - moduleForward(this.id); - }); - - hideMenuRoom(); - - $.getJSON("php/contenthandler.php?module=roomtables&command=showAllRooms",function(roominfo) { - - queueIdsOfTakeAway = roominfo.takeawayReadyQueueIds; - var roomtableinfo = roominfo.roomstables; - $("#tables-page").data("allroomtables",roomtableinfo); - - var noOfRooms = roomtableinfo.length; - var allRooms = roomtableinfo; // default: rooms - - if (noOfRooms == 1) { - $("#info-page").data("type","t"); - $("#tables-page").data("roomdetail", roomtableinfo[0]); - nextPage = "tables-page"; - currentRoomIndex = 0; // of no interest - $.mobile.changePage("#tables-page"); - $("#tableselbackbtn").hide(); - } else { - $("#info-page").data("type","r"); - $("#roomtableheader").html(W_ROOMS[lang]); - - var li = ""; - //container for $li to be added - var sizeclass = ""; - if (osroombtnsize == 1) { - sizeclass = "osroom-1"; - } else if (osroombtnsize == 2) { - sizeclass = "osroom-2"; - } - $.each(allRooms, function (i, name) { - li += '
  • ' + name.name + '
  • '; - }); - li += '
  • ' + W_TOGO[lang]; - var price = roominfo.takeawayprice; - var priceTxt = price.replace(".", decpoint) + " " + currency; - if (price != 0.00) { - li += ' (' + W_TO_PAY[lang] + ': ' + priceTxt + ')'; - } - - li += createServeInfo(null,roominfo.takeawayprodcount,roominfo.takeawayprodready); - li += '
  • '; - $("#room-list").append(li).promise().done(function () { - bindTogoOrdering(); - bindServeClick(); - $(this).off("click").on("click", "a", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - - var roomdetail = allRooms[this.id]; - currentRoomIndex = this.id; - $("#tables-page").data("roomdetail", roomdetail); - nextPage = "tables-page"; - $.mobile.changePage("#tables-page"); - }); - - //refresh list to enhance its styling. - refreshList(this); - }); - } - }); -}; - -function shallDisplayRoom(roomid) { - for (var i=0;i" + txtUnpaid + "

    "; - } - - if (show_undelivered) { - txt += W_UNDELIVERED[lang] + ":
    " + txtUndelivered; - } - - $("#changetablecontent").html(txt); - - $("#change_unpaid").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - $("#changetablewhatdialog").data("show_unpaid",1-show_unpaid); - updateChangeTableDialog(); - }); - $("#change_undelivered").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - $("#changetablewhatdialog").data("show_undelivered",1-show_undelivered); - updateChangeTableDialog(); - }); - - $("#moveprods").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - - var show_unpaid = $("#changetablewhatdialog").data("show_unpaid"); - var show_undelivered = $("#changetablewhatdialog").data("show_undelivered"); - - var entries = []; - if (show_unpaid == 1) { - var unpaids = $("#changetablewhatdialog").data("unpaid"); - for (var i=0;i' + W_TOGO[lang] + ''; - $("#tables-list-togo").html(li); - $("#togoarea").show(); - refreshList("#tables-list-togo"); - bindTogoOrdering(); - bindServeClick(); - } - } else { - $(listToFill).show(); - $("#togoarea").hide(); - $("#tablemapcontent").hide(); - - var li = '
  • ' + W_TABLES[lang] + '
  • '; // init - var sizeclass = ""; - if (ostablebtnsize == 1) { - sizeclass = "ostable-1"; - } else if (ostablebtnsize == 2) { - sizeclass = "ostable-2"; - } - $.each(tables, function( index, value ) { - var price = value.pricesum; - var priceTxt = price.replace(".", decpoint) + " " + currency; - var prodcount = value.prodcount; - var prodready = value.prodready; - var readyQueueIds = value.readyQueueIds; - if (price != 0.00) { - li += '
  • ' + value.name + ' (' + W_TO_PAY[lang] + ': ' + priceTxt + ')' + createServeInfo(value.id,prodcount,prodready) + '
  • '; - } else { - li += '
  • ' + value.name + createServeInfo(value.id,prodcount,prodready) + '
  • '; - } - }); - if (roomOrTables == 't') { - li += '
  • ' + W_TOGO[lang] + '
  • '; - } - //append list to ul - $(listToFill).empty().append(li).promise().done(function () { - bindTogoOrdering(); - bindServeClick(); - $(this).off("click").on("click", ".info-go", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - var myTables = roomdetail; - var tableid = tables[this.id]["id"]; - var tablename = tables[this.id]["name"]; - forwardDisplayToProductView.call(this,roomid,tableid,tablename); - }); - - //refresh list to enhance its styling. - refreshList(this); - }); - } -} - -function bindServeClick() { - $(".prodreadyicon").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - var tableid = this.id.split("_")[1]; - var queueIds = queueIdsOfTakeAway; - if ((tableid != null) && (tableid != "n")) { - var roomdetail = $("#tables-page").data("roomdetail"); - var tables = roomdetail["tables"]; - for (var i=0;i 0) { - var queueIdStr = queueIds.join(); - doJsonAjax("POST","php/contenthandler.php?module=queue&command=declareMultipleProductsDelivered",{ queueids: queueIdStr },updateAfterDelivery,"Bereitstellung"); - } - }); -} - -function updateAfterDelivery(jsonContent) { - if (tableListActive) { - updateTableList(); - } else { - reloadPage(); - } -} - -function bindTogoOrdering() { - $(".togoorder").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - forwardDisplayToProductView.call(this,0,0,W_TOGO[lang]); - }); -} - -function forwardDisplayToProductView(roomid,tableid,tablename) { - neworders = []; - updateNewOrdersGui(); - - var roomtable_array= new Array(roomid,tableid,tablename); - $("#typprodpage").data("table-info", roomtable_array); - - nextPage = "typprodpage"; - $.mobile.changePage("#typprodpage"); - neworders = []; - updateNewOrdersGui(); -} - -function attachAndDisplayFirstRefTypes(jsonTypesAndProds) { - $("#typprodpage").data("types_prods",jsonTypesAndProds); -} - -function listOfExtras(prodid) { - var size = getProdSizeClass(); - var li = "
  • " + W_EXTRAS[lang] +"
  • "; - if (applyExtraBtnPos != 1) { - li += '
  • ' + W_APPLY[lang] + '
  • '; - } - for (var i=0;i= 0) { - dt = "f"; - di = "check"; - } - li += '
  • ' + toHtml(extraname) + '
  • '; - } - if (applyExtraBtnPos != 2) { - li += '
  • ' + W_APPLY[lang] + '
  • '; - } - li += createHigherLine(size); - return li; -} - -function bindExtrasSel() { - $(".extrasel").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - var ids = this.id.split("_"); - var extraid = ids[1]; - var prodid = ids[2]; - if ((extraid == "abottom") || (extraid == "atop")) { - var aProd = getProdEntry(prodid); - var allAvailExtrasOfProd = aProd.extras; - var assignedExtras = []; - for (var i=0;i= 0) { - assignedExtras[assignedExtras.length] = {id:extraid,name:extraname}; - } - } - extrasMenuOpen = false; - addProductToNewOrdersList(prodid,assignedExtras); - } else { - //var li_id = "extra_" + extraid + "_" + prodid; - - // w_extras - if (w_extras.indexOf(extraid) >= 0) { - w_extras.splice(w_extras.indexOf(extraid),1); - } else { - w_extras[w_extras.length] = extraid; - } - var li = listOfExtras(prodid); - $("#typeproducts-list").html(li); - refreshList("#typeproducts-list"); - extrasMenuOpen = true; - bindExtrasSel(); - bindHigherButtons(); - } - }); -} - -function lastSelectedProdToStr() { - return " (" + W_LAST_SELECTED[lang] + ": " + lastSelectedProduct + ")"; -} - -function listOfTypesProds(ref) { - var li = "
  • " + W_SELECTION[lang] + ""; - if (lastSelectedProduct != "") { - li += lastSelectedProdToStr(); - } - li += "
  • "; - - var prodtypes = $("#typprodpage").data("types_prods"); - var size = getProdSizeClass(); - $.each(prodtypes.types,function(i,aType) { - if (parseInt(aType.ref) == ref) { - li += '
  • ' + toHtml(aType.name) + '
  • '; - } - }); - $.each(prodtypes.prods,function(i,aProd) { - if (parseInt(aProd.ref) == ref) { - li += '
  • ' + toHtml(aProd.name); - li += createProdInfoTxt(aProd.id); - li += "
  • "; - } - }); - if (ref != 0) { - li += createHigherLine(size); - } - return li; -} - - -function createHigherLine(size) { - var txt = '
  • '; - txt += '
    '; - txt += '
    '; - txt += '
    '; - txt += '
    '; - txt += '
  • '; - return txt; -} - -function createProdInfoTxt(prodid) { - var txt = ""; - txt += "
    "; - txt += "
    "; - txt += "
    "; - return txt; -} -function createSearchProdInfoTxt(prodid) { - var txt = ""; - txt += "
    "; - txt += "
    "; - txt += "
    "; - return txt; -} - -function createServeInfo(tableid,prodcount,prodready) { - if (supplyright == 0) { - return ''; - } - if (tableid==null) { - tableid = "n"; - } - if (prodready > 0) { - var txt = "" + prodready + "(" + prodcount + ")"; - if (prodready >= prodcount) { - txt += "
    "; - } else { - txt += "
    "; - } - return txt; - } else { - return ''; - } -} - -function getProdEntry(prodid) { - var prodtypes = $("#typprodpage").data("types_prods"); - var i=0; - var allprods = prodtypes.prods; - for (i=0;i'; - - var prodtypes = $("#typprodpage").data("types_prods"); - var size = getProdSizeClass(); - - var favFound = false; - $.each(prodtypes.prods,function(i,aProd) { - if (parseInt(aProd.favorite) == 1) { - favFound = true; - html += '
  • ' + toHtml(aProd.longname); - html += createProdInfoTxt(aProd.id); - html += '
  • '; - } - }); - - html += ''; - if (favFound) { - $("#favarea").html(html); - $("#favarea").trigger("create"); - } else { - $("#favarea").html(""); - $("#favarea").trigger("create"); - } -} - -function bindFavEvent() { - $(".fav").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - levelOneType = 0; - var prodid = this.id.split("_")[1]; - selectedProdCount = getProdCount(prodid); - handleClickOnProd(prodid); - }); -} - - -function displayTypesProds(ref,extras) { - window.scrollTo(0,0); - if (ref==0) { - fillFavArea(); - bindFavEvent(); - } else { - $("#favarea").html(""); - } - if (extras == null) { - idOfHigherType = ref; - var li = listOfTypesProds(parseInt(ref)); - } else { - var li = listOfExtras(parseInt(ref)); - } - - $("#typeproducts-list").empty().append(li).promise().done(function () { - refreshList("#typeproducts-list"); - $(this).off("click").on("click", "a", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - $("#searchField").val(""); - generateSearchResults(); - var theId = this.id; - var idParts = theId.split("_"); - if (idParts[0] == 't') { - if (ref == 0) { - levelOneType = idParts[1]; - ref = idParts[1]; - } - extrasMenuOpen = false; - displayTypesProds(idParts[1],null); - } else { - var prodid = idParts[1]; - selectedProdCount = getProdCount(prodid); - handleClickOnProd(prodid); - } - }); - bindHigherButtons(); - }); - - $(".prodinfo").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - - var prodid = this.id.split("_")[1]; - var aProd = getProdEntry(prodid); - var price = aProd.price; - alert(W_PRICE[lang] + ": " + price + " " + currency); - }); - - $(".prodplus").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - var prodId = this.id.split("_")[1]; - var count = getProdCount(prodId); - $("#prodcount_" + prodId).html(count+1); - }); - - $(".prodminus").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - var prodId = this.id.split("_")[1]; - var count = getProdCount(prodId); - if (count == 2) { - $("#prodcount_" + prodId).html(""); - selectedProdCount = 1; - } else if (count > 2) { - $("#prodcount_" + prodId).html(count-1); - } - }); -} - -function getHigherType() { - var prodtypes = $("#typprodpage").data("types_prods"); - var thetypes = prodtypes.types; - var higherType = 0; - if (!extrasMenuOpen) { - for (var i=0;i 0)) { - w_extras = []; - w_allextras = extras; - extrasMenuOpen = true; - idOfHigherType = aProd.ref; - - displayTypesProds(prodid,extras); - bindExtrasSel(); - } else { - addProductToNewOrdersList(prodid,null); - } -} - -function addProductToNewOrdersList(prodid,extras) { - - var roominfo = $("#typprodpage").data("table-info"); - var tableid = roominfo[1]; - addProductToQueue(prodid,extras,"NO",0); - - var audioFile = getProdAudio(parseInt(prodid)); - var vol = parseInt($("#typprodpage").data("ordervolume")) / 10.0; - if (audioFile != "") { - var audioUrl = "customer/" + audioFile; - if (audioFile.match(/mp3$/)) { - $("#audiofile").html(''); - } else if (audioFile.match(/ogg$/)) { - $("#audiofile").html(''); - } else if (audioFile.match(/wav$/)) { - $("#audiofile").html(''); - } - - - document.getElementById('audiofile').load(); - document.getElementById('audiofile').volume=vol; - document.getElementById('audiofile').play(); - } else { - if (vol > 0.5) { - beep(); - } - } - - var urlProdOfTableNotDelivered = "php/contenthandler.php?module=queue&command=getJsonLongNamesOfProdsForTableNotDelivered&tableid=" + tableid; - fillNotDeliveredProductsOfATable(urlProdOfTableNotDelivered); - - if (keeptypelevel == 0) { - displayTypesProds(levelOneType,null); - } - refreshList("#typeproducts-list"); -} - -function beep() { - var snd = new Audio("data:audio/wav;base64,//uQRAAAAWMSLwUIYAAsYkXgoQwAEaYLWfkWgAI0wWs/ItAAAGDgYtAgAyN+QWaAAihwMWm4G8QQRDiMcCBcH3Cc+CDv/7xA4Tvh9Rz/y8QADBwMWgQAZG/ILNAARQ4GLTcDeIIIhxGOBAuD7hOfBB3/94gcJ3w+o5/5eIAIAAAVwWgQAVQ2ORaIQwEMAJiDg95G4nQL7mQVWI6GwRcfsZAcsKkJvxgxEjzFUgfHoSQ9Qq7KNwqHwuB13MA4a1q/DmBrHgPcmjiGoh//EwC5nGPEmS4RcfkVKOhJf+WOgoxJclFz3kgn//dBA+ya1GhurNn8zb//9NNutNuhz31f////9vt///z+IdAEAAAK4LQIAKobHItEIYCGAExBwe8jcToF9zIKrEdDYIuP2MgOWFSE34wYiR5iqQPj0JIeoVdlG4VD4XA67mAcNa1fhzA1jwHuTRxDUQ//iYBczjHiTJcIuPyKlHQkv/LHQUYkuSi57yQT//uggfZNajQ3Vmz+Zt//+mm3Wm3Q576v////+32///5/EOgAAADVghQAAAAA//uQZAUAB1WI0PZugAAAAAoQwAAAEk3nRd2qAAAAACiDgAAAAAAABCqEEQRLCgwpBGMlJkIz8jKhGvj4k6jzRnqasNKIeoh5gI7BJaC1A1AoNBjJgbyApVS4IDlZgDU5WUAxEKDNmmALHzZp0Fkz1FMTmGFl1FMEyodIavcCAUHDWrKAIA4aa2oCgILEBupZgHvAhEBcZ6joQBxS76AgccrFlczBvKLC0QI2cBoCFvfTDAo7eoOQInqDPBtvrDEZBNYN5xwNwxQRfw8ZQ5wQVLvO8OYU+mHvFLlDh05Mdg7BT6YrRPpCBznMB2r//xKJjyyOh+cImr2/4doscwD6neZjuZR4AgAABYAAAABy1xcdQtxYBYYZdifkUDgzzXaXn98Z0oi9ILU5mBjFANmRwlVJ3/6jYDAmxaiDG3/6xjQQCCKkRb/6kg/wW+kSJ5//rLobkLSiKmqP/0ikJuDaSaSf/6JiLYLEYnW/+kXg1WRVJL/9EmQ1YZIsv/6Qzwy5qk7/+tEU0nkls3/zIUMPKNX/6yZLf+kFgAfgGyLFAUwY//uQZAUABcd5UiNPVXAAAApAAAAAE0VZQKw9ISAAACgAAAAAVQIygIElVrFkBS+Jhi+EAuu+lKAkYUEIsmEAEoMeDmCETMvfSHTGkF5RWH7kz/ESHWPAq/kcCRhqBtMdokPdM7vil7RG98A2sc7zO6ZvTdM7pmOUAZTnJW+NXxqmd41dqJ6mLTXxrPpnV8avaIf5SvL7pndPvPpndJR9Kuu8fePvuiuhorgWjp7Mf/PRjxcFCPDkW31srioCExivv9lcwKEaHsf/7ow2Fl1T/9RkXgEhYElAoCLFtMArxwivDJJ+bR1HTKJdlEoTELCIqgEwVGSQ+hIm0NbK8WXcTEI0UPoa2NbG4y2K00JEWbZavJXkYaqo9CRHS55FcZTjKEk3NKoCYUnSQ0rWxrZbFKbKIhOKPZe1cJKzZSaQrIyULHDZmV5K4xySsDRKWOruanGtjLJXFEmwaIbDLX0hIPBUQPVFVkQkDoUNfSoDgQGKPekoxeGzA4DUvnn4bxzcZrtJyipKfPNy5w+9lnXwgqsiyHNeSVpemw4bWb9psYeq//uQZBoABQt4yMVxYAIAAAkQoAAAHvYpL5m6AAgAACXDAAAAD59jblTirQe9upFsmZbpMudy7Lz1X1DYsxOOSWpfPqNX2WqktK0DMvuGwlbNj44TleLPQ+Gsfb+GOWOKJoIrWb3cIMeeON6lz2umTqMXV8Mj30yWPpjoSa9ujK8SyeJP5y5mOW1D6hvLepeveEAEDo0mgCRClOEgANv3B9a6fikgUSu/DmAMATrGx7nng5p5iimPNZsfQLYB2sDLIkzRKZOHGAaUyDcpFBSLG9MCQALgAIgQs2YunOszLSAyQYPVC2YdGGeHD2dTdJk1pAHGAWDjnkcLKFymS3RQZTInzySoBwMG0QueC3gMsCEYxUqlrcxK6k1LQQcsmyYeQPdC2YfuGPASCBkcVMQQqpVJshui1tkXQJQV0OXGAZMXSOEEBRirXbVRQW7ugq7IM7rPWSZyDlM3IuNEkxzCOJ0ny2ThNkyRai1b6ev//3dzNGzNb//4uAvHT5sURcZCFcuKLhOFs8mLAAEAt4UWAAIABAAAAAB4qbHo0tIjVkUU//uQZAwABfSFz3ZqQAAAAAngwAAAE1HjMp2qAAAAACZDgAAAD5UkTE1UgZEUExqYynN1qZvqIOREEFmBcJQkwdxiFtw0qEOkGYfRDifBui9MQg4QAHAqWtAWHoCxu1Yf4VfWLPIM2mHDFsbQEVGwyqQoQcwnfHeIkNt9YnkiaS1oizycqJrx4KOQjahZxWbcZgztj2c49nKmkId44S71j0c8eV9yDK6uPRzx5X18eDvjvQ6yKo9ZSS6l//8elePK/Lf//IInrOF/FvDoADYAGBMGb7FtErm5MXMlmPAJQVgWta7Zx2go+8xJ0UiCb8LHHdftWyLJE0QIAIsI+UbXu67dZMjmgDGCGl1H+vpF4NSDckSIkk7Vd+sxEhBQMRU8j/12UIRhzSaUdQ+rQU5kGeFxm+hb1oh6pWWmv3uvmReDl0UnvtapVaIzo1jZbf/pD6ElLqSX+rUmOQNpJFa/r+sa4e/pBlAABoAAAAA3CUgShLdGIxsY7AUABPRrgCABdDuQ5GC7DqPQCgbbJUAoRSUj+NIEig0YfyWUho1VBBBA//uQZB4ABZx5zfMakeAAAAmwAAAAF5F3P0w9GtAAACfAAAAAwLhMDmAYWMgVEG1U0FIGCBgXBXAtfMH10000EEEEEECUBYln03TTTdNBDZopopYvrTTdNa325mImNg3TTPV9q3pmY0xoO6bv3r00y+IDGid/9aaaZTGMuj9mpu9Mpio1dXrr5HERTZSmqU36A3CumzN/9Robv/Xx4v9ijkSRSNLQhAWumap82WRSBUqXStV/YcS+XVLnSS+WLDroqArFkMEsAS+eWmrUzrO0oEmE40RlMZ5+ODIkAyKAGUwZ3mVKmcamcJnMW26MRPgUw6j+LkhyHGVGYjSUUKNpuJUQoOIAyDvEyG8S5yfK6dhZc0Tx1KI/gviKL6qvvFs1+bWtaz58uUNnryq6kt5RzOCkPWlVqVX2a/EEBUdU1KrXLf40GoiiFXK///qpoiDXrOgqDR38JB0bw7SoL+ZB9o1RCkQjQ2CBYZKd/+VJxZRRZlqSkKiws0WFxUyCwsKiMy7hUVFhIaCrNQsKkTIsLivwKKigsj8XYlwt/WKi2N4d//uQRCSAAjURNIHpMZBGYiaQPSYyAAABLAAAAAAAACWAAAAApUF/Mg+0aohSIRobBAsMlO//Kk4soosy1JSFRYWaLC4qZBYWFRGZdwqKiwkNBVmoWFSJkWFxX4FFRQWR+LsS4W/rFRb/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////VEFHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU291bmRib3kuZGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjAwNGh0dHA6Ly93d3cuc291bmRib3kuZGUAAAAAAAAAACU="); - snd.play(); -} - -function fetchTypeProdsFromServer() { - doJsonAjaxAsync("GET","php/contenthandler.php?module=products&command=getAllTypesAndAvailProds",null,attachAndDisplayFirstRefTypes,true); -} - - -var waitProdTimer = null; - -function fillTypeProdList(ref) { - var typprod = $("#typprodpage").data("types_prods"); - if (typprod != undefined) { - displayTypesProds(ref,null); - } else { - waitProdTimer = setInterval(function() { - var typprod2 = $("#typprodpage").data("types_prods"); - if (typprod2 != undefined) { - clearInterval(waitProdTimer); - displayTypesProds(ref,null); - } - }, 200); - } -} - - -function fillTypeProdList_(ref) { - displayTypesProds(ref,null); -} - -function createTxtAssignedProd(p) { - var optiontext = ""; - if (p.option != '') { - optiontext = " (" + toHtml(p.option) + ")"; - } - - var prodname = p.longname; - if (p.togo == 1) { - prodname = "To-Go: " + prodname; - } - - if (p.pricechanged == 1) { - prodname += " - " + p.price.replace(".", decpoint); - } - - var status = ""; - if (p.isready == '1') { - status += " ☞"; - } - if (p.isCooking == '1') { - status += " ♨"; - } - if (p.isPaid == '1') { - status += " ☑"; - } - - return toHtml(prodname) + optiontext + status + "
    " + createExtraParagraph(p.extras); -} - - -function createListElOfAssignedProd(aProd) { - var count = ""; - if("count" in aProd) { - if (aProd["count"] > 1) { - count = aProd["count"] + "x "; - } - } - if (aProd.isready == '0') { - return '
  • ' + count + createTxtAssignedProd(aProd) + '
  • '; - } else { - return '
  • ' + count + createTxtAssignedProd(aProd) + '
  • '; - } -} - -function fillAssignedProdList(assignedProds) { - if (assignedProds.length > 0) { - notDeliveredProdsAvailable = true; - } else { - notDeliveredProdsAvailable = false; - } - - $("#cancelcodefield").val(""); - if (cancelunpaidcode != "") { - if (assignedProds.length > 0) { - $("#cancelcodearea").show(); - } else { - $("#cancelcodearea").hide(); - } - } else { - $("#cancelcodearea").hide(); - } - - var assignedProdsGrouping = new Grouping(assignedProds,createTxtAssignedProd); - assignedProdsGrouping.group(); - - var listContent = "
  • " + W_KIT_BAR[lang] + "
  • "; - listContent += assignedProdsGrouping.outputList(createListElOfAssignedProd); - $("#orderedprod-list-0").html(listContent); - refreshList("#orderedprod-list-0"); - - $("#undeliveredheader").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - alert(W_UNDELIV_INFO[lang]); - }); - - bindingOfAssignedProds(assignedProdsGrouping); -} - -function bindingOfAssignedProds(assignedProdsGrouping) { - $(".notdelprod").off("click").on("click", "a", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - - if (cancelunpaidcode != "") { - if ($("#cancelcodefield").val() != cancelunpaidcode) { - alert(W_WRONG_PIN[lang]); - return; - } - } - - var listItem = $(this).closest("li"); - var rowIndex = $( "#orderedprod-list-0 li" ).index(listItem) - 1; - var rowEntries = assignedProdsGrouping.getItemsOfRow(rowIndex); - var anEntry = rowEntries[0]; - var queueid = anEntry.id; - - var isReady = anEntry.isready; - var isPaid = anEntry.isPaid; - var isCooking = anEntry.isCooking; - - if ((isPaid == "1") && (isReady=="1")) { - var dialogText = "Entfernen?"; - var this_elem = this; - areYouSure("Produkt wurde schon zubereitet und bezahlt", dialogText, "Ja", function() { - removeProductFromQueue(queueid,isPaid,isCooking,isReady); - }); - } else if (isReady=="1") { - var dialogText = "Entfernen?"; - var this_elem = this; - areYouSure("Produkt wurde schon zubereitet.", dialogText, "Ja", function() { - removeProductFromQueue(queueid,isPaid,isCooking,isReady); - }); - } else if (isPaid == "1") { - var dialogText = "Entfernen?"; - var this_elem = this; - areYouSure("Produkt wurde schon bezahlt.", dialogText, "Ja", function() { - removeProductFromQueue(queueid,isPaid,isCooking,isReady); - }); - } else if (isCooking == "1") { - var dialogText = "Entfernen?"; - var this_elem = this; - areYouSure("Produkt wird soeben zubereitet.", dialogText, "Ja", function() { - removeProductFromQueue(queueid,isPaid,isCooking,isReady); - }); - } else { - removeProductFromQueue(queueid,isPaid,isCooking,isReady); - } - }); - -} - -function fillNotDeliveredProductsOfATable(urlProdOfTableNotDelivered) { - doJsonAjaxAsync("GET", urlProdOfTableNotDelivered, null, fillAssignedProdList,true); -} - -function fillOrderVolume(volume) { - $("#typprodpage").data("ordervolume",volume); -} - -function checkForLogIn() { - doJsonAjax("GET","php/contenthandler.php?module=admin&command=isUserAlreadyLoggedIn",null,handleTestForLoggedIn,null); -} -function handleTestForLoggedIn(answer) { - if (answer != "YES") { - setTimeout(function(){document.location.href = "index.html"},250); - } -} - -//Now we prepare the product page (level 0) for display -$(document).on("pagebeforeshow", "#typprodpage", function () { - lastSelectedProduct = ""; - tableListActive = false; - if (nextPage == "") { - reloadPage(); - } - $("#tablemapcontent").hide(); - - $.ajaxSetup({ cache: false }); - hideMenuProd(); - getPayPrintType(); - - checkForLogIn(); - - doJsonAjax("GET","php/contenthandler.php?module=admin&command=getOrderVolume",null,fillOrderVolume,"Keine Ordertoninformation"); - - $("#workprintarea").html(""); - - //get from data - you put this here when the "a" wa clicked in the previous page - var roomtable_info = $(this).data("table-info"); - - var roomid = roomtable_info[0]; - var tableid = roomtable_info[1]; - $("#changetablewhatdialog").data("fromtableid",tableid); - var tablename = roomtable_info[2]; - - $("#typprodpage h1").html("Tisch: " + tablename); - $("#optionfield").val(""); // clear option field - - fillTypeProdList(0); - - // now the products that are assigned to table but yet not delivered - var urlProdOfTableNotDelivered = "php/contenthandler.php?module=queue&command=getJsonLongNamesOfProdsForTableNotDelivered&tableid=" + tableid; - - fillNotDeliveredProductsOfATable(urlProdOfTableNotDelivered); - - $("#workprint_btn").data("tableid",tableid); - $("#gopaydesk_btn").data("tableid",tableid); - $("#workprint_btn").data("tablename",tablename); - bindPrintButton(); - bindGoPayDeskButton(); - bindChangetableButton(); - bindSendNewOrdersButton(); - - // "Paydesk-button" enable/disable - getUserHasRightForPaydesk(); -}); - -function bindSendNewOrdersButton() { - $("#sendorder_btn").off("click").on("click", function (e) { - e.stopImmediatePropagation(); - e.preventDefault(); - lastSelectedProduct = ""; - if (extrasMenuOpen) { - alert(W_OPEN_PANEL[lang]); - } else { - sendNewOrders(false,"s",gotoTablePage); - } - }); -} - - function bindPrintButton() { - $("#workprint_btn").off("click").on("click", function(e) { - e.stopImmediatePropagation(); - e.preventDefault(); - lastSelectedProduct = ""; - if (extrasMenuOpen) { - alert(W_OPEN_PANEL[lang]); - } else { - - if (neworders.length > 0) { - var payPrintType = $("#workprintarea").data("payPrintType"); - sendNewOrders(true,payPrintType,gotoTablePage); - } else { - alert(W_NO_ORDERS[lang]); - } - } - }); - } - - function bindGoPayDeskButton() { - $("#gopaydesk_btn").off("click").on("click", function(e) { - e.stopImmediatePropagation(); - e.preventDefault(); - lastSelectedProduct = ""; - - if (neworders.length > 0) { - sendNewOrders(false,"s",goToPayDesk); - } else if (notDeliveredProdsAvailable) { - goToPayDesk(); - } else { - alert(W_NO_ORDERS[lang]); - } - }); - } - - function goToPayDesk() { - var userRight = $("#gopaydesk_btn").data("allowed"); - if (userRight.toLowerCase() == "yes") { - window.location.href = "paydesk.html?t=" + $("#gopaydesk_btn").data("tableid"); - } else { - alert("Fehlendes Benutzerrecht für Kasse"); - } - } - - function createRoomOrTableList(roomtableinfo, titel) { - var li = '
  • ' + titel + '
  • '; - $.each( - roomtableinfo, - function(i, name) { - li += '
  • ' - + name.name + '
  • '; - }); - return li; - } - - function handleClickInChangeTablemap(data) { - $("#changetablewhatdialog").data("totableid", data.tableid); - $.mobile.changePage("#changetablewhatdialog"); - } - - function displayTableDialog(roomid, tableinfo, initialChange) { - $("#header_tchange").html("Tischauswahl"); - - var displaymap = shallDisplayRoom(roomid); - if (displaymap.show) { - $("#roomOrTableList").hide(); - - $("#tablemapcontentchangetable").show(); - d = new Date(); - $("#mapimgpartchangetable").attr( - "src", - "php/tablemap.php?command=getTableMapImgAsPng&roomid=" - + roomid + "&" + d.getTime()); - - var tablemap = new Tablemap(roomid, null, ""); - tablemap.bindingForSelection("#mapimgpartchangetable", - handleClickInChangeTablemap.bind(this), displaymap.pos, - roomid); - if (initialChange) { - $.mobile.changePage("#tablechangedialog"); - } - $("#changetablebackbtn").off("click").on("click", function(e) { - $("#tablemapcontentchangetable").hide(); - $("#roomOrTableList").show(); - }); - } else { - $("#roomOrTableList").show(); - var li = createRoomOrTableList(tableinfo, "Tische"); - $("#roomOrTableList") - .empty() - .append(li) - .promise() - .done( - function() { - if (initialChange) { - $.mobile.changePage("#tablechangedialog"); - } - refreshList("#roomOrTableList"); - $(this) - .off("click") - .on("click",".info-go", - function(e) { - e.stopImmediatePropagation(); - e.preventDefault(); - var table = ($(this) - .attr("id")) - .split("_")[1]; - $("#changetablewhatdialog") - .data( - "totableid", - tableinfo[table].id); - $.mobile.changePage("#changetablewhatdialog"); - }); - }); - } - } - - - function resultOfChangeTable(jsonResult) { - if (jsonResult.status != "OK") { - alert("Fehler " - + jsonResult.code - + ": " - + jsonResult.msg - + "\n\nMöglicherweise hat ein Kollege\nin der Zwischenzeit Produkte zugestellt."); - } else { - alert("Tischwechsel durchgeführt!"); - } - window.location.href = "waiter.html"; - } - - function bindChangetableButton() { - $("#changetable_btn") - .off("click") - .on( - "click", - function(e) { - e.stopImmediatePropagation(); - e.preventDefault(); - - var allRoomTables = $("#tables-page").data( - "allroomtables"); - var noOfRooms = allRoomTables.length; - - if (noOfRooms == 1) { - displayTableDialog(allRoomTables[0].id, - allRoomTables[0].tables, true); - } else { - $("#header_tchange").html("Raumauswahl"); - var li = createRoomOrTableList(allRoomTables, - W_ROOMS[lang]); - $("#roomOrTableList") - .empty() - .append(li) - .promise() - .done(function() { - $.mobile - .changePage("#tablechangedialog"); - refreshList("#roomOrTableList"); - $(this) - .off("click").on("click",".info-go", - function(e) { - e.stopImmediatePropagation(); - e.preventDefault(); - var roomid = ($(this) - .attr("id")) - .split("_")[1]; - displayTableDialog( - allRoomTables[roomid].id, - allRoomTables[roomid].tables, - false); - }); - }); - } - - }); - } - - function createHtmlOfKind(workItems, kind, printer) { - var text = ""; - for (var i=0;i" + option + "
    " + extrastxt - + "

    "; - } - } - return text; - } - - function createExtraParagraph(extras) { - if ((extras == null) || (extras == "")) { - return ""; - } - var extratxt = ""; - for (var j = 0; j < extras.length; j++) { - extratxt += "+ " + toHtml(extras[j]) + "
    "; - } - return extratxt; - } - - function arrayContainsKind(workItems, kind, printer) { - var result = false; - for (var i = 0; i < workItems.length; i++) { - var item = workItems[i]; - if ((kind == item.kind) && (printer == item.printer)) { - result = true; - } - } - return result; - } - - function fillPrintAreaAndPrint(jsonContent) { - updateNotDeliveredList(); - var currentTime = new Date(); - var hours = "0" + currentTime.getHours(); - var minutes = "0" + currentTime.getMinutes(); - hours = hours.substr(-2); // 2 digits - leading 0 - minutes = minutes.substr(-2); - - var timeStamp = "Erstellung: " + hours + ":" + minutes + ""; - - if (jsonContent.status == "OK") { - var printdata = jsonContent.msg; - - var payPrintType = $("#workprintarea").data("payPrintType"); - var totalHtml = ""; - - var tableToServe = $("#workprint_btn").data("tablename"); - if (arrayContainsKind(printdata, 0, 1)) { - var foodHeaderLine = "

    Speisen für " + tableToServe - + " (Printer 1)


    "; - var foodText = foodHeaderLine + "
    " + timeStamp + "

    " - + createHtmlOfKind(printdata, 0, 1) + "

    "; - - totalHtml += foodText + "
    "; - - } - if (arrayContainsKind(printdata, 0, 2)) { - var foodHeaderLine = "

    Speisen für " + tableToServe - + " (Printer 2)


    "; - var foodText = foodHeaderLine + "
    " + timeStamp + "

    " - + createHtmlOfKind(printdata, 0, 2) + "

    "; - - totalHtml += foodText + "
    "; - } - if (arrayContainsKind(printdata, 1, 1)) { - var drinkHeaderLine = "

    Getränke für " + tableToServe - + " (Printer 1)


    "; - var drinkText = drinkHeaderLine + "
    " + timeStamp - + "

    " + createHtmlOfKind(printdata, 1, 1) - + "

    "; - - totalHtml += drinkText + "
    "; - } - if (arrayContainsKind(printdata, 1, 2)) { - var drinkHeaderLine = "

    Getränke für " + tableToServe - + " (Printer 2)


    "; - var drinkText = drinkHeaderLine + "
    " + timeStamp - + "

    " + createHtmlOfKind(printdata, 1, 2) - + "

    "; - - totalHtml += drinkText + "
    "; - } - - $("#workprintarea").html(totalHtml); - window.print(); - setTimeout(function(){document.location.href = "waiter.html"},250); - - } else { - alert("Druckdaten konnten nicht angefordert werden"); - } - } - - function printJob(header, table, timestamp, prods, theType, thePrinter) { - var data = { - header : header, - table : table, - timestamp : timestamp, - prods : prods, - type : theType, - printer : thePrinter - }; - doJsonAjax( - "POST", - "php/contenthandler.php?module=printqueue&command=queueWorkPrintJob", - data, null, "Druckfehler"); - } - - function updateNotDeliveredList() { - var roomtable_info = $("#typprodpage").data("table-info"); - var tableid = roomtable_info[1]; - var urlProdOfTableNotDelivered = "php/contenthandler.php?module=queue&command=getJsonLongNamesOfProdsForTableNotDelivered&" - + "tableid=" + tableid; - var prodListToFill = "#orderedprod-list-0"; - fillNotDeliveredProductsOfATable(urlProdOfTableNotDelivered); - } - function doJsonAjax(getOrPost, url, data, functionToCallIfSuccess, errorMsg) { - $.ajax({ - type : getOrPost, - url : url, - dataType : "json", - data : data, - async : true, - success : function(jsonContent) { - if (functionToCallIfSuccess != null) { - functionToCallIfSuccess(jsonContent); - } - }, - error : function(xhr, status, error) { - if (errorMsg != null) { - var errorMsgTxt = errorMsg + ", Status: " + status - + ", Error:" + error + ", Msg: " + xhr.responseText - + " (" + url + ")"; - alert("Kommunikationsfehler zum Server: " + errorMsgTxt); - } - } - }); - } - - function doJsonAjaxAsync(getOrPost, url, data, functionToCallIfSuccess,doAsync) { - $.ajax({ - type : getOrPost, - url : url, - dataType : "json", - data : data, - async : doAsync, - success : function(jsonContent) { - if (functionToCallIfSuccess != null) { - functionToCallIfSuccess(jsonContent); - } - }, - error : function(xhr, status, error) { - } - }); - } - - function areYouSure(text1, text2, button, callback) { - $("#sure .sure-1").text(text1); - $("#sure .sure-2").text(text2); - $("#sure .sure-do").text(button).off("click.sure").on("click.sure", - function() { - callback(); - }); - $(this).off("click.sure"); - $.mobile.changePage("#sure"); - } - - function changePriceInActPanel(newprice) { - if (rightchangeprice) { - $("#act-changepricefield").val( - newprice.toFixed(2).replace(".", decpoint)); - } - } - - function actionSelOnNewOrderElem() { - var entry = $("#actiononneworderel").data("entry"); - var count = $("#actiononneworderel").data("newcount"); - - $("#act_count").html(count); - $("#act_name").html(entry.name); - if (entry.option != "") { - $("#act_option").html(" (" + entry.option + ")"); - } - if (rightchangeprice) { - if (entry.changedPrices != "NO") { - $("#act-changepricefield").val(entry.changedPrices); - } - } - - $("#act-select-comment").html(predefinedComments); - $.mobile.changePage("#actiononneworderel"); - - if (count == 1) { - $("#actionneworderconfirm_all").html(W_ACT_CHANGE[lang]); - $("#actionneworderconfirm_one").hide(); - } else { - $("#actionneworderconfirm_all").html(W_ACT_CHANGE_ALL[lang]); - $("#actionneworderconfirm_one").html(W_ACT_CHANGE_ONE[lang]); - $("#actionneworderconfirm_one").show(); - } - - $('#act-select-comment').selectmenu('refresh'); - $("#togocheckbox").checkboxradio('refresh'); - - // start binding - $("#actminusone").off("click").on( - "click", - function(e) { - e.stopImmediatePropagation(); - e.preventDefault(); - reduceOneNewOrderItem(); - actionSelOnNewOrderElem($("#actiononneworderel").data( - "entry"), $("#actiononneworderel").data( - "groupedListIndex")); - }); - - $("#actplusone").off("click").on( - "click", - function(e) { - e.stopImmediatePropagation(); - e.preventDefault(); - increaseOneNewOrderItem(); - actionSelOnNewOrderElem($("#actiononneworderel").data( - "entry"), $("#actiononneworderel").data( - "groupedListIndex")); - }); - - $("#actdel").off("click").on( - "click", - function(e) { - delOneNewOrderItem(); - actionSelOnNewOrderElem($("#actiononneworderel").data( - "entry"), $("#actiononneworderel").data( - "groupedListIndex")); - actionNewOrderConfirm(CHANGE_ONE); - }); - - $("#actionneworderconfirm_all").off("click").on("click", function(e) { - e.stopImmediatePropagation(); - e.preventDefault(); - $("#actiononneworderel").dialog("close"); - actionNewOrderConfirm(CHANGE_ALL); - }); - - $("#actionneworderconfirm_one").off("click").on("click", function(e) { - e.stopImmediatePropagation(); - e.preventDefault(); - $("#actiononneworderel").dialog("close"); - actionNewOrderConfirm(CHANGE_ONE); - }); - - $("#actionnewordercancel").off("click").on("click", function(e) { - binding_neworderelem(); - }); - - $("#discount50").off("click").on("click", function(e) { - e.stopImmediatePropagation(); - e.preventDefault(); - var origPrice = entry.price; - changePriceInActPanel(origPrice / 2); - }); - $("#discount25").off("click").on("click", function(e) { - e.stopImmediatePropagation(); - e.preventDefault(); - var origPrice = entry.price; - changePriceInActPanel(origPrice - origPrice / 4); - }); - $("#discount10").off("click").on("click", function(e) { - e.stopImmediatePropagation(); - e.preventDefault(); - var origPrice = entry.price; - changePriceInActPanel(origPrice - origPrice / 10); - }); - } - - - function actionNewOrderConfirm(howmany) { - // which entry was modified? - var groupEntry = $("#actiononneworderel").data("entry"); - - // now care for option - var option = $("#act-optionfield").val(); - - if (rightchangeprice == 1) { - var changedPrice = $("#act-changepricefield").val().trim(); - changedPrice = changedPrice.replace(",", "."); - if (changedPrice == "") { - changedPrice = "NO"; - } else { - if (!$.isNumeric(changedPrice)) { - alert(W_WRONG_FORMAT[lang]); - return; - } else { - $("#act-changepricefield").val(""); - } - } - } else { - changedPrice = "NO"; - } - - var togo = $("#togocheckbox").prop('checked'); - if (togo) { - togo = 1; - } else { - togo = 0; - } - - - if (howmany == CHANGE_ONE) { - var allIdx = groupEntry.origidxs; - neworders[allIdx[0]].option = option; - neworders[allIdx[0]].changedPrice = changedPrice; - neworders[allIdx[0]].togo = togo; - } else { - var allIdx = groupEntry.origidxs; - for (i = 0; i < allIdx.length; i++) { - var idx = allIdx[i]; - neworders[idx].option = option; - neworders[idx].changedPrice = changedPrice; - neworders[idx].togo = togo; - } - } - $("#act-optionfield").val(""); - - var oldcount = groupEntry.count; - var newcount = $("#actiononneworderel").data("newcount"); - var diff = newcount - oldcount; - - if (diff < 0) { - // less entries - var entriesToRemove = 0 - diff; // now again positiv - var allIdx = groupEntry.origidxs; - var i = 0; - for (i = 0; i < entriesToRemove; i++) { - var anIdxToRemove = allIdx.pop(); - neworders.splice(anIdxToRemove, 1); - } - } - - if (diff > 0) { - // more entries - duplicate an entry - var allIdx = groupEntry.origidxs; - var sampleIdx = allIdx[0]; // take for copy - var prodid = neworders[sampleIdx].prodid; - var changedPrice = neworders[sampleIdx].changedPrice; - var togo = neworders[sampleIdx].togo; - var option = neworders[sampleIdx].option; - var extras = neworders[sampleIdx].extras; - for (i = 0; i < diff; i++) { - addProductToQueueNoGuiUpdate(prodid, option, extras,changedPrice,togo); - } - } - - updateNewOrdersGui(); - } - - function updateNewOrdersGui() { - groupedNewOrders = group(neworders); - updateNewOrdersList(); - } - - function reduceOneNewOrderItem() { - var count = $("#actiononneworderel").data("newcount"); - if (count > 0) { - $("#actiononneworderel").data("newcount", count - 1); - } - } - - function delOneNewOrderItem() { - $("#actiononneworderel").data("newcount", 0); - } - - function increaseOneNewOrderItem() { - var entry = $("#actiononneworderel").data("entry"); - var count = $("#actiononneworderel").data("newcount"); - - $("#actiononneworderel").data("newcount", count + 1); - } - - function group(theSet) { - // create 2d array - var counts = []; - var joinedvals = []; - var name = []; - var price = []; // not used for grouping - var option = []; - var extras = []; - var prodids = []; - var origidxs = []; - var changedPrices = []; - var togos = []; - - var grouped = { - count : counts, - joinedvals : joinedvals, - name : name, - price : price, - option : option, - extras : extras, - prodids : prodids, - origidxs : origidxs, - changedPrices : changedPrices, - togos : togos - }; - - var i = 0; - for (i = 0; i < theSet.length; i++) { - var anEntry = theSet[i]; - var name = anEntry.name; - var price = anEntry.price; - var option = anEntry.option; - var prodid = anEntry.prodid; - var changedPrice = anEntry.changedPrice; - var togo = anEntry.togo; - - var extra = anEntry.extras; - var extrastxt = ""; - // Generate extras name composition - if (extra != null) { - for (var j = 0; j < extra.length; j++) { - extrastxt += "

    + " + toHtml(extra[j].name) + "

    "; - } - } - - var joinedNeedle = name + "-" + option + "-" + extrastxt; - if (changedPrice != "NO") { - joinedNeedle = name + "-" + option + "-" + extrastxt + changedPrice; - } - if (togo == 1) { - joinedNeedle += " - To-Go"; - } - var index = grouped.joinedvals.indexOf(joinedNeedle); - if (index >= 0) { - // element is already in group - grouped.count[index] = grouped.count[index] + 1; - //var idsarr = grouped.ids[index]; - //idsarr[idsarr.length] = id; - idxarr = grouped.origidxs[index] - idxarr[idxarr.length] = i; - grouped.origidxs[index] = idxarr; // append - } else { - // new element to be inserted in grouped - var gLength = grouped.count.length; - grouped.count[gLength] = 1; - grouped.joinedvals[gLength] = joinedNeedle; - grouped.name[gLength] = name; - grouped.price[gLength] = price; - grouped.option[gLength] = option; - grouped.extras[gLength] = extrastxt; - grouped.prodids[gLength] = prodid; - grouped.changedPrices[gLength] = changedPrice; - grouped.togos[gLength] = togo; - grouped.origidxs[gLength] = [ i ]; - } - } - return grouped; - } -