From 6097495d8d5c5104899fc530c4034d71bd7eefb5 Mon Sep 17 00:00:00 2001 From: Geno Date: Thu, 19 Nov 2020 23:00:05 +0100 Subject: [PATCH] OrderSprinter 1.2.5 --- javaprinter/javaprinter.jar | Bin 58199 -> 59001 bytes printserver/OrderSprinterPrintserver.exe | Bin 268800 -> 269312 bytes webapp/OrderSprinterPrintserver.exe | Bin 268800 -> 269312 bytes webapp/bar.html | 2 +- webapp/bill.html | 2 +- webapp/feedback.html | 2 +- webapp/index.html | 4 +- webapp/install.html | 2 +- webapp/install/installer.php | 49 +++- webapp/kitchen.html | 2 +- webapp/manager.html | 31 ++- webapp/paydesk.html | 4 +- webapp/php/admin.php | 56 ++-- webapp/php/closing.php | 31 ++- webapp/php/commonutils.php | 239 ++++++++++-------- webapp/php/contenthandler.php | 27 +- webapp/php/printqueue.php | 6 +- webapp/php/queuecontent.php | 61 ++++- .../TypeAndProductFileManager.php | 30 ++- webapp/php/utilities/basedb.php | 34 +-- webapp/php/utilities/decimaldefs.php | 5 + webapp/php/utilities/sorter.php | 28 -- webapp/preferences.html | 2 +- webapp/products.html | 7 +- webapp/rating.html | 2 +- webapp/reports.html | 2 +- webapp/reservation.html | 2 +- webapp/supplydesk.html | 2 +- webapp/waiter.html | 2 +- 29 files changed, 404 insertions(+), 230 deletions(-) create mode 100644 webapp/php/utilities/decimaldefs.php diff --git a/javaprinter/javaprinter.jar b/javaprinter/javaprinter.jar index 1220bf01f8196e3ea923beb1e96802b5588fa06c..1de1f3e2eb6930ad0b7e9363a50de92353485df0 100644 GIT binary patch delta 13704 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 diff --git a/printserver/OrderSprinterPrintserver.exe b/printserver/OrderSprinterPrintserver.exe index 30d16deba835ac112c715e85ab3c9c64ce8675b1..66085f14da4e006dc0d3e841bc309cc9566ef9b3 100644 GIT binary patch delta 49638 zcmc${2b@$@vIl%_=-Y9IX?p0M#B>i6=t;;h22fN+Oemp~ckxw&)YZAX`0+^LHrh%rtVZ)q#* z5`{WtX5@neNTp~47oy=QB#Np!b)>tNZ^*_?uyXO-zj3gwtQb9lB#B#&pY6&EFu^D^JUgBV&i4rY%UErTU7fHF|#O`+z4*o?TEM;qw*1i+by$m*6POckoc|6r%ak!s!x4Y~cuT?rpMU75YS zaANmZ*RIklm4in4tK&hUE_K2H1l)V%QC8dE@y!P0Pc5;B#BgBP}WaicV5+roAf>Y_tt$zn???D9)w`I>nda_iZ>r~t}Dev!sU!&PK_ zb)qz0nv6&L;-!x5rH+!)N?TiL_OimNXtQ!y;qhpNMS&bGH7cjo;J?ag!D%r)B%P@0 z(p6=u4EH8aszj^w+nmr#^_n6^pfpg-F!XSd!NIsb)OL3$9>Vxl#hwnO;=#UnsKTWy zsUbpDE?pfrK-bt+39(~ZL}H{as7IAy2+)cOj_B2X!=izqelk{il3v6pG1#hV3JcdL zJq4R|*CxF(1kyE0uMUHBEYhV#WKa$Up>xFpxygk+N`@ab8J_M7We=y;(`_pv2De{S z%~zxTmE49U;bgEcoKo{c$t7XC{lacl1LAm$SA(G$xeE7}q%8{VzPRCJi5pIv8%~=W zoI7GZh5#xJa1Y>uQ!;9T@nF(+X^{ar6z8f!U=)nAdhX`c2_tSK%{0{6g&R(fv3+IO za^xGc!;=d-a?(=~M~=K=&XIB!wMWPilu_yml55PHJ%wRMPS)C$i^L;I^G}{!#F0ZK zQ9V~K8jmK;S3S9CYLO+q5iJ&^am|c}-5U2B-y&KLtDH!pWORz+t0a3QsAw=>N-L2` z$foCx0;kpv-B>VRhLk`$IgQ7Ql3+d#ntD!KCLGsuBT1Pa%nvHg&)u_dTUk{b%{T3X z%-K+#(9P3vDQRtv>*iU&ay%K8f;x|>!slffJI+fH=W?_tt-zv227hU#%dE0TbPR&k zF0&@=2oAMl48tIK5%oM8cI^Jnwx535TspX9TQZ24$suqeo1B0j6dyzZUqZn=$o6SV z;g)#D+6A5}?-y9K9y6E0YP-aM({2HoRm)+`iP>QElNcZd8`-I#;O4=_Zc0ZyKPQTl zoB^&RXywa`lbpdWp&RM2*SF>D*B1}Et_!-uS+LS^P0$_Fg0AC&HI55|LtVcHYi%D| zb{{}3rjZjz{=`l+wk0v^_j6+ZQ3C-?%QppMwkmcOZ$_0;klbC*fmgAnz_NAP&}r4v zYNu6A!_Wnf8XRfSpfjyoQS;AW2hF$1-83(<&toBbq@u27n<_h3Ov_Ct=SN0=PtK2I zXMidRFB}3lX2$||=CyQ&7hSyU#u$@NLO_;I!-`uzRth}t&RunfQ!0q79EPUhwLCx zr_JP`5JTOML49}sUdDZ7TQXW0n`pDXhF_BKy_Vk#W=6Dp7cS92K8;H(l&``i9|kC~ z@hI?wZWCBY!%O6fM8Ia1P`Y6g5h8*rMu&JHZp4GZY#Ygj)KI>fvX&ZFww*X(aB3tc zJAxPyFoxQUorn>|EN}&oS{dcMX2ZN3OT{rA$136xz)D&P#hghcR&9qu%$clXLopYU z5=e31Y!MbFijk$_2rQRVelP5UvZGplZ(Mkp7YpQd;3aAxui={i0W)17uM+w>qs&E+ zIo!`Y?sp#d3lIG}qZX^!>aqXfp&xtbCqPS$P&P}h&>bUw1Q$zo@NBF814g-xe+#_E zpNN*W8JLBeNl_rVqA+ntr4^2d`SDX3PAi1R89+IMED)rBT zQ8CbR?c6Ml?QzE-{y1;$o$4pG~I+x!f`r zlZ!m$<{q7>u;LZ8K?sPwH6gGkv`5s4f61Moi9(nASlSQUW2Uy+wPdmqAZKdv--M@pR)($|B4nxKuMud&~7V8!tjKnP|WUjhd*zVlnBAr!lzZ0_9i2Nep6PR942=+<*7L4 zopRTVa>tBvh#gqnP$$>oLu{kM_8^yxC;5;e38@v;6-WE#GW4k=RHjmx$x=?xq#U)W zDz^iqoX|-*Gg`{&St%~ArSMbr(0y>e5?52)gCj;Vomp%2(E3@eWLD!#<1rFvXJTaU zp&GgDeO-1<;kcUAXxg~BiTk;U6pCsVlVwEi!)L*hP#;&5E6TC7>q!@WQ&VAq8;Nw! z289 zBpGe3Rr8b(T!S^q^FZ3dSYtc~WU6yOM#<3gCa*GaNT>>|H9Q5_FBB0~dWTbVWxfA-qV8PQicZR4MG-yF=#6lVBFGjj{ z`qXr$`&4Ae%>f7*xnGbCc`~7Gm?4o%=j@aUNz}M(Us^?sr3|OBBvr!*^{LspC_NI& zoenNJ)JPB7dm(lc$&%3*p(t~=!cOU=MTOJ)n~M)~@w2_+i1-Sq#V%tKv?Xu=lKBah>(ECaEJERUFh`N9=E-kvW^C_#nbX*JOe%by zNpVo)w!~CwHn{U#xYKCMsNvkX&>>?LX9Y}f#AeR}zr`FBbt{9ePJYJ;F~=2MNfK8n z%l_BIdR#N`8EjmH$fLMNvlpJItF|cAS_jM88f(~04nK%dw}4ni*2Y*PIsN05GE;4f zGTTwQz!xCYL%sNDS)kEzdb0&?8&(HcW9xjdplaC#R7(vVZ*~B7<4^6*lS2?qy4t;v zP%Oe66eAZ<7HIdlBRnp)M2^5n55xDKB$ev{TjFW#dcAHWdFC(C z0vx!u%&zGYFM1^}Y4>{Y=qE#zTjLc{Rb>`2gs=p{oG4J(?B0Alj zZtxeyykqRLIKy+rWhHZqxh|BZZZj~v7~Q>8{Q1nb$bH!hTzm3FXKsZh1I(cm^G(kj zqWhb}ycxDRoZ(~79HJd_2!}c2;Qu0fs0khS6P~WD^}B>v=1-mtL}xC9^NJgQ*p;>w zoFx%+8-OCit1$XGG14^ys!MG1*OZS&C|j(b_c`lyyCBZ+P;o&{btw(i?dn(CoiMSu z)ulL1SEcv!*Oz$a8=etFXI2cTFK0d0wuAG0>DfU+@3@q3l;KSb7HURJ^P&>BrYzJi zq?vb|T>@wD#WeLLrv$>&RT*q~iej1A=1pE1EOv0Z#PSC-GiTa`aE>P^$7$?;>ZIw@ zGMD#LOl59#bpD%y9;zoj~DP3+!Ze8C!b^Ao5_AHN^Wg0??AD8)KEx z(+O27PYyjh6DrqJSqzg#7NUll{UtJUnmL0CSq`$vywX9la91l9FC9b7XNbpBadri6 zDMoUaQsEf(51@i}XYGfu%EK5Q%y1&ZNd(nAS(C?Hh|M0Om=YWmbBBXsO3=H5$kDSK zF;T*PL}10r#QsE#q4|f_6`DZHi#j<+HfhG1XwaNHNX+NGLZq!UXfAN6b~V+)>o5&# z=+}~P+4l2a?B<~S*SVBGzacd^JzaZYJUotY9s;!Pbvuw9t7qomekiBuX*SD5KOoE_&_?@fylQw(zG1TMk9J|6{$Cpqe7aITTK~dLhdTy$&R3wlw95kp#J=)=7Blw zPJv;M8HgH(OMzi?5k(G{VkF0FpcW|9#D5%xYJN{o3Sq8i4}#H%y>T8JJ;P;Vf$Hd_ zkaDC=kGU8p!>Ce}ZI+jW5vC|d7VXr?`NvUy>PLJBIkz5IlMLm7 zT#8MXYt46rDUw~b%kA1Om*RDxEQRYpE=B7=E(I%btzwIh*p6_v54FkN01zGhPt-h^ zyAe2iYaJcD4{Y@!A#pB5v#lF=msm&PK&~OL|>g#}VhO{yZGPQ3olK!!Zx_j3OTH znNgQ0;^BrTbp^?5#^@PAA-Io5gF=zuP&H4Zfz2z79C^4k8KY)<%-oYEj&qO``){5T zlDV5f{lA^d^Se_S5e3fTphZ3YHOqx%*V+l~EAq-R$a zCYZa8Y~c~#wu@uR!6`BvoTA6UDKs3M;=#cw2yEQSQ`0*M)ZPwGZS3GQ2s=1A)xpV` z4o+jKgVW&Y;MDpKPOa|X)Y{3M#a`xSb`q$09h{og!B6(#r~B}n51;45=lbx|eE2VX z_#E=TQ^2V{{1hLKfO2JM!gl1x`*3ch+tEsGU&;8%-T^{xq4NhqF#8*ara_TT3F)2y zmKGRux%tNo0j=gq(U=IM6co8jIEKa+X;7uc-#Qv4ZLUNN+jAb9b0^YmQMYhg^j1d{ zQw!-%$!O;YbMSFKK1GLbtd>qPmgDZD?$C0Q*E1ZAZkUd_I}Q+mWFd_lfjwM}$J(CvyIF zM5ssjL@@fZy?EHnt2Xr%pA4ph0d?XT+4Ibj?TGN??1?P(M9_S6FBKsvvS`Nc7clr zMn_NB!TJDl_FN=QEnGS}ThmE+p1Qn@W)@gBK!C;vpTNZf1Zbe}31B!SpZbcR(ZeV3 z%K-wjiUpPr5TJ3!r(wka0dEn*wYYSE0F6jK4VMiNpi#;vaJef`Wx4&9hS1!DDxxK*a@w6Mcy@}x~gS8ns^l#%jZ)6!@;1yo^*Lmo64YczAorMDo^t9Us`pWnp z8VHBl9<=h;x_ExO7P5h-El-AldN-J}wJandq&hk)Nh}jjTRh^AaW0Z@-WRlPfeQEZ{tcQXaIaO*^-HDGj%K;iRIQ+tjHla(`fP!p#}TJ`B%3btNm4-A|C2 zPr8Yz+*81DfIyO&UNUBs|JE=oSmN2tVo#G;h2LaiSJ*c<35Qu|bK5M4!*c51&h1;m zE7H5T1=0Os;+eO5B@vxIEnVg>hIq~$cb0#~^UU5zbMzBlkv`1T5B0<{-}lrLoj%W2 zZ}9^`QmERl24_$buII;*PTQ@7@6fH3DBUU#jipy7`iiD^=X}C^7pi zdEzMwdX}=xxZ-C}m{($3$r--(tfX1cF^BLSnqyI_&z?NdFlV0M z9M%vncY~H?78RSryi(g7&d^L5p&m6)%bF6;up;W&)M5n`-ul^o$ ~&l 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¨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 ~&l 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¨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 - + diff --git a/webapp/bill.html b/webapp/bill.html index 515213b..75aa094 100644 --- a/webapp/bill.html +++ b/webapp/bill.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/feedback.html b/webapp/feedback.html index 1c2ba6c..4f7d84e 100644 --- a/webapp/feedback.html +++ b/webapp/feedback.html @@ -4,7 +4,7 @@ - + diff --git a/webapp/index.html b/webapp/index.html index 9e9bf3c..c1e99f5 100644 --- a/webapp/index.html +++ b/webapp/index.html @@ -7,8 +7,8 @@ - - + + diff --git a/webapp/install.html b/webapp/install.html index a4d82a4..18a88c3 100644 --- a/webapp/install.html +++ b/webapp/install.html @@ -679,7 +679,7 @@ $(document).ready(function() {   - +   diff --git a/webapp/install/installer.php b/webapp/install/installer.php index 198b13e..e3131fc 100644 --- a/webapp/install/installer.php +++ b/webapp/install/installer.php @@ -7,6 +7,7 @@ require_once( "../php/config1.php" ); require_once( "../php/config.php" ); } require_once ('../php/utilities/basedb.php'); +require_once ('../php/utilities/decimaldefs.php'); require_once ('../php/admin.php'); class ConfigWriter { @@ -404,7 +405,7 @@ $sql = "ALTER TABLE %queue% DROP action"; $stmt = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql)); $stmt->execute(); -$sql = "ALTER TABLE %queue% ADD tax DECIMAL (5,2) NULL AFTER price"; +$sql = "ALTER TABLE %queue% ADD tax " . DECIMALSMALL . " NULL AFTER price"; $stmt = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql)); $stmt->execute(); @@ -428,15 +429,15 @@ $sql = "ALTER TABLE %bill% MODIFY tax decimal(5,2) NULL"; $stmt = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql)); $stmt->execute(); -$sql = "ALTER TABLE %queue% MODIFY tax DECIMAL (5,2) NOT NULL"; +$sql = "ALTER TABLE %queue% MODIFY tax " . DECIMALSMALL . " NOT NULL"; $stmt = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql)); $stmt->execute(); -$sql = "ALTER TABLE %products% ADD tax DECIMAL (5,2) NULL AFTER priceC"; +$sql = "ALTER TABLE %products% ADD tax " . DECIMALSMALL . " NULL AFTER priceC"; $stmt = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql)); $stmt->execute(); -$sql = "ALTER TABLE %histprod% ADD tax DECIMAL (5,2) NULL AFTER priceC"; +$sql = "ALTER TABLE %histprod% ADD tax " . DECIMALSMALL . " NULL AFTER priceC"; $stmt = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql)); $stmt->execute(); @@ -995,10 +996,10 @@ $stmt->execute(array('paydeskid','OrderSprinter-1')); $stmt->execute(array('aeskey','0102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f20')); $stmt->execute(array('certificatesn','1234567')); -$sql = "ALTER TABLE %bill% ADD prevbrutto DECIMAL (9,2) NULL AFTER netto"; +$sql = "ALTER TABLE %bill% ADD prevbrutto " . DECIMALBIG . " NULL AFTER netto"; $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); $stmt->execute(); -$sql = "ALTER TABLE %bill% ADD prevnetto DECIMAL (9,2) NULL AFTER prevbrutto"; +$sql = "ALTER TABLE %bill% ADD prevnetto " . DECIMALBIG . " NULL AFTER prevbrutto"; $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); $stmt->execute(); @@ -1321,6 +1322,30 @@ return true; } catch (PDOException $e) { return false; } +} + +function updateUserTable1204_1205($prefix, $version, $dbname) { +$pdo = $this->pdo; +try { +if ($version != "1.2.4") { +$ret = $this->updateUserTable1203_1204($prefix, $version, $dbname); +if (!$ret) { +return false; +} +} + +DbUtils::overrulePrefix($prefix); + +$sql = "INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL,?,?)"; +$stmt = $pdo->prepare($this->basedb->resolveTablenamesInSqlString($sql)); +$stmt->execute(array('oneprodworkreceipts',0)); +$stmt->execute(array('digiprintwork',1)); + +$this->updateVersion($pdo, '1.2.5'); +return true; +} catch (PDOException $e) { +return false; +} } function setVersion($prefix,$theVersion) { @@ -1435,7 +1460,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.2.4')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'version', '1.2.5')"); $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')"); @@ -1466,6 +1491,9 @@ $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VAL $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'digigopaysetready', '1')"); $this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'waitergopayprint', '0')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'oneprodworkreceipts', '0')"); +$this->basedb->doSQL($pdo,"INSERT INTO `%config%` (`id` , `name`, `setting`) VALUES (NULL , 'digiprintwork', '1')"); + // prepare for later inconsistency check if version is obsolete date_default_timezone_set($timezone); $installDate = date('Y-m-d H:i:s'); @@ -1800,7 +1828,8 @@ $zones[] = $timezone_identifiers[$i]; } echo json_encode($zones); } else if ($command == 'update') { -$installerVersion = "1.2.4"; + +$installerVersion = "1.2.5"; $admin = new InstallAdmin(); $pdo = $admin->openDbAndReturnPdo($_POST['host'],$_POST['db'],$_POST['user'],$_POST['password']); @@ -1830,7 +1859,7 @@ $supportedVersions = array("1.0.22","1.0.23","1.0.24","1.0.25","1.0.26","1.0.27" "1.0.40","1.0.41","1.0.42","1.0.43", "1.1.0","1.1.1","1.1.2","1.1.3","1.1.4","1.1.5","1.1.6","1.1.7","1.1.8", "1.1.9","1.1.10","1.1.11","1.1.12","1.1.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.0","1.2.1","1.2.2", "1.2.3", "1.2.4" ); if (!in_array($version, $supportedVersions)) { @@ -1838,7 +1867,7 @@ echo json_encode("Quellversion nicht unterstützt"); return; } -$ret = $admin->updateUserTable1203_1204($_POST['prefix'], $version, $_POST['db']); +$ret = $admin->updateUserTable1204_1205($_POST['prefix'], $version, $_POST['db']); if(session_id() == '') { session_start(); diff --git a/webapp/kitchen.html b/webapp/kitchen.html index baed5f7..a2e47d7 100644 --- a/webapp/kitchen.html +++ b/webapp/kitchen.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/manager.html b/webapp/manager.html index e696a9e..f354fcf 100644 --- a/webapp/manager.html +++ b/webapp/manager.html @@ -5,7 +5,7 @@ - + @@ -143,6 +143,11 @@ var MAN_DIGI_GOPAY_DESCR = ["Im Arbeitsablauf 'nur digital' bestimmt diese Einst "In the 'only digital' workflow this setting specifies if after pressing the 'paydesk' button in the waiter's view and paying the products shall be handled as served.", "En el modus 'digital' este boton especifica si los productos deben declarados como servidos despues pagar por click en el boton 'caja' en la vista de camarero."]; var MAN_WAITER_GOPAY_PRINT = ["Bestell-Kassenbutton druckt Arbeitsbons","Waiter's paydesk button prints also work receipts","Boton caja en vista de camarero imprime también tiquets de trabajo"]; +var MAN_ONE_PROD_WORKREC = ["Nur ein Produkt pro Arbeitsbon","Max. one product on a work receipt","Sólo un producto en un tique de trabajo"]; +var MAN_DIGI_PRINTWORK = ["Arbeitsbons in Küchen-/Baransicht","Work receipts in kitchen/bar view","Tiques de trabajo en modulo de cocina"]; +var MAN_DIGI_PRINTWORK_HINT = ["Sollen Arbeitsbon erstellt werden, wenn in der Küchen-/Baransicht Produkte als zubereitet markiert werden?", + "Shall work receipts be printed if products are declared cooked in the kitchen or bar view?", + "Imprimir tiques de trabajo si productos estan declarados cocinados en el module cocina or bar?"]; var MAN_WAITER_GOPAY_DESCR = ["Im Arbeitsablauf 'nur Arbeitsbons' bestimmt diese Einstellung, ob bei Druck auf den Button 'Kasse' Arbeitsbons gedruckt werden sollen.", "In the 'only work receipts' workflow this setting specifies if after pressing the 'paydesk' button in the waiter's view work receipts shall be printed.", "En el modus 'solo tiques de trabajar' este boton especifica se debe imprimido el tique de trabajar despues el click en el boton 'caja' en la vista de camarero."]; @@ -290,7 +295,7 @@ var MAN_CONFIRM_GO_LIVE = ["Die Umsatz- und Logdaten wurden gelöscht und nur di "La configuración esta re-creado. Entonces es necesario registrar de nuevo."]; var lang = 0; -var generalVals = [12,2,0,3,0,1,1,0,0,1, 0,50,20,10,1,0,0]; +var generalVals = [12,2,0,3,0,1,1,0,0,1, 0,50,20,10,1,0,0,0,1]; var numberOfClosings = 0; @@ -321,6 +326,8 @@ var generalValuesSettings = [ ["austria",MAN_AUSTRIA[lang],"s",10], ["digigopaysetready",MAN_DIGI_GOPAY_SET_READY[lang],"s",14], ["waitergopayprint",MAN_WAITER_GOPAY_PRINT[lang],"s",15], + ["oneprodworkreceipts",MAN_ONE_PROD_WORKREC[lang],"s",17], + ["digiprintwork",MAN_DIGI_PRINTWORK[lang],"s",18], ["addreceipttoprinter",MAN_ADD_RECPRINTER[lang],"s",16], ["workflowconfig",MAN_WORKFLOW[lang],"s",4], ["receiptfontsize",MAN_RECEIPT_FONTSIZE[lang],"s",0], @@ -442,6 +449,8 @@ function setLanguage(l) { $("#rectemplatehint").html(MAN_RECTEMPLATE_HINT[l]); $("#foodtemplatehint").html(MAN_FOODTEMPLATE_HINT[l]); $("#drinktemplatehint").html(MAN_DRINKTEMPLATE_HINT[l]); + + $("#digiprinthint").html(MAN_DIGI_PRINTWORK_HINT[l]); } function createMonthSelection(label) { @@ -537,6 +546,8 @@ function insertGeneralConfigItems(configResult) { $("#partOfAustria").html(createAustriaPart(values.austria)); $("#partOfDigigopaysetready").html(createDigigopaysetready(values.digigopaysetready)); $("#partOfWaitergopayprint").html(createWaitergopayprint(values.waitergopayprint)); + $("#partOfOneprodworkreceipts").html(createOneprodworkreceipts(values.oneprodworkreceipts)); + $("#partOfDigiprintwork").html(createDigiprintwork(values.digiprintwork)); var language = values.billlanguage; generalVals[2] = language; @@ -573,6 +584,8 @@ function insertGeneralConfigItems(configResult) { generalVals[10] = values.austria; generalVals[14] = values.digigopaysetready; generalVals[15] = values.waitergopayprint; + generalVals[17] = values.oneprodworkreceipts; + generalVals[18] = values.digiprintwork; $("#smtphost").val(values.smtphost); $("#partOfSmtpauth").html(createSMTPAuth(values.smtpauth)); @@ -612,7 +625,7 @@ function createReceiptFontPart() { html += ''; html += ''; - echo $button; - $colcounter++; - if ($colcounter == $numberOfCols) { - $colcounter = 0; - echo ""; - } - } - echo ""; - echo ""; + $button = $button . ' onclick="' . $onClickMethod . '"'; + $button = $button . ' style="' . $style . '; width:' . $porcentageWidth . '%;" />'; + echo $button; + $colcounter++; + if ($colcounter == $numberOfCols) { + $colcounter = 0; + echo ""; + } + } + echo ""; + echo ""; } - function getCurrency() { - $pdo = $this->dbutils->openDbAndReturnPdo(); + function getCurrency() { + $pdo = $this->dbutils->openDbAndReturnPdo(); - $sql = "SELECT setting from %config% where name='currency'"; - $stmt = $pdo->prepare($this->dbutils->resolveTablenamesInSqlString($sql)); - $stmt->execute(); - $row =$stmt->fetchObject(); - if ($row != null) { - return $row->setting; + $sql = "SELECT setting from %config% where name='currency'"; + $stmt = $pdo->prepare($this->dbutils->resolveTablenamesInSqlString($sql)); + $stmt->execute(); + $row =$stmt->fetchObject(); + if ($row != null) { + return $row->setting; } else { return "Euro"; - } + } + } + + public static function getConfigValue($pdo,$item,$default) { + $sql = "SELECT count(id) as countid FROM %config% WHERE name=?"; + $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); + $stmt->execute(array($item)); + $row =$stmt->fetchObject(); + if ($row->countid == 0) { + return $default; + } else { + $sql = "SELECT setting FROM %config% WHERE name=?"; + $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); + $stmt->execute(array($item)); + $row = $stmt->fetchObject(); + return $row->setting; + } + } + + public static function callPlugin($pdo,$fct,$condition) { + try { + if (!is_null(self::$plugins)) { + if (array_key_exists($fct,self::$plugins)) { + $plugin = self::$plugins->$fct; + if (($plugin->execution) === $condition) { + $cls = $plugin->PluginClass; + $fct=$plugin->PluginFct; + $call = "Plugin\\$cls::$fct"; + call_user_func($call,$pdo); + return true; + } + } + } + } catch(Exception $e) { } + return false; } } ?> \ No newline at end of file diff --git a/webapp/php/contenthandler.php b/webapp/php/contenthandler.php index 90c99aa..92848c5 100644 --- a/webapp/php/contenthandler.php +++ b/webapp/php/contenthandler.php @@ -19,8 +19,10 @@ $command = $_GET["command"]; Logger::logcmd($module,$command,""); +$plugins = havePlugins(); + if ($module == 'admin') { - $adminModule = new Admin; + $adminModule = new Admin(); $adminModule->handleCommand($command); } else if ($module == 'queue') { $queueContent = new QueueContent(); @@ -54,4 +56,27 @@ if ($module == 'admin') { $rating->handleCommand($command); } + +function havePlugins() { + if (file_exists("../plugins")) { + if (file_exists("../plugins/config.json")) { + $content = file_get_contents("../plugins/config.json"); + + $pluginconfig = json_decode($content); + + $props = get_object_vars($pluginconfig); + $keys = array_keys($props); + foreach ($keys as $aKey) { + $aPluginConfig = $pluginconfig->$aKey; + $className = $aPluginConfig->PluginClass; + require_once "../plugins/$className.php"; + } + CommonUtils::setPluginConfig($pluginconfig); + return $pluginconfig; + + } + } + return null; +} + ?> \ No newline at end of file diff --git a/webapp/php/printqueue.php b/webapp/php/printqueue.php index 93c2af3..a47d6d6 100644 --- a/webapp/php/printqueue.php +++ b/webapp/php/printqueue.php @@ -30,7 +30,7 @@ class PrintQueue { $this->getNextReceiptPrintJobs($_POST['pass'],$_GET['language'],"1,2,3,4,5,6",$fl); } } else if ($command == 'getNextClosingPrintJobs') { - $this->getNextClosingPrintJobs($_POST['pass'],$_GET['language']); + $this->getNextClosingPrintJobs($_POST['pass'],$_GET['language'],$fl); } else if ($command == 'getNextFoodWorkPrintJobs') { if (isset($_GET['printer'])) { $this->getNextFoodWorkPrintJobs($_GET['printer'],$_POST['pass'],$fl); @@ -362,7 +362,7 @@ class PrintQueue { echo json_encode($retArray); } - function getNextClosingPrintJobs($md5pass,$language) { + function getNextClosingPrintJobs($md5pass,$language,$fl=0) { $isCorrect = $this->isPasswordCorrect($md5pass,false); if ($isCorrect) { ob_start(); @@ -381,7 +381,7 @@ class PrintQueue { $jobid = $aClos['id']; $closid = $aClos["content"]; $printer = $aClos["printer"]; - $theClosing = $closing->getClosingSummaryWoSign($closid, $pdo, false); + $theClosing = $closing->getClosingSummaryWoSign($closid, $pdo, false,$fl); $aClosing = array("id" => $jobid,"closing" => $theClosing, "printer" => $printer); $closingarray[] = $aClosing; } diff --git a/webapp/php/queuecontent.php b/webapp/php/queuecontent.php index 79c63a7..8ca2c3b 100644 --- a/webapp/php/queuecontent.php +++ b/webapp/php/queuecontent.php @@ -197,17 +197,18 @@ class QueueContent { $result1 = $stmt->fetchAll(); - $sql = "SELECT DISTINCT %queue%.id as id,'-' as tableid,'-' as tablenr,longname,anoption,'-' as tableno,date_format(ordertime,'%Y-%m-%d %H:%i:00') as ordertime,cooking,TIMESTAMPDIFF(MINUTE,ordertime,?) AS waittime FROM %queue%,%products%,%prodtype%,%resttables%,%bill% "; + $sql = "SELECT DISTINCT q.id as id,'-' as tableid,'-' as tablenr,longname,anoption,'-' as tableno,date_format(ordertime,'%Y-%m-%d %H:%i:00') as ordertime,cooking,TIMESTAMPDIFF(MINUTE,ordertime,?) AS waittime FROM %products%,%prodtype%,%resttables%, %queue% q LEFT OUTER JOIN %bill% b "; + $sql .= " ON q.billid=b.id "; $sql .= "WHERE (readytime = '0000-00-00 00:00:00' AND "; $sql .= " ordertime is not null AND "; - $sql .= "%queue%.productid=%products%.id AND "; - $sql .= "%queue%.tablenr is null AND "; + $sql .= "q.productid=%products%.id AND "; + $sql .= "q.tablenr is null AND "; $sql .= "%products%.category=%prodtype%.id AND "; $sql .= "%prodtype%.kind=? AND "; - $sql .= "%queue%.isclosed is null AND "; - $sql .= "%queue%.workprinted='0') "; - $sql .= "AND (%queue%.billid is null OR ("; - $sql .= "%queue%.billid=%bill%.id AND %bill%.closingid is null)) "; + $sql .= "q.isclosed is null AND "; + $sql .= "q.workprinted='0') "; + $sql .= "AND (q.billid is null OR ( "; + $sql .= "b.closingid is null)) "; $sql .= "ORDER BY ordertime,longname,anoption,cooking DESC"; $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); @@ -439,8 +440,20 @@ class QueueContent { } } + private function doWorkPrint($pdo,$theTableid,$insertedQueueIds,$username,$payPrintType,$lang,$declareReadyDelivered = true) { + $oneProdForEachWorkRec = CommonUtils::getConfigValue($pdo, 'oneprodworkreceipts', 0); + if (($payPrintType != "s") || ($oneProdForEachWorkRec == 0)) { + return ($this->doWorkPrintCore($pdo,$theTableid,$insertedQueueIds,$username,$payPrintType,$lang,$declareReadyDelivered)); + } + $oneProdForEachWorkRec = CommonUtils::getConfigValue($pdo, 'oneprodworkreceipts', 0); + if ($oneProdForEachWorkRec == 1) { + foreach($insertedQueueIds as $aQueueId) { + $this->doWorkPrintCore($pdo,$theTableid,array($aQueueId),$username,$payPrintType,$lang,$declareReadyDelivered); + } + } + } - private function doWorkPrint($pdo,$theTableid,$insertedQueueIds,$username,$payPrintType,$lang) { + private function doWorkPrintCore($pdo,$theTableid,$insertedQueueIds,$username,$payPrintType,$lang,$declareReadyDelivered = true) { // is it server or local print? $foodJobsPrinter1 = $this->getJobsToPrint($pdo, 0, 1, $insertedQueueIds); @@ -448,13 +461,15 @@ class QueueContent { $drinkJobsPrinter1 = $this->getJobsToPrint($pdo, 1, 1, $insertedQueueIds); $drinkJobsPrinter2 = $this->getJobsToPrint($pdo, 1, 2, $insertedQueueIds); - if ($payPrintType == "s") { + if ($payPrintType == "s") { $this->createAWorkReceiptAndQueueWorkPrint($pdo,$foodJobsPrinter1,$theTableid,0,1,$username,$lang); $this->createAWorkReceiptAndQueueWorkPrint($pdo,$foodJobsPrinter2,$theTableid,0,2,$username,$lang); $this->createAWorkReceiptAndQueueWorkPrint($pdo,$drinkJobsPrinter1,$theTableid,1,1,$username,$lang); $this->createAWorkReceiptAndQueueWorkPrint($pdo,$drinkJobsPrinter2,$theTableid,1,1,$username,$lang); } - $this->declareReadyAndDelivered($pdo, $insertedQueueIds); + if ($declareReadyDelivered) { + $this->declareReadyAndDelivered($pdo, $insertedQueueIds); + } $result = array_merge($foodJobsPrinter1,$foodJobsPrinter2,$drinkJobsPrinter1,$drinkJobsPrinter2); return $result; @@ -636,6 +651,14 @@ class QueueContent { return($resultarray); } + function getTableIdOfQueue($pdo,$queueid) { + $sql = "SELECT tablenr as tableid FROM %queue% WHERE id=?"; + $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); + $stmt->execute(array($queueid)); + $row =$stmt->fetchObject(); + return $row->tableid; + } + /* * Kitchen can delare a product as being cooked */ @@ -666,6 +689,16 @@ class QueueContent { // can bypass the supplydesk $this->declareProductBeDeliveredWithGivenPdo($pdo,$queueid); } + + $payprinttype = CommonUtils::getConfigValue($pdo, 'payprinttype', "l"); + $digiprintwork = CommonUtils::getConfigValue($pdo, 'digiprintwork', 1); + if (($payprinttype === 's') && ($digiprintwork == 1)) { + $theTableid = $this->getTableIdOfQueue($pdo, $queueid); + if (is_null($theTableid)) { + $theTableid = 0; + } + $this->doWorkPrint($pdo,$theTableid,array($queueid),$_SESSION['currentuser'],$payprinttype, $_SESSION['language'],false); + } $pdo->commit(); echo json_encode(array("status" => "OK")); } @@ -1576,6 +1609,12 @@ class QueueContent { $ids_array = explode ( ',', $ids ); $pdo = $this->dbutils->openDbAndReturnPdo(); + + if (CommonUtils::callPlugin($pdo, "createBill", "replace")) { + return; + } + CommonUtils::callPlugin($pdo, "createBill", "before"); + $pdo->beginTransaction(); // check if all items are not paid yet! @@ -1676,6 +1715,8 @@ class QueueContent { $billInfo = array("billid" => $billid, "date" => $currentTime); + CommonUtils::callPlugin($pdo, "createBill", "after"); + echo json_encode(array("status" => "OK", "msg" => $billInfo)); } diff --git a/webapp/php/utilities/TypeAndProducts/TypeAndProductFileManager.php b/webapp/php/utilities/TypeAndProducts/TypeAndProductFileManager.php index f6e7deb..c598c98 100644 --- a/webapp/php/utilities/TypeAndProducts/TypeAndProductFileManager.php +++ b/webapp/php/utilities/TypeAndProducts/TypeAndProductFileManager.php @@ -339,6 +339,8 @@ class TypeAndProductFileManager { } private function fillProductDbTable($pdo,$leafArray) { + $sortArr = array(); + for ($i=0;$i < $leafArray->size(); $i++) { $theLeafEntry = $leafArray->get($i); $product = new ProductEntry(); @@ -356,6 +358,14 @@ class TypeAndProductFileManager { $available = $product->getAvailable(); $favorite = 0; $category = $theLeafEntry->getReference(); + + $sorting = 0; + if (array_key_exists($category, $sortArr)) { + $sorting = $sortArr[$category] + 1; + $sortArr[$category] = $sorting; + } else { + $sortArr[$category] = 0; + } $isNewProd = true; if (!is_null($prodid)) { @@ -369,10 +379,10 @@ class TypeAndProductFileManager { } } if ($isNewProd) { - $sql = "INSERT INTO `%products%` (`id`, `shortname`, `longname`, `priceA`, `priceB`, `priceC`, `tax`, `category`,`available`,`favorite`) VALUES (NULL,"; - $sql = $sql . "?,?,?,?,?,?,?,?,?)"; + $sql = "INSERT INTO `%products%` (`id`, `shortname`, `longname`, `priceA`, `priceB`, `priceC`, `tax`, `category`,`available`,`favorite`,`sorting`) VALUES (NULL,"; + $sql = $sql . "?,?,?,?,?,?,?,?,?,?)"; $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); - $stmt->execute(array($shortName,$longName,$priceA,$priceB,$priceC,$tax, $category,$available,$favorite)); + $stmt->execute(array($shortName,$longName,$priceA,$priceB,$priceC,$tax, $category,$available,$favorite,$sorting)); $prodid = $pdo->lastInsertId(); HistFiller::createProdInHist($pdo, $prodid); } else { @@ -391,16 +401,14 @@ class TypeAndProductFileManager { || ($row->tax != $tax)); if ($changed) { - $sql = "UPDATE %products% SET shortname=?,longname=?,priceA=?,priceB=?,priceC=?,tax=?,available=? WHERE id=?"; + $sql = "UPDATE %products% SET shortname=?,longname=?,priceA=?,priceB=?,priceC=?,tax=?,available=?,sorting=? WHERE id=?"; $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); - $stmt->execute(array($shortName,$longName,$priceA,$priceB,$priceC,$tax,$available,$prodid)); - - $sql = "SELECT sorting,available,favorite,audio FROM %products% WHERE id=?"; - $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); - $stmt->execute(array($prodid)); - $row = $stmt->fetchObject(); - + $stmt->execute(array($shortName,$longName,$priceA,$priceB,$priceC,$tax,$available,$sorting,$prodid)); HistFiller::updateProdInHist($pdo, $prodid); + } else { + $sql = "UPDATE %products% SET sorting=? WHERE id=?"; + $stmt = $pdo->prepare(DbUtils::substTableAlias($sql)); + $stmt->execute(array($sorting,$prodid)); } $sql = "UPDATE %products% SET category=?,removed=? WHERE id=?"; diff --git a/webapp/php/utilities/basedb.php b/webapp/php/utilities/basedb.php index 1731f62..232a22f 100644 --- a/webapp/php/utilities/basedb.php +++ b/webapp/php/utilities/basedb.php @@ -349,7 +349,7 @@ class Basedb { CREATE TABLE `%extras%` ( `id` INT (10) NOT NULL AUTO_INCREMENT PRIMARY KEY , `name` VARCHAR ( 150 ) NOT NULL, - `price` DECIMAL (5,2) NOT NULL, + `price` " . DECIMALSMALL . "NOT NULL, `removed` INT(1) NULL ) CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE = InnoDb ; "; @@ -390,10 +390,10 @@ class Basedb { `id` INT (10) NOT NULL AUTO_INCREMENT PRIMARY KEY , `shortname` VARCHAR ( 150 ) NOT NULL, `longname` VARCHAR ( 150 ) NOT NULL, - `priceA` DECIMAL (5,2) NULL, - `priceB` DECIMAL (5,2) NULL, - `priceC` DECIMAL (5,2) NULL, - `tax` DECIMAL (5,2) NULL, + `priceA` " . DECIMALSMALL . " NULL, + `priceB` " . DECIMALSMALL . " NULL, + `priceC` " .DECIMALSMALL . " NULL, + `tax` " . DECIMALSMALL . " NULL, `category` INT(3) NULL, `favorite` INT(1) NULL, `sorting` INT(2) NULL, @@ -426,7 +426,7 @@ class Basedb { `id` INT (10) NOT NULL AUTO_INCREMENT PRIMARY KEY , `closingdate` DATETIME NOT NULL , `billcount` INT(5) NOT NULL , - `billsum` DECIMAL (9,2) NOT NULL , + `billsum` " . DECIMALBIG . " NOT NULL , `signature` blob NULL, `remark` VARCHAR ( 1000 ) ) CHARACTER SET utf8 COLLATE utf8_general_ci ENGINE = InnoDb ; @@ -456,17 +456,17 @@ class Basedb { CREATE TABLE `%bill%` ( `id` INT (10) NOT NULL AUTO_INCREMENT PRIMARY KEY , `billdate` DATETIME NOT NULL , - `brutto` DECIMAL (7,2) NULL, - `netto` DECIMAL (7,2) NULL, - `prevbrutto` DECIMAL (9,2) NULL, - `prevnetto` DECIMAL (9,2) NULL, + `brutto` " . DECIMALMIDDLE . " NULL, + `netto` " . DECIMALMIDDLE . " NULL, + `prevbrutto` " . DECIMALBIG . " NULL, + `prevnetto` " . DECIMALBIG . " NULL, `tableid` VARCHAR ( 150 ) NOT NULL, `closingid` INT(4) NULL, `status` VARCHAR(2) NULL, `paymentid` INT(2) NULL, `userid` INT(3) NULL, `ref` INT(10) NULL, - `tax` DECIMAL (5,2) NULL, + `tax` " . DECIMALSMALL . " NULL, `host` INT(2) NULL, `reason` VARCHAR ( 150 ) NULL, `signature`blob NULL, @@ -492,8 +492,8 @@ class Basedb { `tablenr` INT( 3 ) NULL , `productid` INT( 10 ) NULL , `pricelevel` INT( 3 ) NOT NULL , - `price` DECIMAL (5,2) NOT NULL, - `tax` DECIMAL (5,2) NOT NULL, + `price` " . DECIMALSMALL . " NOT NULL, + `tax` " . DECIMALSMALL . " NOT NULL, `productname` VARCHAR( 150 ) NULL, `ordertime` DATETIME NULL , `orderuser` INT(10) NOT NULL , @@ -548,10 +548,10 @@ class Basedb { `prodid` INT (10) NOT NULL, `shortname` VARCHAR ( 150 ) NOT NULL, `longname` VARCHAR ( 150 ) NOT NULL, - `priceA` DECIMAL (5,2) NULL, - `priceB` DECIMAL (5,2) NULL, - `priceC` DECIMAL (5,2) NULL, - `tax` DECIMAL (5,2) NULL, + `priceA` " . DECIMALSMALL . " NULL, + `priceB` " . DECIMALSMALL . " NULL, + `priceC` " . DECIMALSMALL . " NULL, + `tax` " . DECIMALSMALL . " NULL, `sorting` INT(2) NULL, `available` INT(2) NOT NULL, `favorite` INT(1) NULL, diff --git a/webapp/php/utilities/decimaldefs.php b/webapp/php/utilities/decimaldefs.php new file mode 100644 index 0000000..5b610bf --- /dev/null +++ b/webapp/php/utilities/decimaldefs.php @@ -0,0 +1,5 @@ +dbutils = new DbUtils(); } - - public function initSortCurrentProductTable($pdo) { - // first find all product types - $sql = "SELECT id FROM %prodtype% WHERE removed is null"; - $stmt = $pdo->prepare($this->dbutils->resolveTablenamesInSqlString($sql)); - $stmt->execute(); - $alltypes = $stmt->fetchAll(); - - foreach($alltypes as $aType) { - $typeid = $aType["id"]; - - // now sort inside this prodtype - $sql = "SELECT id FROM %products% WHERE removed is null AND category=?"; - $stmt = $pdo->prepare($this->dbutils->resolveTablenamesInSqlString($sql)); - $stmt->execute(array($typeid)); - $allprods = $stmt->fetchAll(); - - $s = 0; - - foreach($allprods as $aProd) { - $prodid = $aProd["id"]; - $sql = "UPDATE %products% SET sorting=? WHERE id=?"; - $stmt = $pdo->prepare($this->dbutils->resolveTablenamesInSqlString($sql)); - $stmt->execute(array($s,$prodid)); - $s++; - } - } - } public function getMaxprodSortOfType($pdo,$typeid) { $sql = "SELECT MAX(sorting) as maxsort FROM %products% WHERE removed is null AND category=?"; diff --git a/webapp/preferences.html b/webapp/preferences.html index c9a6c78..8d0ded8 100644 --- a/webapp/preferences.html +++ b/webapp/preferences.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/products.html b/webapp/products.html index ceb9556..6a389a9 100644 --- a/webapp/products.html +++ b/webapp/products.html @@ -7,7 +7,7 @@ - + @@ -66,6 +66,9 @@ var PROD_PRINTER_1 = ["Drucker 1","Printer 1","Imprimadora 1"]; var PROD_PRINTER_2 = ["Drucker 2","Printer 2","Imprimadora 2"]; var PROD_PLACEHOLDER_NEW_PRODTYPE = ["Name der neuen Kategorie", "Name of the new category","Nombre de la categoría nueva"]; +// this is the maximal price that a product may cost +var MAX_PRICE = 999.99; + var decpoint = "."; var lang = 0; @@ -436,7 +439,7 @@ function setLanguage(language) { } if (props.status) { - if ((props.priceA > 999.99) || (props.priceB > 999.99) || (props.priceC > 999.99)) { + if ((props.priceA > MAX_PRICE) || (props.priceB > MAX_PRICE) || (props.priceC > MAX_PRICE)) { alert(PROD_MAX_PRICE_EXCEEDED[lang]); return; } diff --git a/webapp/rating.html b/webapp/rating.html index 5a9ec61..e8b8db8 100644 --- a/webapp/rating.html +++ b/webapp/rating.html @@ -7,7 +7,7 @@ - + diff --git a/webapp/reports.html b/webapp/reports.html index 32e728f..96c54d1 100644 --- a/webapp/reports.html +++ b/webapp/reports.html @@ -7,7 +7,7 @@ - + diff --git a/webapp/reservation.html b/webapp/reservation.html index 960fd5e..f7629a3 100644 --- a/webapp/reservation.html +++ b/webapp/reservation.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/supplydesk.html b/webapp/supplydesk.html index 269bfaf..f9801cf 100644 --- a/webapp/supplydesk.html +++ b/webapp/supplydesk.html @@ -5,7 +5,7 @@ - + diff --git a/webapp/waiter.html b/webapp/waiter.html index 267173a..000bdce 100644 --- a/webapp/waiter.html +++ b/webapp/waiter.html @@ -4,7 +4,7 @@ - +