From e3176780d434e9495bd5c4353443b01e6eb8c164 Mon Sep 17 00:00:00 2001 From: Geno Date: Thu, 19 Nov 2020 23:03:20 +0100 Subject: [PATCH] OrderSprinter 1.3.14 --- javaprinter/config.json | 8 +- javaprinter/javaprinter.jar | Bin 60664 -> 60306 bytes printserver/OrderSprinterPrintserver.exe | Bin 260096 -> 261632 bytes spider/install/installer.php | 2 +- webapp/OrderSprinterPrintserver.exe | Bin 260096 -> 261632 bytes webapp/bar.html | 2 +- webapp/bill.html | 2 +- webapp/css/bestformat.css | 2 +- webapp/css/ospage.css | 2 +- webapp/dash.php | 230 ++++++++++++ webapp/elements/dash.js | 147 ++++++++ webapp/elements/product.js | 21 +- webapp/feedback.html | 2 +- webapp/index.html | 6 +- webapp/install.html | 2 +- webapp/install/installer.php | 148 +++++--- webapp/kitchen.html | 2 +- webapp/manager.html | 358 ++++++++++++++----- webapp/paydesk.html | 2 +- webapp/php/3rdparty/Chart.bundle.min.js | 16 + webapp/php/3rdparty/License-Chart-js-MIT.txt | 10 + webapp/php/admin.php | 153 ++++++-- webapp/php/dbutils.php | 1 + webapp/php/printqueue.php | 40 +++ webapp/php/remoteaccess.php | 2 +- webapp/php/reports.php | 95 ++++- webapp/php/shutdown.bat | 2 +- webapp/php/updater.php | 2 +- webapp/php/utilities/basedb.php | 2 + webapp/php/utilities/userrights.php | 5 +- webapp/preferences.html | 2 +- webapp/products.html | 34 +- webapp/rating.html | 2 +- webapp/reports.html | 2 +- webapp/reservation.html | 2 +- webapp/supplydesk.html | 2 +- webapp/waiter.html | 4 +- webapp/waiterdesktop.php | 20 +- webapp/waiterdesktopdefault.txt | 120 +++---- 39 files changed, 1173 insertions(+), 279 deletions(-) create mode 100644 webapp/dash.php create mode 100644 webapp/elements/dash.js create mode 100644 webapp/php/3rdparty/Chart.bundle.min.js create mode 100644 webapp/php/3rdparty/License-Chart-js-MIT.txt diff --git a/javaprinter/config.json b/javaprinter/config.json index ad87635..987090c 100644 --- a/javaprinter/config.json +++ b/javaprinter/config.json @@ -1,4 +1,5 @@ { + "instance" : 1, "vendorid" : "4348", "productid" : "5584", "printersize" : 32, @@ -6,13 +7,6 @@ "baseurl":"http://localhost", "baseusername" : "", "basepass" : "", - "printreceipts" : 1, - "forreceiptprinters" : "1,2,3,4,5,6", - "printclosings" : 1, - "printfoodtickets1" : 1, - "printdrinktickets1" : 1, - "printfoodtickets2" : 1, - "printdrinktickets2" : 1, "escinits" : [ 27, 64, 27, 116, 0 ], "escposts" : [ 29, 86, 66, 10, 27, 64], "useeveryprintdevice" : 1, diff --git a/javaprinter/javaprinter.jar b/javaprinter/javaprinter.jar index d83db7de52fc00dd60e335d69cb8b498ef0d717c..85c22a5f6a2cbf613c8fb24549f6cd57d06fffea 100644 GIT binary patch delta 7931 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 delta 8168 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 V18DZ3pk5SUx5tJ1VDT@w{{c~ThA;pC diff --git a/printserver/OrderSprinterPrintserver.exe b/printserver/OrderSprinterPrintserver.exe index 7e4d0868caf49439b062749f1bc8e2bb6f7dc554..9adef074b6f59a67816f02773ce686af88cfb0b2 100644 GIT binary patch delta 51155 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≈pz;4+HKMyXHUBK6zl{XCNOD>X`^ zvPAiZvPIde6qQev6H23}&-1kBfaj>^S5Hu_Rxei->xT%lymz zFZ+xBVgFbDU|?!CkPh4s$OP^T^adUcJR5j3@P6Rqz(`;;5Hu={S;hk64x`K9c!00t zq5f<&xP_AqEl~$H_jt&j)RbK9jsn$t%w&pDXWqZc^`5cdIX`pQuMwN%Lx_v<)d_yl8j!yvjA4x(M~A=(Y2=sKL}WvmA-MDKxGv=`>1 z>tQ+C2fgS9*oyYUbLd7mj1IssnuSwn4zwLO-w)v(O^n?OX-wP)i_uN60=*w{=w{e~ zJ^&hC!Fmva=oXN3;#`a4l<34upJA^V;J5LU@+hon(S{qG*0HLq+gg=rzs9<~ePvto%8pDY`y;Q(HXq@Wy?;)Jq_%kB#;rUq$0iD{ zZo(%Sb*$>{YG2#aj*)Y^Jh!vWkMkyNqO|bNL@e<>V*43Ur_-I|JQPx{Z+Ru9+lsf<0u~LQ22lx$A;qwB& zSqg?`;0fI-JT&QM7KRx+{u-ZC$QJQP?=l-_nCO$5vYhI{rCt@6W%T{K{OY+KWecXUrFtLS>ggS#HqK z@W~Tr;yKOG^e|8&YwBJ35-i4Qx5r_+9+dIQ4`VOZ7cTgLe*@cU)!zX;$Bb(L delta 49631 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 HSrZ&CLKd9OHyh$a03=Q^9s0}1o*n3 zI^k{|7X5C?Z|#h@WN+?>LORSB@SxT!i?!mG6|776#Ge*vX zyIY7~gReT={McQJt$lo{(Vz`q`}R^J;oOL&MB_Bl1^%KMxPRx+KN0^19bJ6En*U-b zgYm=P3?!YcfOIDA;m-}h4Kys+A;4;!Jyzq%JP=<9+FE@BxWEi+ghv_H0It*qF>Geo z!EhqOPKGlX&Sp3l@EL6($HD1I!~Elb{}Q9QHwV{ zZ*GG4U2}_eWz&a%*EiK@TfzCv+@}4x=}WUyeAZ+JCW^0`!hvR#stk~{kzQmlEEVVw zfnmb}+qKlNQGu5<+7}W&fjOV*gwJ67)WFA7%7OTZVfTY|^soyx5c4TrPi#E%XC_u`i#thfO9j40WQj{ z)H?O04A0993v}w&Wae2N;`YpZ%jppJWN;**-Je+}I`uzfa@K79Lx>l`+zM-v9&M%? z)G-{=e6e-9ek0CBwrhJdZ?d*)(*R%64ru<3^)bSF9B|vf2GnwP^BQBjHlItShLr@z zh-~vg!AYXKc|mZywyODgya;AZb5cxqSa2W<4rJEh%sHAlM>FSm<}7B;V&-huZfouc zt|8q)2?jLa#KE!xTvADZtO*Nr$m@-ZwliWNE~>Bq+A5obl5b>iU> zlOo%-XGg3tPB#u{zACcFczwi$T8;Q*#Jb2AhBoq+$X4ANi3v*9hWqbMhMO2}VW^qo zp%XR_9(hK1oj7UaFC#VPnZ~bC_L`Buh0U8rK7%9RUyodgE_)s@Z0>;ORvgZa%pvx# zKzySII?f1h5)~bk8g;<$6wQoJ1HRBWsAC%&eIYVi9NF!mzgOIg2^`ByRjD(2UVtb=Lc24>yBtS#E##=KXuM*q*4&r5C*2X&N`-ogWk#`nbdA2P<>J!0;`p(5iB!@VHgo@N<|$$`*JCrsyNvNodUV|IGD@6VFe0YG z@trVD_PkEnXi9gUf;Ase^1cL@*XM^ET1UofMcSd zBart{_7=lw7MF~#EB{8nYWxtu>lkhTd{5jqepva(;@a7)cWY+aL)& zKqEu}AJO;#dqzzILWz*HL{Pu|+Wv#P$^K^Mo0+|xdo;bBxi!da$s;K|M6SfCfKsX^ zlcmmq>c=`hMW)G4vX|^5ljEIUCfPAw!S)%-XUQB1K{_&NkV(=+Q`mtDSu#gL1$7_| zGD(_bhRl*V67Hn-q(LT0lgyA=GDpG$YVVi=g9=H~Br{}|%#kpWI*OdM~k~GN-nI&^1Os4jvK_*F)%#c|U@WvAO-Xaastakcl z$ZQoQITAun#mSKKD*gz|JU`=p0r#Y^%+n$~ZEZ>Oiqs8Hu~;qEi}S^H@g4EF_>EZY zUFO~9eb;-+d&zstTOgH7)1;+Rm-My7e09DK-&x;P-#>c7g>tKWM(&fZ%EkW4 z{(Apx{~|yBy3fDgf588jUsbA6o%aGfhDkfDLN~xG z=tk&7UxXes1?SK-^rI#)oFd!=VVr^53~{srJZXl{631t0bZf7){@BEyNPX`aUQ)tG zD=@{mq)ASZ<5j%T4cJGtzC#!dV2aD0XnBSc0^C2TW2|Q+-;ep`eFDV`;*16N59gzp z&%^7j`M8&|66?ffUQ~$ly}o1YxGV~wjuBo`i!imXZ05OqyK*<)fx_z8%MJU?UjA|6 z#CWW+HW6-$g&JawHKAG~ZiM198^WQchMFcL(KsWLh&I_>2l+x@DiMm{nw*xUYnoRs z2|phT;}%bZqAsx-msqV!Y>G=P<`S!OVu{-xIPTIg;S!64t?q-o%=*^mW0vC>+y)VG z8%4xz7!kK|L|g`9&F$fZ_u%8v$=`PF5toy0+#~tbx>6M z|5qnjYrl4cKPuS29OaJ-*4$nmvNs;%nXxCWirhU3R5)SJ2p?)3^>@P3!4}@wj<9c~{ zxir${4#}(Qf%Ff7bZ#Uvl86j+>#fVY!T$9!pDubONeGy?th=xAsJ-|a|CB?Gb=M%T z4(!Tv{-OyM5An3D;m6APuxPe5gmZ2)*kV61n#U2u~Rz>cu=AE=K4ZvX%Q diff --git a/spider/install/installer.php b/spider/install/installer.php index 3d59cb4..e3d8cf3 100644 --- a/spider/install/installer.php +++ b/spider/install/installer.php @@ -85,7 +85,7 @@ class Installer { } Database::dropTables($pdo); Database::createEmptyTables($pdo, $prefix); - Database::setVersion($pdo,$prefix,"1.3.13"); + Database::setVersion($pdo,$prefix,"1.3.14"); Database::setAccessPassword($pdo,$prefix,$adminpass); Database::setRefreshRate($pdo,$prefix,"5"); // default: 5 times per hour return array("status" => "OK","msg" => "Installation successful"); diff --git a/webapp/OrderSprinterPrintserver.exe b/webapp/OrderSprinterPrintserver.exe index 7e4d0868caf49439b062749f1bc8e2bb6f7dc554..9adef074b6f59a67816f02773ce686af88cfb0b2 100644 GIT binary patch delta 51155 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≈pz;4+HKMyXHUBK6zl{XCNOD>X`^ zvPAiZvPIde6qQev6H23}&-1kBfaj>^S5Hu_Rxei->xT%lymz zFZ+xBVgFbDU|?!CkPh4s$OP^T^adUcJR5j3@P6Rqz(`;;5Hu={S;hk64x`K9c!00t zq5f<&xP_AqEl~$H_jt&j)RbK9jsn$t%w&pDXWqZc^`5cdIX`pQuMwN%Lx_v<)d_yl8j!yvjA4x(M~A=(Y2=sKL}WvmA-MDKxGv=`>1 z>tQ+C2fgS9*oyYUbLd7mj1IssnuSwn4zwLO-w)v(O^n?OX-wP)i_uN60=*w{=w{e~ zJ^&hC!Fmva=oXN3;#`a4l<34upJA^V;J5LU@+hon(S{qG*0HLq+gg=rzs9<~ePvto%8pDY`y;Q(HXq@Wy?;)Jq_%kB#;rUq$0iD{ zZo(%Sb*$>{YG2#aj*)Y^Jh!vWkMkyNqO|bNL@e<>V*43Ur_-I|JQPx{Z+Ru9+lsf<0u~LQ22lx$A;qwB& zSqg?`;0fI-JT&QM7KRx+{u-ZC$QJQP?=l-_nCO$5vYhI{rCt@6W%T{K{OY+KWecXUrFtLS>ggS#HqK z@W~Tr;yKOG^e|8&YwBJ35-i4Qx5r_+9+dIQ4`VOZ7cTgLe*@cU)!zX;$Bb(L delta 49631 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 HSrZ&CLKd9OHyh$a03=Q^9s0}1o*n3 zI^k{|7X5C?Z|#h@WN+?>LORSB@SxT!i?!mG6|776#Ge*vX zyIY7~gReT={McQJt$lo{(Vz`q`}R^J;oOL&MB_Bl1^%KMxPRx+KN0^19bJ6En*U-b zgYm=P3?!YcfOIDA;m-}h4Kys+A;4;!Jyzq%JP=<9+FE@BxWEi+ghv_H0It*qF>Geo z!EhqOPKGlX&Sp3l@EL6($HD1I!~Elb{}Q9QHwV{ zZ*GG4U2}_eWz&a%*EiK@TfzCv+@}4x=}WUyeAZ+JCW^0`!hvR#stk~{kzQmlEEVVw zfnmb}+qKlNQGu5<+7}W&fjOV*gwJ67)WFA7%7OTZVfTY|^soyx5c4TrPi#E%XC_u`i#thfO9j40WQj{ z)H?O04A0993v}w&Wae2N;`YpZ%jppJWN;**-Je+}I`uzfa@K79Lx>l`+zM-v9&M%? z)G-{=e6e-9ek0CBwrhJdZ?d*)(*R%64ru<3^)bSF9B|vf2GnwP^BQBjHlItShLr@z zh-~vg!AYXKc|mZywyODgya;AZb5cxqSa2W<4rJEh%sHAlM>FSm<}7B;V&-huZfouc zt|8q)2?jLa#KE!xTvADZtO*Nr$m@-ZwliWNE~>Bq+A5obl5b>iU> zlOo%-XGg3tPB#u{zACcFczwi$T8;Q*#Jb2AhBoq+$X4ANi3v*9hWqbMhMO2}VW^qo zp%XR_9(hK1oj7UaFC#VPnZ~bC_L`Buh0U8rK7%9RUyodgE_)s@Z0>;ORvgZa%pvx# zKzySII?f1h5)~bk8g;<$6wQoJ1HRBWsAC%&eIYVi9NF!mzgOIg2^`ByRjD(2UVtb=Lc24>yBtS#E##=KXuM*q*4&r5C*2X&N`-ogWk#`nbdA2P<>J!0;`p(5iB!@VHgo@N<|$$`*JCrsyNvNodUV|IGD@6VFe0YG z@trVD_PkEnXi9gUf;Ase^1cL@*XM^ET1UofMcSd zBart{_7=lw7MF~#EB{8nYWxtu>lkhTd{5jqepva(;@a7)cWY+aL)& zKqEu}AJO;#dqzzILWz*HL{Pu|+Wv#P$^K^Mo0+|xdo;bBxi!da$s;K|M6SfCfKsX^ zlcmmq>c=`hMW)G4vX|^5ljEIUCfPAw!S)%-XUQB1K{_&NkV(=+Q`mtDSu#gL1$7_| zGD(_bhRl*V67Hn-q(LT0lgyA=GDpG$YVVi=g9=H~Br{}|%#kpWI*OdM~k~GN-nI&^1Os4jvK_*F)%#c|U@WvAO-Xaastakcl z$ZQoQITAun#mSKKD*gz|JU`=p0r#Y^%+n$~ZEZ>Oiqs8Hu~;qEi}S^H@g4EF_>EZY zUFO~9eb;-+d&zstTOgH7)1;+Rm-My7e09DK-&x;P-#>c7g>tKWM(&fZ%EkW4 z{(Apx{~|yBy3fDgf588jUsbA6o%aGfhDkfDLN~xG z=tk&7UxXes1?SK-^rI#)oFd!=VVr^53~{srJZXl{631t0bZf7){@BEyNPX`aUQ)tG zD=@{mq)ASZ<5j%T4cJGtzC#!dV2aD0XnBSc0^C2TW2|Q+-;ep`eFDV`;*16N59gzp z&%^7j`M8&|66?ffUQ~$ly}o1YxGV~wjuBo`i!imXZ05OqyK*<)fx_z8%MJU?UjA|6 z#CWW+HW6-$g&JawHKAG~ZiM198^WQchMFcL(KsWLh&I_>2l+x@DiMm{nw*xUYnoRs z2|phT;}%bZqAsx-msqV!Y>G=P<`S!OVu{-xIPTIg;S!64t?q-o%=*^mW0vC>+y)VG z8%4xz7!kK|L|g`9&F$fZ_u%8v$=`PF5toy0+#~tbx>6M z|5qnjYrl4cKPuS29OaJ-*4$nmvNs;%nXxCWirhU3R5)SJ2p?)3^>@P3!4}@wj<9c~{ zxir${4#}(Qf%Ff7bZ#Uvl86j+>#fVY!T$9!pDubONeGy?th=xAsJ-|a|CB?Gb=M%T z4(!Tv{-OyM5An3D;m6APuxPe5gmZ2)*kV61n#U2u~Rz>cu=AE=K4ZvX%Q diff --git a/webapp/bar.html b/webapp/bar.html index bd38b64..ec8d1fd 100644 --- a/webapp/bar.html +++ b/webapp/bar.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/bill.html b/webapp/bill.html index 36247fc..7b2d41a 100644 --- a/webapp/bill.html +++ b/webapp/bill.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/css/bestformat.css b/webapp/css/bestformat.css index 140edb4..a2a7b51 100644 --- a/webapp/css/bestformat.css +++ b/webapp/css/bestformat.css @@ -1 +1 @@ -@charset "UTF-8";table.viewtable{width:100%;display:block;table-layout:fixed}table.viewtable th{background:#7abe5f;font-size:10pt;border-bottom:1px solid rgba(255,255,255,.7);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);-o-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.2);padding:6px 10px}table.viewtable td{background:#eed33f;font-size:8pt;border-bottom:1px solid #fafafa;border-bottom:1px solid rgba(255,255,255,.5);padding:6px 10px;color:rgba(0,0,0,255)}table.viewtable th.complete{background:#17370b;color:rgba(255,255,255,0)}table.viewtable th.incomplete{background:#9c9224;color:rgba(0,0,0,255)}table.viewtable td.complete{background:#78bb5e;color:rgba(0,0,0,255)}table.viewtable td.incomplete{background:#eed33f;color:rgba(0,0,0,255)}table.viewtable tr:last-child td{border-bottom:0}table.viewtable tr:hover td{background-color:#faf}table.receipttable td{border:solid black 0;padding:3px;text-align:left;vertical-align:bottom}table.receipttable td.price{border:solid black 0;padding:3px;text-align:right;vertical-align:bottom}table.receipttable td.restinfo{text-align:center;vertical-align:bottom}table.receipttable td.declaration{font-weight:bold;text-align:right}table.gridtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:2px;border-color:#666;border-collapse:collapse;width:100%}table.gridtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold}table.gridtable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#fff}table.linetable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:2px;border-color:#666;border-collapse:collapse;width:100%}table.linetable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold}table.linetable td{border-width:1px;padding:8px;border-style:solid;border-color:#666}table.linetable tr{background:#fff}table.linetable tr:hover{background-color:#faf}table.reporttable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border:solid black 2px;border-color:#666;border-collapse:collapse;width:100%;border-spacing:10px}table.reporttable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold}table.reporttable td{border:solid black 0;padding:8px;text-align:left;vertical-align:top}table.reporttable tr{background:#d6f8be}table.reporttable tr:hover{background-color:#faf}table.commandtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:100%}table.commandtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#e4d662;font-weight:bold}table.commandtable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#fff;font-weight:bold}table.navitable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:100%}table.navitable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#d09696;font-weight:bold}table.navitable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c08f8f}table.infotable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:100%}table.infotable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold}table.infotable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff}table.billtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#000;border:solid black 2px;border-color:#000;border-collapse:collapse;width:100%;border-spacing:10px}table.billtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold;text-align:left}table.billtable #pricecolheader{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold;text-align:right}table.billtable td{border:solid black 0;padding:8px;background-color:#fff;text-align:left}table.billtable #pricecol{border:solid black 0;padding:8px;background-color:#fff;text-align:right}table.billtable #totalprice{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold;text-align:center}.grid_right{text-align:right;font-style:italic}.userinfo{font-style:italic}.counting{position:absolute;top:0;bottom:0;right:90px;width:80px;border:0;background-color:rgb(246,246,246,0.0) !important}.counting:hover{background-color:#0f0}.goup{position:absolute;top:5px;bottom:0;right:90px;border:0;background-color:#f6f6f6 !important}.osroom-1{height:40px !important}.osroom-2{height:70px !important}.ostable-1{height:40px !important}.ostable-2{height:70px !important}.osprod-1{height:40px !important}.osprod-2{height:70px !important}.osbigbtn.ui-btn{height:40px !important;text-align:center;line-height:30px}table.prodtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:70%}table.prodtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:OrangeRed;font-weight:bold}table.prodtable .prodtype td{background-color:DarkGreen}table.prodtable tr>td:first-child{text-align:left}table.prodtable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:LimeGreen;text-align:right;font-weight:bold;white-space:nowrap;max-width:50%;word-break:break-all}table.prodtable input{line-height:30px;background-color:PaleGreen;font-weight:bold}table.prodtable select{background-color:PaleGreen;font-weight:bold;width:100%}table.prodtable option.yes{background-color:green}table.prodtable option.no{background-color:red}table.prodtable .prodpriceA{width:50px;text-align:right}table.prodtable .prodpriceB{width:50px;text-align:right}table.prodtable .prodpriceC{width:50px;text-align:right}.prodinfo,.srinfo{position:absolute;top:0;bottom:0;right:20px;width:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.waitinfo{position:absolute;top:0;bottom:0;right:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.waitinfo img{position:absolute;top:0;bottom:0;right:20px;height:35px;border:0;background-color:rgb(246,246,246,0.0) !important}.typehigher{text-align:right;background-color:rgb(246,246,246,0.0) !important}.typetop{text-align:left;background-color:rgb(246,246,246,0.0) !important}@media all and (min-width:0){.typetop img{width:100px}.typehigher img{width:100px}}@media all and (min-width:20em){.typetop img{width:120px}.typehigher img{width:120px}}@media all and (min-width:40em){.typetop img{width:160px}.typehigher img{width:160px}}.prodminus,.srminus{position:absolute;top:0;bottom:0;right:130px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodcount,.srprodcount{position:absolute;top:10px;bottom:0;right:95px;width:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodplus,.srplus{position:absolute;top:0;bottom:0;right:60px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodplus img{width:30px}.prodminus img{width:30px}.srplus img{width:30px}.srminus img{width:30px}.srminus:hover,.prodminus:hover{height:40px;width:30px;background-color:#0f0}.srplus:hover,.prodplus:hover{height:40px;width:30px;background-color:#0f0}.prodinfo img:hover,.srinfo img:hover{background-color:#0f0}.tbusy{color:black !important;font-weight:bold;font-style:italic}.tempty{color:gray !important;color:gray !important;font-weight:normal}.overlaytxt{background:linear-gradient(red,yellow);color:black;font-weight:bold;border-radius:25px;border:3px solid #000;padding:8px}.overlayfull{background:linear-gradient(red,yellow)}.overlayempty{background:linear-gradient(green,yellow)}.overlaysize-0{font-size:7px}.overlaysize-1{font-size:12px}.overlaysize-2{font-size:15px}.selectedtable{border:6px solid red}.prodreadyicon{position:absolute;top:0;bottom:0;right:70px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodreadyicon:hover{height:40px;background-color:#0f0}.prodreadycount{position:absolute;top:10px;bottom:0;right:40px;width:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.changetableprodlist{width:100%;background-color:LightCyan;resize:none}.usersums{border:solid black 3px;background-color:#ffe8bc}.usersums td{border:solid black 1px;padding:3px;text-align:right;vertical-align:bottom}.taxessums{border:solid black 3px;background-color:#f0e8bc}.taxessums td{border:solid black 1px;padding:3px;text-align:right;vertical-align:bottom}.scrolllistview{height:150px;top:10px;overflow:auto;background-color:blanchedalmond;-webkit-overflow-scrolling:touch}.scrolllistview li{height:15px;vertical-align:middle}.selecteditem{color:black;font-weight:bold}.unselecteditem{color:gray}.printerstatus{height:20px}.warning{color:red}.whiteinput[type=text]{color:black;background-color:white}.customerlistbox{background-color:white;border:2px solid #aaa}.genConfigEl[type=text],.genConfigEl[type=password]{border:1px solid #666;background-color:#fff;font-family:"Courier New",Courier,monospace}#userlabel_username[type=text],#userlabel_password[type=text],.userlabel_newpassword[type=text],#remarkfield[type=text],#oldpass[type=password],#newpass[type=password]{border:1px solid #666;background-color:#fff}.reservationinputfield[type=text]{border:1px solid #666;background-color:#fff}textarea.genConfigEl{font-family:"Courier New",Courier,monospace} \ No newline at end of file +@charset "UTF-8";table.viewtable{width:100%;display:block;table-layout:fixed}table.viewtable th{background:#7abe5f;font-size:10pt;border-bottom:1px solid rgba(255,255,255,.7);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);-moz-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);-o-box-shadow:inset 0 1px 0 rgba(255,255,255,.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.2);padding:6px 10px}table.viewtable td{background:#eed33f;font-size:8pt;border-bottom:1px solid #fafafa;border-bottom:1px solid rgba(255,255,255,.5);padding:6px 10px;color:rgba(0,0,0,255)}table.viewtable th.complete{background:#17370b;color:rgba(255,255,255,0)}table.viewtable th.incomplete{background:#9c9224;color:rgba(0,0,0,255)}table.viewtable td.complete{background:#78bb5e;color:rgba(0,0,0,255)}table.viewtable td.incomplete{background:#eed33f;color:rgba(0,0,0,255)}table.viewtable tr:last-child td{border-bottom:0}table.viewtable tr:hover td{background-color:#faf}table.receipttable td{border:solid black 0;padding:3px;text-align:left;vertical-align:bottom}table.receipttable td.price{border:solid black 0;padding:3px;text-align:right;vertical-align:bottom}table.receipttable td.restinfo{text-align:center;vertical-align:bottom}table.receipttable td.declaration{font-weight:bold;text-align:right}table.gridtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:3px;border-color:#666;border-collapse:collapse;width:100%}table.gridtable th{border-width:4px;padding:8px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold;text-align:center}table.gridtable td{border-width:2px;padding:8px;border-style:solid;border-color:#666;background-color:#fff;text-align:center}table.gridtable td.rowname{font-weight:bold;text-align:left}table.gridtable td:hover{background-color:#faf}table.gridtable td.rowname:hover{background-color:#fff}table.linetable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:2px;border-color:#666;border-collapse:collapse;width:100%}table.linetable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold}table.linetable td{border-width:1px;padding:8px;border-style:solid;border-color:#666}table.linetable tr{background:#fff}table.linetable tr:hover{background-color:#faf}table.reporttable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border:solid black 2px;border-color:#666;border-collapse:collapse;width:100%;border-spacing:10px}table.reporttable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#dedede;font-weight:bold}table.reporttable td{border:solid black 0;padding:8px;text-align:left;vertical-align:top}table.reporttable tr{background:#d6f8be}table.reporttable tr:hover{background-color:#faf}table.commandtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:100%}table.commandtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#e4d662;font-weight:bold}table.commandtable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#fff;font-weight:bold}table.navitable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:100%}table.navitable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#d09696;font-weight:bold}table.navitable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c08f8f}table.infotable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:100%}table.infotable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold}table.infotable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff}table.billtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#000;border:solid black 2px;border-color:#000;border-collapse:collapse;width:100%;border-spacing:10px}table.billtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold;text-align:left}table.billtable #pricecolheader{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold;text-align:right}table.billtable td{border:solid black 0;padding:8px;background-color:#fff;text-align:left}table.billtable #pricecol{border:solid black 0;padding:8px;background-color:#fff;text-align:right}table.billtable #totalprice{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:#c3c3ff;font-weight:bold;text-align:center}.grid_right{text-align:right;font-style:italic}.userinfo{font-style:italic}.counting{position:absolute;top:0;bottom:0;right:90px;width:80px;border:0;background-color:rgb(246,246,246,0.0) !important}.counting:hover{background-color:#0f0}.goup{position:absolute;top:5px;bottom:0;right:90px;border:0;background-color:#f6f6f6 !important}.osroom-1{height:40px !important}.osroom-2{height:70px !important}.ostable-1{height:40px !important}.ostable-2{height:70px !important}.osprod-1{height:40px !important}.osprod-2{height:70px !important}.osbigbtn.ui-btn{height:40px !important;text-align:center;line-height:30px}table.prodtable{font-family:verdana,arial,sans-serif;font-size:20px;color:#333;border-width:1px;border-color:#666;border-collapse:collapse;width:70%}table.prodtable th{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:OrangeRed;font-weight:bold}table.prodtable .prodtype td{background-color:DarkGreen}table.prodtable tr>td:first-child{text-align:left}table.prodtable td{border-width:1px;padding:8px;border-style:solid;border-color:#666;background-color:LimeGreen;text-align:right;font-weight:bold;white-space:nowrap;max-width:50%;word-break:break-all}table.prodtable input{line-height:30px;background-color:PaleGreen;font-weight:bold}table.prodtable select{background-color:PaleGreen;font-weight:bold;width:100%}table.prodtable option.yes{background-color:green}table.prodtable option.no{background-color:red}table.prodtable .prodpriceA{width:50px;text-align:right}table.prodtable .prodpriceB{width:50px;text-align:right}table.prodtable .prodpriceC{width:50px;text-align:right}.prodinfo,.srinfo{position:absolute;top:0;bottom:0;right:20px;width:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.waitinfo{position:absolute;top:0;bottom:0;right:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.waitinfo img{position:absolute;top:0;bottom:0;right:20px;height:35px;border:0;background-color:rgb(246,246,246,0.0) !important}.typehigher{text-align:right;background-color:rgb(246,246,246,0.0) !important}.typetop{text-align:left;background-color:rgb(246,246,246,0.0) !important}@media all and (min-width:0){.typetop img{width:100px}.typehigher img{width:100px}}@media all and (min-width:20em){.typetop img{width:120px}.typehigher img{width:120px}}@media all and (min-width:40em){.typetop img{width:160px}.typehigher img{width:160px}}.prodminus,.srminus{position:absolute;top:0;bottom:0;right:130px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodcount,.srprodcount{position:absolute;top:10px;bottom:0;right:95px;width:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodplus,.srplus{position:absolute;top:0;bottom:0;right:60px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodplus img{width:30px}.prodminus img{width:30px}.srplus img{width:30px}.srminus img{width:30px}.srminus:hover,.prodminus:hover{height:40px;width:30px;background-color:#0f0}.srplus:hover,.prodplus:hover{height:40px;width:30px;background-color:#0f0}.prodinfo img:hover,.srinfo img:hover{background-color:#0f0}.tbusy{color:black !important;font-weight:bold;font-style:italic}.tempty{color:gray !important;color:gray !important;font-weight:normal}.overlaytxt{background:linear-gradient(red,yellow);color:black;font-weight:bold;border-radius:25px;border:3px solid #000;padding:8px}.overlayfull{background:linear-gradient(red,yellow)}.overlayempty{background:linear-gradient(green,yellow)}.overlaysize-0{font-size:7px}.overlaysize-1{font-size:12px}.overlaysize-2{font-size:15px}.selectedtable{border:6px solid red}.prodreadyicon{position:absolute;top:0;bottom:0;right:70px;height:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.prodreadyicon:hover{height:40px;background-color:#0f0}.prodreadycount{position:absolute;top:10px;bottom:0;right:40px;width:20px;border:0;background-color:rgb(246,246,246,0.0) !important}.changetableprodlist{width:100%;background-color:LightCyan;resize:none}.usersums{border:solid black 3px;background-color:#ffe8bc}.usersums td{border:solid black 1px;padding:3px;text-align:right;vertical-align:bottom}.taxessums{border:solid black 3px;background-color:#f0e8bc}.taxessums td{border:solid black 1px;padding:3px;text-align:right;vertical-align:bottom}.scrolllistview{height:150px;top:10px;overflow:auto;background-color:blanchedalmond;-webkit-overflow-scrolling:touch}.scrolllistview li{height:15px;vertical-align:middle}.selecteditem{color:black;font-weight:bold}.unselecteditem{color:gray}.printerstatus{height:20px}.warning{color:red}.whiteinput[type=text]{color:black;background-color:white}.customerlistbox{background-color:white;border:2px solid #aaa}.genConfigEl[type=text],.genConfigEl[type=password]{border:1px solid #666;background-color:#fff;font-family:"Courier New",Courier,monospace}#userlabel_username[type=text],#userlabel_password[type=text],.userlabel_newpassword[type=text],#remarkfield[type=text],#oldpass[type=password],#newpass[type=password]{border:1px solid #666;background-color:#fff}.reservationinputfield[type=text]{border:1px solid #666;background-color:#fff}textarea.genConfigEl{font-family:"Courier New",Courier,monospace} \ No newline at end of file diff --git a/webapp/css/ospage.css b/webapp/css/ospage.css index 8d5efc1..40f685e 100644 --- a/webapp/css/ospage.css +++ b/webapp/css/ospage.css @@ -1 +1 @@ -html{overflow-y:scroll}.ospage{font-family:Helvetica,Arial,Verdana,sans-serif;display:-webkit-flex;display:flex;-webkit-flex-flow:row wrap;flex-flow:row wrap;text-align:center;color:white}.ospage>*{padding:10px;flex:100%}.main{text-align:left;background:cornflowerblue;-webkit-flex:5;flex:5;-webkit-flex-flow:nowrap;flex-flow:nowrap}.header{background:black}.footer{display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-flex-wrap:row nowrap;flex-flow:row nowrap;background:black;-webkit-align-items:stretch;align-items:stretch}#loggedinuser{text-align:left;width:50%}#versioninfo{text-align:right;color:white;width:50%}.aside1{background:moccasin;color:black;width:0;-webkit-flex:2;flex:2}.aside2{background:violet;-webkit-flex:1;flex:1}@media all and (min-width:400px){.aside1{order:1}.main{order:2}.aside2{order:3}.ordereditem-sentcontainer{order:4}.waitermsg{order:5}.footer{order:6}}.input100{width:100%;height:50px;font-weight:bold;text-align:center}.input90{width:89%;height:50px;font-weight:bold;text-align:center}.input50{width:49%;height:50px;font-weight:bold;text-align:center}.area10{width:9%;height:50px;text-align:center}.inputwhite[type="text"]{background-color:white}.inputwhite[type="submit"]{background-color:white}.inputgreen[type="text"]{background-color:#0f0}.inputgreen[type="submit"]{background-color:#0f0}.inputblue[type="text"]{background-color:#8ee5ee}.inputblue[type="submit"]{background-color:#8ee5ee}.infoarea{width:49%;background-color:#afa;color:black;font-weight:bold;font-size:20px;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;align-items:center;border:2px solid red}.mainmenuchoice{list-style-type:none;padding:0;border:1px solid #ddd}.mainmenuitem{padding:8px 16px;border-bottom:1px solid #ddd;background-color:#fff6b5;height:40px;font-size:16px;font-weight:bold}.mainmenuitem:hover{background-color:#eed33f}.commentitem:last-child{border-bottom:0}.commentitem{padding:8px 16px;border-bottom:1px solid #ddd;background-color:#fff6b5;height:40px;font-size:16px;font-weight:bold}.commentitem:last-child{border-bottom:0}#loggedinuser{color:black}.buttonarea{box-shadow:10px 10px 5px #888} \ No newline at end of file +html{overflow-y:scroll}.ospage{font-family:Helvetica,Arial,Verdana,sans-serif;display:-webkit-flex;display:flex;-webkit-flex-flow:row wrap;flex-flow:row wrap;text-align:center;color:white}.ospage>*{padding:10px;flex:100%}.tableospage{width:100%;height:40px;background-color:black;color:white;text-align:center;vertical-align:middle;display:inline-table}.main{text-align:left;background:cornflowerblue;-webkit-flex:5;flex:5;-webkit-flex-flow:nowrap;flex-flow:nowrap}.tablemain{text-align:left;background:cornflowerblue;vertical-align:top;width:65%}#rightsidearea{vertical-align:top;background:violet;color:black;width:15%}.header{background:black;font-weight:bold;display:inline-table;vertical-align:middle;padding:10px}.footer{display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-flex-wrap:row nowrap;flex-flow:row nowrap;background:black;-webkit-align-items:stretch;align-items:stretch}.tablefooter{padding:10px;background-color:black;vertical-align:middle;display:inline-table;width:100%;height:15px}.tabledashheader{padding:10px;background-color:black;vertical-align:middle;display:inline-table;width:100%;height:15px;text-align:center}.dashheader{color:white;text-align:center;font-weight:bold}#loggedinuser{float:left;color:white;background-color:black}#versioninfo{color:white;float:right;background-color:black}.floatright{float:right}.aside1{background:moccasin;color:black;width:0;-webkit-flex:2;flex:2}.tableaside1{background:moccasin;color:black;width:20%;vertical-align:top}.tablepanelheader{width:100%;height:40px;color:white;background-color:black;text-align:center;vertical-align:middle}.aside2{background:violet;-webkit-flex:1;flex:1}@media all and (min-width:400px){.aside1{order:1}.main{order:2}.aside2{order:3}.ordereditem-sentcontainer{order:4}.waitermsg{order:5}.footer{order:6}}.input100{width:100%;height:50px;font-weight:bold;text-align:center}.input90{width:89%;height:50px;font-weight:bold;text-align:center}.input50{width:49%;height:50px;font-weight:bold;text-align:center}.area10{width:9%;height:50px;text-align:center}.inputwhite[type="text"]{background-color:white}.inputwhite[type="submit"]{background-color:white}.inputgreen[type="text"]{background-color:#0f0}.inputgreen[type="submit"]{background-color:#0f0}.inputblue[type="text"]{background-color:#8ee5ee}.inputblue[type="submit"]{background-color:#8ee5ee}.infoarea{width:49%;background-color:#afa;color:black;font-weight:bold;font-size:20px;display:-webkit-flex;display:flex;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;align-items:center;border:2px solid red}.mainmenuchoice{list-style-type:none;padding:0;border:1px solid #ddd}.mainmenuitem{padding:8px 16px;border-bottom:1px solid #ddd;background-color:#fff6b5;height:40px;font-size:16px;font-weight:bold}.mainmenuitem:hover{background-color:#eed33f}.commentitem:last-child{border-bottom:0}.commentitem{padding:8px 16px;border-bottom:1px solid #ddd;background-color:#fff6b5;height:40px;font-size:16px;font-weight:bold}.commentitem:last-child{border-bottom:0}.buttonarea{box-shadow:10px 10px 5px #888} \ No newline at end of file diff --git a/webapp/dash.php b/webapp/dash.php new file mode 100644 index 0000000..0359eed --- /dev/null +++ b/webapp/dash.php @@ -0,0 +1,230 @@ + + + Ansicht Dashboard + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Dashboard + +
+ +
+ + + + + +

+

+

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

'; + + '

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

' + this.name + '

' - + "

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

' + this.name + '

' + + + '' + + '

' + + '

'; return txt; }, diff --git a/webapp/feedback.html b/webapp/feedback.html index c4d5e48..eecb832 100644 --- a/webapp/feedback.html +++ b/webapp/feedback.html @@ -4,7 +4,7 @@ - + diff --git a/webapp/index.html b/webapp/index.html index 9c68b60..48d81ba 100644 --- a/webapp/index.html +++ b/webapp/index.html @@ -9,8 +9,8 @@ - - + + @@ -206,7 +206,7 @@ function handleResultOfInstallCheck(is_installed) { if (is_installed == "Yes") { useInstallation(); } else { - setTimeout(function(){document.location.href = "install.html?v=1.3.13"},500); + setTimeout(function(){document.location.href = "install.html?v=1.3.14"},500); } } diff --git a/webapp/install.html b/webapp/install.html index 45f06fa..39e9ee5 100644 --- a/webapp/install.html +++ b/webapp/install.html @@ -725,7 +725,7 @@ $(document).ready(function() {   - +   diff --git a/webapp/install/installer.php b/webapp/install/installer.php index 81ce562..c5565df 100644 --- a/webapp/install/installer.php +++ b/webapp/install/installer.php @@ -1171,12 +1171,12 @@ return false; } private function execSql($pdo,$sql) { -$stmt = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql)); +$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); $stmt->execute(); } private function execSqlWithParam($pdo,$sql,$param) { -$stmt = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql)); +$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); $stmt->execute($param); } @@ -1849,13 +1849,9 @@ $sql = "SHOW COLUMNS FROM %customers% LIKE 'hello'"; $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); $stmt->execute(); $result = $stmt->fetchAll(); -if (count($result) == 0) { -$sql = "ALTER TABLE %customers% ADD hello VARCHAR(100) NULL AFTER www"; -$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); -$stmt->execute(); -$sql = "ALTER TABLE %customers% ADD regards VARCHAR(100) NULL AFTER hello"; -$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); -$stmt->execute(); +if (count($result) == 0) { +$this->execSql($pdo, "ALTER TABLE %customers% ADD hello VARCHAR(100) NULL AFTER www"); +$this->execSql($pdo, "ALTER TABLE %customers% ADD regards VARCHAR(100) NULL AFTER hello"); $this->execSql($pdo, "OPTIMIZE TABLE %customers%"); } @@ -1947,9 +1943,7 @@ return false; DbUtils::overrulePrefix($prefix); -$sql = "INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL,?,?)"; -$stmt = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql)); -$stmt->execute(array('updateurl','http://www.ordersprinter.de/update')); +$this->execSqlWithParam($pdo, "INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL,?,?)", array('updateurl','http://www.ordersprinter.de/update')); $this->updateVersion($pdo, '1.3.7'); return true; @@ -2009,24 +2003,15 @@ return false; DbUtils::overrulePrefix($prefix); -$sql = "ALTER TABLE %products% ADD unit INT(2) NULL AFTER priceC"; -$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); -$stmt->execute(); -$sql = "ALTER TABLE %histprod% ADD unit INT(2) NULL AFTER priceC"; -$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); -$stmt->execute(); +$this->execSql($pdo, "ALTER TABLE %products% ADD unit INT(2) NULL AFTER priceC"); +$this->execSql($pdo, "ALTER TABLE %histprod% ADD unit INT(2) NULL AFTER priceC"); $this->updateVersion($pdo, '1.3.9'); -$sql = "ALTER TABLE %products% ADD days VARCHAR(20) NULL AFTER unit"; -$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); -$stmt->execute(); -$sql = "ALTER TABLE %histprod% ADD days VARCHAR(20) NULL AFTER unit"; -$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); -$stmt->execute(); -$sql = "ALTER TABLE %user% ADD failedlogins VARCHAR(20) NULL AFTER extrasapplybtnpos"; -$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); -$stmt->execute(); +$this->execSql($pdo, "ALTER TABLE %products% ADD days VARCHAR(20) NULL AFTER unit"); +$this->execSql($pdo, "ALTER TABLE %histprod% ADD days VARCHAR(20) NULL AFTER unit"); + +$this->execSql($pdo, "ALTER TABLE %user% ADD failedlogins VARCHAR(20) NULL AFTER extrasapplybtnpos"); return true; } catch (PDOException $e) { @@ -2079,9 +2064,7 @@ $stmt->execute(array('showpayment7','0')); $stmt->execute(array('showpayment8','0')); } -$sql = "ALTER TABLE %extras% ADD sorting INT(2) NULL AFTER price"; -$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); -$stmt->execute(); +$this->execSql($pdo, "ALTER TABLE %extras% ADD sorting INT(2) NULL AFTER price"); $sql = "SELECT id FROM %extras% WHERE removed is null"; $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); @@ -2175,6 +2158,63 @@ return false; } } +function updateUserTable1313_1314($prefix, $version, $dbname) { +$pdo = $this->pdo; +try { +if ($version != "1.3.13") { +$ret = $this->updateUserTable1312_1313($prefix, $version, $dbname); +if (!$ret) { +echo "Version update v1.3.12 to 1.3.13 not successful."; +return false; +} +} + +DbUtils::overrulePrefix($prefix); + +$sql = "INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL,?,?)"; +$stmt = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql)); +$stmt->execute(array('k1prinstance','1')); +$stmt->execute(array('k2prinstance','1')); +$stmt->execute(array('k3prinstance','1')); +$stmt->execute(array('k4prinstance','1')); +$stmt->execute(array('k5prinstance','1')); +$stmt->execute(array('k6prinstance','1')); +$stmt->execute(array('d1prinstance','1')); +$stmt->execute(array('d2prinstance','1')); +$stmt->execute(array('f1prinstance','1')); +$stmt->execute(array('f2prinstance','1')); + +$stmt->execute(array('dashslot1','1')); +$stmt->execute(array('dashslot2','2')); +$stmt->execute(array('dashslot3','3')); + +$sql = "SHOW COLUMNS FROM %user% LIKE 'right_dash'"; +$stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); +$stmt->execute(); +$result = $stmt->fetchAll(); +if (count($result) == 0) { +$this->execSql($pdo, "ALTER TABLE %user% ADD right_dash INT(2) NULL AFTER right_closing"); +$this->execSql($pdo, "ALTER TABLE %histuser% ADD right_dash INT(2) NULL AFTER right_closing"); + +$this->execSqlWithParam($pdo, "UPDATE %user% SET right_dash=?", array(0)); +$this->execSqlWithParam($pdo, "UPDATE %histuser% SET right_dash=?", array(0)); + +$this->execSqlWithParam($pdo, "UPDATE %user% SET right_dash=? WHERE right_manager=? OR is_admin=?", array(1,1,1)); +$this->execSqlWithParam($pdo, "UPDATE %histuser% SET right_dash=? WHERE right_manager=? OR is_admin=?", array(1,1,1)); + +$this->execSql($pdo, "OPTIMIZE TABLE %user%"); +$this->execSql($pdo, "OPTIMIZE TABLE %histuser%"); +} + +$this->updateVersion($pdo, '1.3.14'); + +return true; +} catch (PDOException $e) { +echo "Error in v1.3.13 to 1.3.14: $e"; +return false; +} +} + function setVersion($prefix,$theVersion) { $pdo = $this->pdo; @@ -2301,7 +2341,7 @@ $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VAL $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'billlanguage', $billlanguage)"); $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'currency', '$currency')"); $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'receiptfontsize', '12')"); -$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'version', '1.3.13')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'version', '1.3.14')"); $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'paymentconfig', '0')"); $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'remoteaccesscode', null)"); $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'decpoint', '$decpoint')"); @@ -2365,6 +2405,10 @@ $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VAL $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'showpayment7', '1')"); $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'showpayment8', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'dashslot1', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'dashslot2', '2')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'dashslot3', '3')"); + $hosttext = self::genSampleHostText(); $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'hosttext', '$hosttext')"); @@ -2373,6 +2417,17 @@ date_default_timezone_set($timezone); $installDate = date('Y-m-d H:i:s'); $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'installdate', '$installDate')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'k1prinstance', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'k2prinstance', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'k3prinstance', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'k4prinstance', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'k5prinstance', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'k6prinstance', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'd1prinstance', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'd2prinstance', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'f1prinstance', '1')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'f2prinstance', '1')"); + $this->readConfigTableAndSendToHist($pdo); return; } @@ -2445,24 +2500,24 @@ $stmt_insert_hist->execute(array($currentTime, $action, $refIdForHist)); function insertUser($username,$adminpass,$is_admin,$right_waiter,$right_kitchen,$right_bar, $right_supply,$right_paydesk,$right_statistics,$right_bill,$right_products,$right_changeprice,$right_customers, -$right_manager,$right_closing,$right_reservation,$right_rating,$lang,$prefertablemap) { +$right_manager,$right_closing,$right_dash,$right_reservation,$right_rating,$lang,$prefertablemap) { $md5adminpass = md5($adminpass); $pdo = $this->pdo; -$userInsertSql = "INSERT INTO `%user%` (`id` , `username` , `userpassword`, `is_admin`, `right_waiter`,`right_kitchen`,`right_bar`,`right_supply`,`right_paydesk`,`right_statistics`,`right_bill`,`right_products`,`right_changeprice`,`right_customers`,`right_manager`,`right_closing`,`right_reservation`,`right_rating`,`language`,`prefertablemap`,`keeptypelevel`,`extrasapplybtnpos`,`active`) VALUES (NULL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,'1','1')"; +$userInsertSql = "INSERT INTO `%user%` (`id` , `username` , `userpassword`, `is_admin`, `right_waiter`,`right_kitchen`,`right_bar`,`right_supply`,`right_paydesk`,`right_statistics`,`right_bill`,`right_products`,`right_changeprice`,`right_customers`,`right_manager`,`right_closing`,`right_dash`,`right_reservation`,`right_rating`,`language`,`prefertablemap`,`keeptypelevel`,`extrasapplybtnpos`,`active`) VALUES (NULL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,'1','1')"; $stmt = $pdo->prepare(DbUtils::substTableAlias($userInsertSql)); -$stmt->execute(array($username,$md5adminpass,$is_admin,$right_waiter,$right_kitchen,$right_bar,$right_supply,$right_paydesk,$right_statistics,$right_bill,$right_products,$right_changeprice,$right_customers,$right_manager,$right_closing,$right_reservation,$right_rating,$lang,$prefertablemap,0)); +$stmt->execute(array($username,$md5adminpass,$is_admin,$right_waiter,$right_kitchen,$right_bar,$right_supply,$right_paydesk,$right_statistics,$right_bill,$right_products,$right_changeprice,$right_customers,$right_manager,$right_closing,$right_dash,$right_reservation,$right_rating,$lang,$prefertablemap,0)); $newUserIdForHist = $pdo->lastInsertId(); // now insert into hist $sql_insert_histuser = "INSERT INTO %histuser% (`id` , `userid`, `username` , `is_admin`, `right_waiter`,`right_kitchen`,`right_bar`,`right_supply`,`right_paydesk`, -`right_statistics`,`right_bill`,`right_products`,`right_changeprice`,`right_customers`,`right_manager`,`right_closing`,`right_reservation`,`right_rating`,`active`) VALUES ( -NULL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; +`right_statistics`,`right_bill`,`right_products`,`right_changeprice`,`right_customers`,`right_manager`,`right_closing`,`right_dash`,`right_reservation`,`right_rating`,`active`) VALUES ( +NULL,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; $stmt_insert_histuser = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql_insert_histuser)); -$stmt_insert_histuser->execute(array($newUserIdForHist,$username,$is_admin,$right_waiter,$right_kitchen,$right_bar,$right_supply,$right_paydesk,$right_statistics,$right_bill,$right_products,$right_changeprice,$right_customers,$right_manager,$right_closing,$right_reservation,$right_rating,1)); +$stmt_insert_histuser->execute(array($newUserIdForHist,$username,$is_admin,$right_waiter,$right_kitchen,$right_bar,$right_supply,$right_paydesk,$right_statistics,$right_bill,$right_products,$right_changeprice,$right_customers,$right_manager,$right_closing,$right_dash,$right_reservation,$right_rating,1)); $newRefIdForHist = $pdo->lastInsertId(); $this->insertIntoHist($pdo, '3', $newRefIdForHist); } @@ -2621,15 +2676,15 @@ $stmt->execute(array(6,76,22)); } if ($workflow == 2) { -$this->insertUser( $waiterTxt[$lang], $adminpass,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,$lang,1); +$this->insertUser( $waiterTxt[$lang], $adminpass,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,$lang,1); if ($level == 3) { -$this->insertUser( $bossTxt[$lang], $adminpass,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,$lang,1); +$this->insertUser( $bossTxt[$lang], $adminpass,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,$lang,1); } } else { -$this->insertUser( $waiterTxt[$lang], $adminpass,0,1,0,0,1,1,0,1,0,0,0,0,0,1,0,$lang,1); +$this->insertUser( $waiterTxt[$lang], $adminpass,0,1,0,0,1,1,0,1,0,0,0,0,0,0,1,0,$lang,1); if ($level == 3) { -$this->insertUser( $cookTxt[$lang], $adminpass,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,$lang,1); -$this->insertUser( $bossTxt[$lang], $adminpass,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,$lang,1); +$this->insertUser( $cookTxt[$lang], $adminpass,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,$lang,1); +$this->insertUser( $bossTxt[$lang], $adminpass,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,$lang,1); } } @@ -2684,7 +2739,7 @@ if (!$ok) { echo json_encode("Fehler: Ist OpenSSL richtig installiert?"); return; } -$admin->insertUser("admin",$_POST['adminpass'],1,0,0,0,0,0,0,0,0,1,0,1,1,0,0,$_POST['lang'],1); +$admin->insertUser("admin",$_POST['adminpass'],1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,$_POST['lang'],1); $admin->writeConfigFile($_POST['host'],$_POST['db'],$_POST['user'],$_POST['password'],$_POST['prefix']); if(session_id() == '') { @@ -2714,7 +2769,7 @@ $zones[] = $timezone_identifiers[$i]; } echo json_encode($zones); } else if ($command == 'update') { -$installerVersion = "1.3.13"; +$installerVersion = "1.3.14"; $admin = new InstallAdmin(); $pdo = $admin->openDbAndReturnPdo($_POST['host'],$_POST['db'],$_POST['user'],$_POST['password']); @@ -2744,7 +2799,8 @@ $supportedVersions = array("1.0.22","1.0.23","1.0.24","1.0.25","1.0.26","1.0.27" "1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.1.7","1.1.8", "1.1.9","1.1.10","1.1.11","1.1.12","1.1.13","1.1.14","1.1.15","1.1.16","1.1.17", "1.1.18","1.1.19","1.1.20","1.1.21","1.1.22","1.1.23","1.1.24","1.1.25","1.1.26","1.1.27","1.1.28","1.1.29","1.1.30", "1.2.0","1.2.1","1.2.2", "1.2.3", "1.2.4","1.2.5","1.2.6","1.2.7","1.2.8","1.2.9","1.2.10","1.2.11","1.2.12","1.2.13","1.2.14","1.2.15","1.2.16","1.2.17", -"1.2.18","1.2.19","1.2.20","1.2.21","1.2.22","1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.8","1.3.9","1.3.10","1.3.11","1.3.12" +"1.2.18","1.2.19","1.2.20","1.2.21","1.2.22","1.3.0","1.3.1","1.3.2","1.3.3","1.3.4","1.3.5","1.3.6","1.3.7","1.3.8","1.3.9","1.3.10","1.3.11","1.3.12", +"1.3.13" ); if (!in_array($version, $supportedVersions)) { @@ -2752,7 +2808,7 @@ echo json_encode("Quellversion nicht unterstützt"); return; } -$ret = $admin->updateUserTable1312_1313($_POST['prefix'], $version, $_POST['db']); +$ret = $admin->updateUserTable1313_1314($_POST['prefix'], $version, $_POST['db']); if(session_id() == '') { session_start(); diff --git a/webapp/kitchen.html b/webapp/kitchen.html index f4733f4..b68bf60 100644 --- a/webapp/kitchen.html +++ b/webapp/kitchen.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/manager.html b/webapp/manager.html index 72b8ebd..66caf6f 100644 --- a/webapp/manager.html +++ b/webapp/manager.html @@ -5,7 +5,7 @@ - + @@ -67,6 +67,7 @@ var MAN_CHANGEPRICE = ["Preisänderung während Bestellung","Change price during var MAN_CUSTOMERS = ["Gäste","Guests","Clientes"]; var MAN_MANAGER = ["Verwaltung","Administration","Administración"]; var MAN_CLOSINGRIGHT = ["Tageserfassung","Closing","Cerrar día"]; +var MAN_DASHRIGHT = ["Dashboard","Dashboard","Dashboard"]; var MAN_USER_NAME = ["Benutzername","User name","Nombre de usario"]; var MAN_USER_PASS = ["Passwort","Password","Contraseña"]; var MAN_YES = ["Ja","Yes","Si"]; @@ -363,9 +364,18 @@ var MAN_CLOSING_TIME_LIMIT_ERROR = ["Ein Tagesabschluss wurde nicht erzeugt, wei var MAN_DB_PROPERTIES = ["Größe der Datenbanktabellen","Sizes of the data base tables","Tamaño de los tabulas de la base de datos"]; var MAN_DBTABLENAME = ["Tabelle","Table","Tabula"]; var MAN_DBTABLESIZE = ["Größe (KB)","Size (KB)","Tamaño (KB)"]; +var MAN_PRINT_INSTANCE_ASS_HEADER = ["Druckerinstanzen","Printer instances","Impresoras"]; +var MAN_PRINT_INSTANCE = ["Druckerinstanz","Printer instance","Impresora"]; +var MAN_RECEIPT_TXT = ["Kasse","Receipts","Recibos"]; +var MAN_DRINKS_REC_TXT = ["Getränke","Drinks","Bebidas"]; +var MAN_FOOD_REC_TXT = ["Speisen","Food","Comidas"]; +var MAN_PRINSTANCE_HINT = ["Die Zuordnungen wirken nur bei Printserverversionen ab 1.3.14!","The assignments only work with print server versions 1.3.14 and higher!","Esta configuración sólo funciona con printservers de una version 1.3.14 o despues!"]; +var MAN_DASHSLOT1 = ["Dashboard Slot 1","Dashboard Slot 1","Dashboard Slot 1"]; +var MAN_DASHSLOT2 = ["Dashboard Slot 2","Dashboard Slot 2","Dashboard Slot 2"]; +var MAN_DASHSLOT3 = ["Dashboard Slot 3","Dashboard Slot 3","Dashboard Slot 3"]; var lang = 0; -var generalVals = [12,2,0,3,0,1,1,0,0,1, 0,50,20,10,1,0,0,0,1,0,1,0,0,1,1, 1,1,1,1,1,1,1,1,1,1]; +var generalVals = [12,2,0,3,0,1,1,0,0,1, 0,50,20,10,1,0,0,0,1,0,1,0,0,1,1, 1,1,1,1,1,1,1,1,1,1, 1,2,3]; var numberOfClosings = 0; @@ -373,6 +383,7 @@ var unpaidTables = ""; var version = ''; var newerversionavailable = 0; var adminIsLoggedIn = false; +var managerIsLoggedIn = false; var generalValuesSettings = [ ["usstval","MwSt","i",2,"Mehrwertsteuer ist kein Zahlenwert"], @@ -455,7 +466,10 @@ var generalValuesSettings = [ ["memorylimit",MAN_MEMORYLIMIT[lang],"i",0,""], ["updateurl",MAN_UPDATEURL[lang],"i",0,""], - ["hs3refresh",MAN_HS3REFRESH[lang],"i",0,""] + ["hs3refresh",MAN_HS3REFRESH[lang],"i",0,""], + ["dashslot1",MAN_DASHSLOT1[lang],"s",35], + ["dashslot2",MAN_DASHSLOT2[lang],"s",36], + ["dashslot3",MAN_DASHSLOT3[lang],"s",37] ]; var predef = ""; @@ -597,6 +611,17 @@ function setLanguage(l) { $("#workfontsizehint").html(MAN_FONTSIZE_HINT[l]); $("#updateprogresslabel").html(MAN_UPD_PROGRESS[l] + ": "); + + $("#printerinstancesheader").html(MAN_PRINT_INSTANCE_ASS_HEADER[l]); + $("#printerinstancetxt").html(MAN_PRINT_INSTANCE[l]); + + $(".pia_k_txt").html(MAN_RECEIPT_TXT[l]); + $(".pia_f_txt").html(MAN_FOOD_REC_TXT[l]); + $(".pia_d_txt").html(MAN_DRINKS_REC_TXT[l]); + $(".pia_c_txt").html(MAN_PRINT_ON_CLOSINGS[l]); + + $("#applyPrinterInstances").html(MAN_APPLY[l]); + $("#printerInstanceHint").html(MAN_PRINSTANCE_HINT[l]); } function createMonthSelection(label) { @@ -623,11 +648,13 @@ function showPanelsDueToUserStatus(jsonAnswer) { adminIsLoggedIn = true; } if (jsonAnswer == "manager" || (jsonAnswer == 'admin')) { + managerIsLoggedIn = true; $("#userpart").show(); $("#configpart").show(); $("#printerqueue").show(); $("#dataexport").show(); $("#printserverdownloadpart").show(); + $("#printerinstances").show(); } if(jsonAnswer == "No") { @@ -683,7 +710,7 @@ function insertGeneralConfigItems(configResult) { generalVals[1] = 2; } generalVals[3] = values.paymentconfig; - generalVals[4] = values.workflowconfig; + generalVals[4] = values.workflowconfig; generalVals[16] = values.addreceipttoprinter; if ((values.addreceipttoprinter == "") || (values.addreceipttoprinter == null)) { generalVals[16] = 0; @@ -693,6 +720,9 @@ function insertGeneralConfigItems(configResult) { $("#partOfPaymentConfig").html(createPaymentConfigPart(values.paymentconfig)); $("#partOfAddRecPrinter").html(createAddRecPrinterPart(values.addreceipttoprinter)); $("#partOfWorkflowConfig").html(createWorkflowConfigPart(values.workflowconfig)); + $("#partOfDashslot1").html(createDashslotPart(1,values.dashslot1)); + $("#partOfDashslot2").html(createDashslotPart(2,values.dashslot2)); + $("#partOfDashslot3").html(createDashslotPart(3,values.dashslot3)); $("#partOfBigFontWorkReceipt").html(createBigFontWorkReceiptPart(values.bigfontworkreceipt)); $("#partOfProminentSearch").html(createProminentSearchPart(values.prominentsearch)); $("#partOfGroupWorkItems").html(createGroupWorkItemsPart(values.groupworkitems)); @@ -781,6 +811,10 @@ function insertGeneralConfigItems(configResult) { generalVals[33] = values.showpayment7; generalVals[34] = values.showpayment8; + generalVals[35] = values.dashslot1; + generalVals[36] = values.dashslot2; + generalVals[37] = values.dashslot3; + $("#smtphost").val(values.smtphost); $("#partOfSmtpauth").html(createSMTPAuth(values.smtpauth)); $("#smtpuser").val(values.smtpuser); @@ -966,6 +1000,30 @@ function createYesNo(label,nameOnGui,theValue) { return html; } +function createDashslotPart(number,value) { + var label = MAN_DASHSLOT1; + if (number == 2) { + label = MAN_DASHSLOT2; + } else if (number == 3) { + label = MAN_DASHSLOT3; + } + var html = '
'; + html += ''; + html += '
'; + + return html; +} + function createWorkflowConfigPart(workflow) { var html = '
'; html += ''; @@ -1592,9 +1650,9 @@ function handleUpdateCheckResult(answer) { var millis=getMillis(); setTimeout(function(){ - document.location.href = "install.html?v=1.3.13&mode=onlyupdate&n=" + millis; + document.location.href = "install.html?v=1.3.14&mode=onlyupdate&n=" + millis; },250); - document.location.href = "install.html?v=1.3.13&mode=onlyupdate&n=" + millis; + document.location.href = "install.html?v=1.3.14&mode=onlyupdate&n=" + millis; } function handleUpdateReplace(answer) { @@ -1613,6 +1671,111 @@ function handleUpdateReplace(answer) { $("#updateslider").slider("refresh"); } +function getPrinterInstance() { + var data = { + n: getMillis() + }; + doAjax("GET","php/contenthandler.php?module=admin&command=getprinterinstances",data,insertPrinterInstance,null,true); +} + +function insertPrinterInstance(answer) { + if (answer.status == "OK") { + setPrinterInstance("pia_k1",answer.msg.k1); + setPrinterInstance("pia_k2",answer.msg.k2); + setPrinterInstance("pia_k3",answer.msg.k3); + setPrinterInstance("pia_k4",answer.msg.k4); + setPrinterInstance("pia_k5",answer.msg.k5); + setPrinterInstance("pia_k6",answer.msg.k6); + + setPrinterInstance("pia_f1",answer.msg.f1); + setPrinterInstance("pia_f2",answer.msg.f2); + + setPrinterInstance("pia_d1",answer.msg.d1); + setPrinterInstance("pia_d2",answer.msg.d2); + + renderPrinterInstancesTable(); + + bindPrinterInstanceClick(); + } +} + +function setPrinterInstance(tabCellId,value) { + $("#" + tabCellId).data("instance",value); +} + +function bindPrinterInstanceClick() { + $(".prinstancerow td").off("click").on("click", function (e) { + e.stopImmediatePropagation(); + e.preventDefault(); + var col = $(this).parent().children().index($(this)); + // REM col0 is only name of row, 1-10 are the real instances numbeer + if (col > 0) { + var parts = this.id.split("_"); + var cellRowId = "#pia_" + parts[1]; + $(cellRowId).data("instance",col); + } + renderPrinterInstancesTable(); + }); + + $("#applyPrinterInstances").off("click").on("click", function (e) { + e.stopImmediatePropagation(); + e.preventDefault(); + + var k1 = $("#pia_k1").data("instance"); + var k2 = $("#pia_k2").data("instance"); + var k3 = $("#pia_k3").data("instance"); + var k4 = $("#pia_k4").data("instance"); + var k5 = $("#pia_k5").data("instance"); + var k6 = $("#pia_k6").data("instance"); + + var f1 = $("#pia_f1").data("instance"); + var f2 = $("#pia_f2").data("instance"); + + var d1 = $("#pia_d1").data("instance"); + var d2 = $("#pia_d2").data("instance"); + + var data = { + k1: k1, + k2: k2, + k3: k3, + k4: k4, + k5: k5, + k6: k6, + + f1: f1, + f2: f2, + + d1: d1, + d2: d2 + }; + + doAjax("POST","php/contenthandler.php?module=admin&command=setprinterinstances",data,handleResultOfDbAction,null,true); + }); + +} + +function renderPrinterInstancesTable() { + renderPrinterInstanceRow("k",6); + renderPrinterInstanceRow("f",2); + renderPrinterInstanceRow("d",2); +} + +function renderPrinterInstanceRow(type,typeCount) { + for (var typeNo = 1;typeNo<=typeCount;typeNo++) { + var cellRowId = "#pia_" + type + typeNo; + var prinstance = $(cellRowId).data("instance"); + + for (var InstanceNo = 1;InstanceNo<=10;InstanceNo++) { + if (InstanceNo == prinstance) { + $(cellRowId + "_" + InstanceNo).html(""); + } else { + $(cellRowId + "_" + InstanceNo).html(""); + } + } + + } +} + function bindSelectionsWithActions() { $("#austria").off("change").on("change", function (e) { e.stopImmediatePropagation(); @@ -1633,6 +1796,30 @@ function bindSelectionsWithActions() { $("#configpart").trigger("create"); bindSelectionsWithActions(); }); + $("#dashslot1").off("change").on("change", function (e) { + e.stopImmediatePropagation(); + e.preventDefault(); + var newworkflowSel = $("#dashslot1").find(":selected").val(); + $("#partOfDashslot1").html(createDashslotPart(1,newworkflowSel)); + $("#configpart").trigger("create"); + bindSelectionsWithActions(); + }); + $("#dashslot2").off("change").on("change", function (e) { + e.stopImmediatePropagation(); + e.preventDefault(); + var newworkflowSel = $("#dashslot2").find(":selected").val(); + $("#partOfDashslot2").html(createDashslotPart(2,newworkflowSel)); + $("#configpart").trigger("create"); + bindSelectionsWithActions(); + }); + $("#dashslot3").off("change").on("change", function (e) { + e.stopImmediatePropagation(); + e.preventDefault(); + var newworkflowSel = $("#dashslot3").find(":selected").val(); + $("#partOfDashslot3").html(createDashslotPart(3,newworkflowSel)); + $("#configpart").trigger("create"); + bindSelectionsWithActions(); + }); $("#payprinttype").off("change").on("change", function (e) { e.stopImmediatePropagation(); e.preventDefault(); @@ -2007,7 +2194,7 @@ function createLabelWithOption(aLabel,displayedName,hasTheRight) { * the username and the rights that the user has to work in the * various modules. */ -function createCollapsibeOfUser(id,username,isAdmin,rWaiter,rKitchen,rBar,rSupply,rPay,rStat,rBill,rProd,rReservation,rRating,rChangeprice,rCustomers,rClosing, rManager,forNewUser) { +function createCollapsibeOfUser(id,username,isAdmin,rWaiter,rKitchen,rBar,rSupply,rPay,rStat,rBill,rProd,rReservation,rRating,rChangeprice,rCustomers,rClosing, rDash, rManager,forNewUser) { var collapsiblePart = '
+
+
+
+
@@ -3107,6 +3272,33 @@ $(document).on("pageinit", "#admin-page", function () {
+ + "}else{a+='
'+g.name+"
"}});var e=roominfo.takeawayprice.replace(".",decpoint)+" "+currency;if(e!=""){e='
'+e+"
"}if(selectedroomindex<0){a+='
';a+='
Zum Mitnehmen
';a+=e;a+="
"}else{a+='
';a+='
Zum Mitnehmen
';a+=e;a+="
"}$("#roompanel").html(a);$("#tablepanelcontent").html("");showRoomTableTextInfo();showTablesForRoomIndex();bindingRoom()}function getRoomsForDialog(){var b=roominfo.roomstables;var a="";$.each(b,function(e,c){a+='
'+c.name+"
"});return a}function bindingRoom(){$(".roomitem").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();var a=parseInt(this.id.split("_")[1]);$("#changetablebtn").hide();if(panelMode=="waiter"){if(neworders.length>0){$("#unsentorderdlg").dialog({autoOpen:false,modal:true,height:400,buttons:{Nein:function(){$(this).dialog("close")},Ja:function(){$(this).dialog("close");discardChangeRoom(a)}}});$("#unsentorderdlg").dialog("open")}else{changeRoom(a);if(selectedroomindex=="-1"){startProductDisplay()}}}else{changeRoom(a);goPayDesk()}})}function discardChangeRoom(a){neworders=[];groupedNewOrders=null;showNewOrders();changeRoom(a)}function changeRoom(a){clearProductsSelection();selectedtableindex=null;selectedroomindex=a;if(restaurantmode==1){showRooms()}}function showRoomTableTextInfo(){var a="Keine Auswahl";if(selectedroomindex!==null){if(selectedroomindex<0){a="Zum Mitnehmen"}else{a="Raum: "+roominfo.roomstables[selectedroomindex].name;if(selectedtableindex!==null){var b=roominfo.roomstables[selectedroomindex].tables[selectedtableindex];a+=" - Tisch: "+b.name}}}$("#location").html(a)}function showTablesForRoomIndex(){if((selectedroomindex>=0)&&(selectedroomindex!==null)){var f=roominfo.roomstables[selectedroomindex].id;var g=shallDisplayRoom(f);if(g.show){$("#tablepanelcontent").hide();d=new Date();$("#mapimgpart").attr("src","php/tablemap.php?command=getTableMapImgAsPng&showBubbles=0&roomid="+f+"&"+d.getTime());$("#tablemapcontent").show();var c=new Tablemap(selectedroomindex,null,"");var e=roominfo.roomstables[selectedroomindex]["tables"];var a=null;if(selectedtableindex!=null){a=roominfo.roomstables[selectedroomindex].tables[selectedtableindex].id}var b=c.createOverlay("#mapimgpart",g.pos,W_TO_PAY[lang],decpoint,currency,e,ostablebtnsize,a);$("#tableoverlay").html(b);c.bindingForOverlaySelection(handleClickInTablemap.bind(this),f,e,switchZoomView)}else{showTablesListForRoomIndex()}}else{showTablesListForRoomIndex()}}function switchZoomView(){if(tableMapIsZoomed){$(".main").show();$("#roompanel").show();tableMapIsZoomed=false}else{$(".main").hide();$("#roompanel").hide();tableMapIsZoomed=true}}function unZoomTableMap(){tableMapIsZoomed=true;switchZoomView()}function handleClickInTablemap(b){selectedtableindex=null;var c=roominfo.roomstables[selectedroomindex].tables;for(var a=0;a=0)&&(selectedroomindex!==null)){var c=roominfo.roomstables[selectedroomindex].tables;var a="";$.each(c,function(f,g){if((selectedtableindex!=null)&&(c[selectedtableindex].id==g.id)){a+='
'}else{a+='
'}a+='
'+g.name+"
";var h=g.pricesum;if(h!=0){var e=h.replace(".",decpoint)+" "+currency;a+='
'+e+"
"}a+="
"});$("#tablepanelcontent").html(a)}else{$("#tablepanelcontent").html("")}$("#tablepanelcontent").show();bindingTable()}function getTablesForDialog(b){var c=roominfo.roomstables[b].tables;var a="";$.each(c,function(e,f){a+='
'+f.name+"
"});return a}function updateChangeTableBtnIfTableIsSelected(){if(panelMode=="waiter"){$("#changetablebtn").show()}else{$("#changetablebtn").hide()}}function bindingTable(){$(".tableitem").off("click").on("click",function(b){b.stopImmediatePropagation();b.preventDefault();var a=parseInt(this.id.split("_")[1]);if(panelMode=="waiter"){$("#changetablebtn").show();if(neworders.length>0){$("#unsentorderdlg").dialog({autoOpen:false,modal:true,height:400,buttons:{Nein:function(){$(this).dialog("close")},Ja:function(){$(this).dialog("close");discardChangeTable(a)}}});$("#unsentorderdlg").dialog("open")}else{changeTable(a);startProductDisplay()}}else{changeTable(a);goPayDesk()}})}function discardChangeTable(a){neworders=[];groupedNewOrders=null;showNewOrders();changeTable(a)}function changeTable(a){selectedtableindex=a;showRoomTableTextInfo();showTablesForRoomIndex()}function startProductDisplay(){selectedtypeid=null;selectedprodid=null;clearProductsSelection();requestProdInformation();requestOrderedInformation();$("#search").val("");$("#searchpanel").show();$("#remarkpanel").show()}function clearProductsSelection(){neworders=[];groupedNewOrders=[];selectedtypeid=null;$("#groupchain").html("");$("#groupchoice").html("");$("#productspanel").html("");$("#remark").val("");$("#neworders").html("");$("#ordered").html("");$("#searchpanel").hide();$("#remarkpanel").hide()}var allOrderdItems=[];function requestOrderedInformation(){if(panelMode!="waiter"){return}var a=0;if((selectedroomindex==null)&&(selectedtableindex==null)){return}if((selectedroomindex!=null)&&(selectedroomindex!="-1")){var b=roominfo.roomstables[selectedroomindex].tables[selectedtableindex];a=b.id}doAjax("GET","php/contenthandler.php?module=queue&command=getJsonLongNamesOfProdsForTableNotDelivered&tableid="+a,null,insertOrderedInformation,true)}function insertOrderedInformation(b){allOrderdItems=b;var c=new Grouping(b,createTxtAssignedProd);c.group();var a="";a+=c.outputList(createListElOfAssignedProd);$("#ordered").html(a);bindOrderedItem()}function createTxtAssignedProd(e){var b="";if(e.option!=""){b="

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

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

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

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

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

"+toHtml(l)+"

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


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

    "}return a}; -
    -
    Kellneransicht (Bestellung)
    - - +
    + Kellneransicht (Bestellung) +
    - -
    -
    -
    -
    + +
    + + +
    Extras to select...
    diff --git a/webapp/waiterdesktopdefault.txt b/webapp/waiterdesktopdefault.txt index e631f1f..334cdf8 100644 --- a/webapp/waiterdesktopdefault.txt +++ b/webapp/waiterdesktopdefault.txt @@ -1,65 +1,63 @@ - - -
    - -
    - -
    - - - -
    - - - - - - - - - - + + + + + + +
    +
    Raum: Raum xyz
    +
    - +
    - + + +
    +
    + +
    + + + +
    + + + + + + + + + + + +
    +
    + +
    + + + + + + + + +
    + +
    +
    +
    -
    - - + +
    \ No newline at end of file