From 3f51a323bdc08a58454d76bd5dbd8f9e31dc61fc Mon Sep 17 00:00:00 2001 From: Josef Rokos Date: Fri, 3 Oct 2014 12:34:58 +0200 Subject: [PATCH] =?UTF-8?q?Zprovozn=C4=9Bna=20sestava=20objedn=C3=A1vky.?= =?UTF-8?q?=20Umo=C5=BEn=C4=9Bn=20upload=20souboru=20s=20raz=C3=ADtkem,=20?= =?UTF-8?q?kter=C3=A9=20se=20zobrazuje=20na=20sestav=C4=9B=20objedn=C3=A1v?= =?UTF-8?q?ky=20(Globaln=C3=AD=20nastaven=C3=AD=20-=20Po=C5=BEadavky=20-?= =?UTF-8?q?=20Raz=C3=ADtko).=20closes=20#136?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../info/bukova/isspst/data/SettingsData.java | 9 ++++ .../bukova/isspst/reporting/ParamFiller.java | 14 ++++++ .../isspst/ui/settings/GlobalSettingsVM.java | 41 +++++++++++++++++- .../WEB-INF/locales/zk-label.properties | 4 ++ src/main/webapp/WEB-INF/reports/order.jasper | Bin 43185 -> 45204 bytes src/main/webapp/WEB-INF/reports/order.jrxml | 15 ++++--- .../webapp/WEB-INF/reports/orderItems.jasper | Bin 28826 -> 28939 bytes .../webapp/WEB-INF/reports/orderItems.jrxml | 2 +- .../webapp/settings/global/requirements.zul | 28 ++++++++++++ src/main/webapp/settings/globalSettings.zul | 8 +--- 10 files changed, 108 insertions(+), 13 deletions(-) create mode 100644 src/main/webapp/settings/global/requirements.zul diff --git a/src/main/java/info/bukova/isspst/data/SettingsData.java b/src/main/java/info/bukova/isspst/data/SettingsData.java index d7795714..acbb9fdd 100644 --- a/src/main/java/info/bukova/isspst/data/SettingsData.java +++ b/src/main/java/info/bukova/isspst/data/SettingsData.java @@ -21,6 +21,7 @@ public class SettingsData { private String bankCode; private List vehicles; private Map refunds; + private String stampFile; public SettingsData() { newReqTemplate = new MailMessage(); @@ -131,4 +132,12 @@ public class SettingsData { this.refunds = refunds; } + public String getStampFile() { + return stampFile; + } + + public void setStampFile(String stampFile) { + this.stampFile = stampFile; + } + } diff --git a/src/main/java/info/bukova/isspst/reporting/ParamFiller.java b/src/main/java/info/bukova/isspst/reporting/ParamFiller.java index ae17f290..3911a175 100644 --- a/src/main/java/info/bukova/isspst/reporting/ParamFiller.java +++ b/src/main/java/info/bukova/isspst/reporting/ParamFiller.java @@ -1,10 +1,12 @@ package info.bukova.isspst.reporting; import info.bukova.isspst.data.AuthItem; +import info.bukova.isspst.data.Order; import info.bukova.isspst.data.TripBill; import info.bukova.isspst.data.User; import info.bukova.isspst.data.UserSettingsData; import info.bukova.isspst.services.requirement.TripRequirementService; +import info.bukova.isspst.services.settings.GlobalSettingsService; import info.bukova.isspst.services.users.UserService; import info.bukova.isspst.storage.FileStorage; @@ -20,12 +22,16 @@ public class ParamFiller { private FileStorage storage; @Autowired private TripRequirementService tripReqService; + @Autowired + private GlobalSettingsService settingService; public void fill() { if (definition.getDataSet() == null || definition.getDataSet().isEmpty()) { return; } + definition.getParams().clear(); + if ((definition.getDataSet().get(0) instanceof TripBill) && definition.getReport().isSingleRecord()) { if (userService.getUserSettings().getSignatureFile() != null @@ -49,6 +55,14 @@ public class ParamFiller { definition.setParam("P_APPROVER_SIGNATURE", storage.serverPath(approverSettings.getSignatureFile())); } } + + if ((definition.getDataSet().get(0) instanceof Order) + && definition.getReport().isSingleRecord()) { + if (settingService.getSettings().getStampFile() != null + && !settingService.getSettings().getStampFile().isEmpty()) { + definition.setParam("P_STAMP", storage.serverPath(settingService.getSettings().getStampFile())); + } + } } } diff --git a/src/main/java/info/bukova/isspst/ui/settings/GlobalSettingsVM.java b/src/main/java/info/bukova/isspst/ui/settings/GlobalSettingsVM.java index 2dca91f7..b085b676 100644 --- a/src/main/java/info/bukova/isspst/ui/settings/GlobalSettingsVM.java +++ b/src/main/java/info/bukova/isspst/ui/settings/GlobalSettingsVM.java @@ -8,18 +8,26 @@ import info.bukova.isspst.data.Vehicle; import info.bukova.isspst.mail.MailMessage; import info.bukova.isspst.services.settings.GlobalSettingsService; import info.bukova.isspst.sort.ReflectionTools; +import info.bukova.isspst.storage.FileStorage; import info.bukova.isspst.ui.LocaleConverter; import info.bukova.isspst.ui.SecurityHelper; +import java.awt.image.RenderedImage; +import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Set; +import javax.imageio.ImageIO; + import org.zkoss.bind.annotation.BindingParam; import org.zkoss.bind.annotation.Command; +import org.zkoss.bind.annotation.ContextParam; +import org.zkoss.bind.annotation.ContextType; import org.zkoss.bind.annotation.Init; import org.zkoss.bind.annotation.NotifyChange; +import org.zkoss.zk.ui.event.UploadEvent; import org.zkoss.zk.ui.select.annotation.WireVariable; import org.zkoss.zul.Window; @@ -31,7 +39,9 @@ public class GlobalSettingsVM { private LocaleConverter locConverter; private Address selAddress; private List refundsHours; - + @WireVariable + private FileStorage storage; + @Init public void init() { settings = settingsService.getSettings(); @@ -49,6 +59,23 @@ public class GlobalSettingsVM { window.detach(); } + @Command + @NotifyChange({"settings", "stampImg"}) + public void uploadStamp(@ContextParam(ContextType.TRIGGER_EVENT) UploadEvent upEvent) { + int i = upEvent.getMedia().getName().lastIndexOf("."); + String fileName = "StampImageFile" + upEvent.getMedia().getName().substring(i); + + storage.saveFile(upEvent.getMedia().getByteData(), fileName); + settings.setStampFile(fileName); + } + + @Command + @NotifyChange("stampImg") + public void removeStamp() { + storage.removeFile(settings.getStampFile()); + settings.setStampFile(null); + } + public List getRequirementFields() { return ReflectionTools.getEntityFields(Requirement.class); } @@ -107,5 +134,17 @@ public class GlobalSettingsVM { this.refundsHours = new ArrayList(settings.getRefunds().keySet()); Collections.sort(this.refundsHours); } + + public RenderedImage getStampImg() { + if (settings.getStampFile() == null || settings.getStampFile().isEmpty()) { + return null; + } + + try { + return ImageIO.read(storage.file(settings.getStampFile())); + } catch (IOException e) { + return null; + } + } } diff --git a/src/main/webapp/WEB-INF/locales/zk-label.properties b/src/main/webapp/WEB-INF/locales/zk-label.properties index 4c81e9a6..93e135cc 100644 --- a/src/main/webapp/WEB-INF/locales/zk-label.properties +++ b/src/main/webapp/WEB-INF/locales/zk-label.properties @@ -169,6 +169,9 @@ GlobalSettingsVehicles=Dopravní prostředky GlobalSettingsRefunds=Náhrady GlobalSettingsFreeMealsCount=Počet jídel zdarma GlobalSettingsHours=Hodin +GlobalSettingsUploadStamp=Nahrát obrázek razítka +GlobalSettingsStamp=Razítko +GlobalSettingsReqEnable=Povolení požadavků UserSettings=Uživatelské nastavení @@ -221,6 +224,7 @@ LogedInUser=Přihlášený uživatel: ButtonStorno=Storno ButtonSave=Uložit +ButtonDelete=Smazat HeaderText=Hlavička diff --git a/src/main/webapp/WEB-INF/reports/order.jasper b/src/main/webapp/WEB-INF/reports/order.jasper index fc9bb6cd7ddd16d3e80946ea12e652ea975753bd..166a53abeabb82d4b69786a601f53fc2583060c4 100644 GIT binary patch literal 45204 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 Wo0wSLmaolB56%xZO_49fME@UNU#!mn literal 43185 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 AjQ{`u diff --git a/src/main/webapp/WEB-INF/reports/order.jrxml b/src/main/webapp/WEB-INF/reports/order.jrxml index 0561e57d..de9d51de 100644 --- a/src/main/webapp/WEB-INF/reports/order.jrxml +++ b/src/main/webapp/WEB-INF/reports/order.jrxml @@ -2,10 +2,11 @@ - + + @@ -63,7 +64,7 @@ - + @@ -311,11 +312,15 @@ - - + + - + + + + + diff --git a/src/main/webapp/WEB-INF/reports/orderItems.jasper b/src/main/webapp/WEB-INF/reports/orderItems.jasper index 2ad94d3242899224d6ed91c228d2c870715020f2..0d72c3e87cb986f340c32c8e2804932f3b45cb90 100644 GIT binary patch delta 3234 zcmd5V6h3b$Upf#(5D=ksd~{5U6p)W8Uu{8ze%KF?%?vA4MM?{J+1L;5mTXz# zV&*tMmXR!T$re9;hzp9zh?~Y`S++S6e{69Yqb`Q%aGRStofCK7doOUS!}OvALV8gGA-%}Jlf4*lU+E>>T$Yb_o$)wQl7U~Y*5P^bHb}L z{!qCCO%-`KSnkA=biY;ZWDfL{<>HPCCv%I|OL+-sTe%G5D|Kw+Xjx@Yy?A@C0MY&4 zzDB{@!ygIj#&4>MlXy5r@D2)!_(XL^0*^-u0m0*w$^L515+01@XVBi?)#0537I8q` z5$K$WQHB&ATS$?P{;po3E8v&u1W9zir{{6{+yQ6Zq>um_{Glp!g~d%J%{^Ph2f%pV zBzYrxx({^qdwaZo@x7o;_0|-!?YO_@S+XapmyTYj@iH=N>q?`B8Kb1w-oA8=lu9ZR zx5M*_M?WBR`Scc#bY7W6g}C*#PP^IB?l9YJ4wt+LC+bRGmI;Xx(r&a_t!AUE(PmX< zP7*Wk?DOf30l(kd!DWzed3l1o+)}%dQn;T6 zXZWI6g_zxti7BR~v{G+Mr(-6$HS9_LRRFe% zpW*8QL>Tm8-hJ z3Ts+Z>Dtz+)2Bs!JN@|=0H9}446*|Ko!)+N3bz-P6d8&Q73GGClCtvl;qTj)E8!k4&(L(Vshpq7rXI1buFN`Z4M4SpmYeq#A>fwZ{DO5rlAfh)`i*O(P<(wzAhE`SOy($iFv zcM0^Q*i)nFqYzCQglH;*vZk^ZswoBMH04fMO$ktFDtoe~p11xsUVSq`gW`K*o^n30vT23Et?k=4ws%ms|Gr&-<56U)>g>dN5%bz((z)ue8) zK85WkWj`ThKP6=kk+O$L*(0Rv2q`;C%8rw=k#u5JK>unahn+eC9?j0gQ!TN$w>R!T DyP+q5 delta 3171 zcmd5#fi&J#sW$$+>ewF%fKP>6tywCG| z?|II9PT!_GuCVtmvt#|nJjKQhFaTE=2T3~JY%xgUU_#%fV1UCj#=X($Bw)gz4hy^; z;2U?CUSq^`k!X1l;d~L{PC!s%VVQP5KkUSdmB~zvt6iD9om$MAHxw=6*A<3>1cpR5 zfgw2&XGl)O8Ip)+hJ-yQ4X}ckooLm!Q3G#B7|Ija5!nQG2+mTR`0|&>q_yXde?4B*jbt($V~I~xV3)r;FkHEQoSb3fhywP(8Brq_yc2p ze7tDhG#*aj{QaB^uV~O_@c0BS#QAz9acFVjbRL|@-!w-g(B*$dOyLP-SExINQHCrY zOC_W$5(smFP*9Q+CCY=oKABuxP`JjDu(P3@t-K+5+CRl#?jCxkxfTM=;*moL%s|7fY+d*66mlVo&aBF4RbxR2LQ9+uUNY znaAkwn>Cpdo!s1Fb6cFT2l->vTKQv~Yb_ve4r?{d->??Z{Gc_D#_z0eX|8d==JJ>M zDmBDPgE0M#$NKTZg|i3uF0m-J2gQ_k0Ji)Az<`%O5WC?hj@TSJ1>Idoqt(I_&x;3m z@IJoUYF4mOJkr{xNlGLmOp%URZ3}pnyUnIaeX;6}c+}3ZUHID6Qe5iziZvpesX^UxQ2ce;do+}x-r+hYTDw~zB}^mC?AUpUa~ zH&a9=Sr6J*%+y?8+yMM*@|F}DGx%x$MxMToZ?DiBbIzQ3a^fU`2Bu_C5Q=pBBSPc$ z8mo+zl~uLI%IfM$qqlDEJfpEj1q@HFE*(r;S)7VBU3Dpc!QYeM7Tm$jT_yQ<;T|81 zFv#GWMFrp6DqLJ75L~N*2lz!-e%dHpn*_(<(IhwrkML^OEHXvNImQMvyLTr~y#h(} z2W$~*%{@&2>+y%+;;52lYI+ya+b|55I+VxZYU`))t8D(0Y<`-bCyAP28GclTACTei z%J3btK8KY<@cSvaK`U&dDAF+mH&4MO3PTijkCDDOscRT+bsUG=1g;h&e-6PvLvWuS zt0Qckfc;C+EQ(f%5nf)uZMrFt;e!zMTg)?T(u-ps+JVRSBt=L)gnw*Eh*Ac?RthlN|H`dzp&hm z*79Ri8U|Ydrv)R+l&qeq*g~eJo0Q3#SRpg9VrFFqwuBj(jV)kq5vZBLDyZ diff --git a/src/main/webapp/WEB-INF/reports/orderItems.jrxml b/src/main/webapp/WEB-INF/reports/orderItems.jrxml index b1adf29d..8a1e42a5 100644 --- a/src/main/webapp/WEB-INF/reports/orderItems.jrxml +++ b/src/main/webapp/WEB-INF/reports/orderItems.jrxml @@ -123,7 +123,7 @@ - + diff --git a/src/main/webapp/settings/global/requirements.zul b/src/main/webapp/settings/global/requirements.zul new file mode 100644 index 00000000..efc84862 --- /dev/null +++ b/src/main/webapp/settings/global/requirements.zul @@ -0,0 +1,28 @@ + + + + +
+ +
+
+ + + +