From 3a8954a90915717c27fc5c636fa54a578fe271db Mon Sep 17 00:00:00 2001 From: Josef Rokos Date: Wed, 10 Sep 2014 22:19:40 +0200 Subject: [PATCH] =?UTF-8?q?Formul=C3=A1=C5=99=20v=20agend=C4=9B=20u=C5=BEi?= =?UTF-8?q?vatel=C5=AF=20byl=20roz=C5=A1=C3=AD=C5=99en=20o=20tab=20pro=20z?= =?UTF-8?q?ad=C3=A1n=C3=AD=20adresy=20u=C5=BEivatele.=20Na=20sestavy=20?= =?UTF-8?q?=C5=BE=C3=A1dosti=20o=20slu=C5=BEebn=C3=AD=20cestu=20a=20vy?= =?UTF-8?q?=C3=BA=C4=8Dtov=C3=A1n=C3=AD=20slu=C5=BEebn=C3=AD=20cesty=20byl?= =?UTF-8?q?a=20p=C5=99id=C3=A1na=20adresa.=20closes=20#128?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 + .../java/info/bukova/isspst/data/User.java | 16 ++ .../info/bukova/isspst/data/UsersAddress.java | 50 +++++ .../webapp/WEB-INF/reports/tripBill.jasper | Bin 41904 -> 43796 bytes .../webapp/WEB-INF/reports/tripBill.jrxml | 16 +- .../WEB-INF/reports/tripRequirement.jasper | Bin 53914 -> 56020 bytes .../WEB-INF/reports/tripRequirement.jrxml | 12 ++ src/main/webapp/admin/users/userForm.zul | 200 +++++++++++------- 8 files changed, 218 insertions(+), 82 deletions(-) create mode 100644 src/main/java/info/bukova/isspst/data/UsersAddress.java diff --git a/pom.xml b/pom.xml index 5a13e178..ba907f2c 100644 --- a/pom.xml +++ b/pom.xml @@ -305,6 +305,12 @@ xercesImpl 2.8.1 + + + commons-io + commons-io + 1.4 + diff --git a/src/main/java/info/bukova/isspst/data/User.java b/src/main/java/info/bukova/isspst/data/User.java index a8422b52..f1b36fe7 100644 --- a/src/main/java/info/bukova/isspst/data/User.java +++ b/src/main/java/info/bukova/isspst/data/User.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import javax.persistence.Column; +import javax.persistence.Embedded; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.JoinColumn; @@ -43,10 +44,13 @@ public class User extends Member implements UserDetails, DataModel { private List authorities; @Column(name="SETTINGS", length=1048576) private String settings; + @Embedded + private UsersAddress address; public User() { authorities = new ArrayList(); setParents(new ArrayList()); + address = new UsersAddress(); } @Override @@ -207,4 +211,16 @@ public class User extends Member implements UserDetails, DataModel { this.settings = settings; } + public UsersAddress getAddress() { + if (address == null) { + address = new UsersAddress(); + } + + return address; + } + + public void setAddress(UsersAddress address) { + this.address = address; + } + } diff --git a/src/main/java/info/bukova/isspst/data/UsersAddress.java b/src/main/java/info/bukova/isspst/data/UsersAddress.java new file mode 100644 index 00000000..d5aeb44b --- /dev/null +++ b/src/main/java/info/bukova/isspst/data/UsersAddress.java @@ -0,0 +1,50 @@ +package info.bukova.isspst.data; + +import javax.persistence.Column; +import javax.persistence.Embeddable; + +@Embeddable +public class UsersAddress { + + @Column(name = "STREET") + private String street; + @Column(name = "HOUSE_NUMBER") + private String houseNumber; + @Column(name = "ZIP_CODE") + private String zipCode; + @Column(name = "CITY") + private String city; + + public String getStreet() { + return street; + } + + public void setStreet(String street) { + this.street = street; + } + + public String getHouseNumber() { + return houseNumber; + } + + public void setHouseNumber(String houseNumber) { + this.houseNumber = houseNumber; + } + + public String getZipCode() { + return zipCode; + } + + public void setZipCode(String zipCode) { + this.zipCode = zipCode; + } + + public String getCity() { + return city; + } + + public void setCity(String city) { + this.city = city; + } + +} diff --git a/src/main/webapp/WEB-INF/reports/tripBill.jasper b/src/main/webapp/WEB-INF/reports/tripBill.jasper index 3777829c09ac82e0c07ddba7d87e0bc53f8c0766..3780bb8097df68b82d06404b65619497ba489e2c 100644 GIT binary patch literal 43796 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 literal 41904 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 diff --git a/src/main/webapp/WEB-INF/reports/tripBill.jrxml b/src/main/webapp/WEB-INF/reports/tripBill.jrxml index 6c2c48b6..142b8b15 100644 --- a/src/main/webapp/WEB-INF/reports/tripBill.jrxml +++ b/src/main/webapp/WEB-INF/reports/tripBill.jrxml @@ -2,7 +2,7 @@ - + @@ -41,6 +41,11 @@ + + + + + @@ -196,6 +201,15 @@ tuzemské pracovní cesty]]> + + + + + + + + + diff --git a/src/main/webapp/WEB-INF/reports/tripRequirement.jasper b/src/main/webapp/WEB-INF/reports/tripRequirement.jasper index fb065a3537495619186c3ea5e513a251d814e311..cfd40c1afadcc36201224674960f1b2b630374e3 100644 GIT binary patch delta 8409 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 Ysiz}hbo>7wa#Ny_5Ex~weKYKT0J{wOX8-^I delta 6463 zcmcgw3s_ZE7GCSzi(K)50wRctg0BQbATEp;ZH-kGD#q%&rtmCdL#=KSaGE8O$R^nLX;p?lr6{GRA{ zVtd)ZoOoSzinwNSkzVN-qKC>zRD|we=qWp$=Gcc|HZB#fCp*AB*pRGr+?#BizTDy> zaoQ(DL|Z(>_O$~!uKCnkt{a#$Qoo*4*qTXQdVfsnGD1(?wX_U2q%P;&o4QR;UC+l_ zOqSx@#|j+w#NjeN?XJt#{8svu56l^@hdM=0Gh30~AF~x1p>HMLJ=m}n>9}_*Id}85 ziq;juoP(@82rb=1jHnpMlSIV>!D4$w+Mql=Wv6g7ld|->rF?f$>2Nl)`y4}NE(b!K z*)A1`$r>2RjuKF5%T%W+Q{v-C8oJ`7uzqoZ*0}l%FNchOuYX>RP){`O4Y(0Nk09T z5p}-t&iDJ@0*j)!CsViLqWoDIj@fhbiySi?GmGspeeYdfEUnyDRarC7Bx3fr=MYh` z&tH`8&++x1lJ6*(Y%iQY(=mC-0;T|`C-XqP7DKUKWTw6mAJf${3C5zM^ zRH>!Z2CC#GwZSU2lG?*6sZtxFlDE{7RPvG9P?cIsZMaHpq&7k&U#V%yD)~t@RV9C^ zrK{9dY8fg8NG(gHc2dhxDNt&oRSJ^YSe4pKZM;gsQhQXT4pN(_Qb+2fZ|*UbLZmiX zrOwbafKycJBEhLDg-UIjN?}qfP^qibW~$UpYO_@8F0~?+dPuEUrJhoor_y~=dt9Yn zQY%p@TxyF{il9h6nZ+vg?k?3ODn&_cnM!@6wnC+7sXZZ9ZzvhNn$~zBs*K4ie`bF1 zQ2mb1QE8oo%b6@XoReDwaJ>WtlXr$SJuM^4o}8ALkZiS3C7@}!^K$#lEzU3Klaf2j zlb#XwjWMk@(8gBuEIr2*EoOUk6xS--w)3RTm_8yQGu@hDmkU{Ft4KH)$lJw*jRAhY zVQQ7BFF({~O-{mZVGy+~1i=PYPH$>~Y&Riw>)CI;@Gqts4+HJ#9(=x2~^n_uy)C3t{ z%hY11Eji1YVWE9kE8U)uo}Q7GW3?wGWMSV2#L~Lp#5bD~OGy}QPfW{B#dQugp;^|H z^kf8JD~Eul+p{yV^-NqaAuBrr>l_j1>N@moKpu@(F!+xls;G&jQB#TvXISWMrbt&+ zTUnfU&XZ1v@rOG2pF#!Q=3D5GEVwiv)Iz73g4{e&^Bhz2ClxrNCKXP0Sm;lp?og2O zK8xK81I!lskVS&EU66%7W@_yo<(N6yLZ6E9hdU~tvDh`TJtqH|h4=I>{Va5W$`-N^JvBRJh+f)DB5hOO;eSV0B&H>2r=&JIzGPAx@1L`(U!hT* zv92m##SB-F3;9}{*fgB~DefEz@TVJ0=KE~D!0s5jom_5b$`u5yX+^P?;#BeJwwy-L? zG_*7OF!dBm>VpEZj1N^$ZlgaOwSoY#s3F+m$NpaI%WcJ$hCoX@4)o&I93=N7oD7_m7VFJ4!7m5DpY zo*fj4C%ZzuNq&Opl8Bs#q2GEMda&VS~yozrY^E| zF-jL>bTLjB6LewMMXoL;>B6ClJYD4LV!AG7=%P>;vvn~?7jtznUl$8>u}~MKx^P}{ zsje*#=YVQjsjE-EfxMVjLB2*2;_J6x)%;*TMZc1{Q(xq+zc;rDkEo@!;gPje5#GC& zo^FcsbNW+o4yEFZNyDj;ju<@kZw*KSkXH;yB9NU1#0um!12PPVw%Y*N0R7H@j0CdBfTRGa zF(7F`_8O2!fb2IQnLvJTK(c|nr5T`6fa(m$7$AoY$T%SN24n(|qXxtd+b#zj1^9a8`?9*h2 zNXP-`UBje2AZH9nK9Khe$aEkd7?2r2J~AMMKt3@bvw@u5N1C%i<>lu9I%k+P7sz=7 zG9Sq224n${zZ#H*KrR}P(x&PU24jfkq5AXjp7OYc>Mua`OHloVsQw~UzZBJ9jOuHs z{t{GwDXPB=)nAV4uRwM2+Tfz=ldkIOJ@Gf!6))G(Wu5*Jepd|0QXu~@Aj^Sh*9_1~ zK;IY;w?_uv*pT`fq+W*9*CO+E$h;hxS0JBn={j=z4l~TK{-r+(O@YYIgy&~hPU-Lp zK11Nu|AH|VV64O*5lplh<7JF$j6)cwFh0h(gn=a)i?A<7XN=w$@fbFYQ5XdnB^Y?B zaV||((`a3Um49~``UuuSr_~~5 z2fcHEEn|Qry6y3l}n~BbF3;KXHU%ZsHrBBgWXE}_{qq{C}G~TG< z=^_uN%jmK%Ihn4a)2{JYx{hx9jtl7~I_?&i()Z}PJG`1rT+3$Ok2jYFZpp{lo6oTi zUtmAJ!v1`f1NjyQ@ony?_;V+v9fvBR+>4k)wV%YApN}-!Ph!o_M;fi0fin>?rmWwnp?k;Iyxsyf%YXBKpOMB2u~=wBqQ zn

kc-D9@FJ~LC;ACFKqxdNv%Vk`^YZ0{`v+%8npMmFDkY*D|qiqIjwu3d#gEcRK zH9NqXSHYT{V9jo@<_)l>8my@SYxaXRhryceKObqdU+$=BmNZ(^+4TQDYMMQ1G(4Pt zp`*r)G&m}C5`i?@FL%^5OB%d?IFA}W0oI%XYfghTXTX{dz?u)inoq%+vtZ46u;v0- z^95LQ5u~{c(tHWhTm@;afi%}an(siGn;^|Ckmh@k<__IZOl(rj+(NOiuhNp+D&E{# z@!>GVk9(u5qctUv9;@`=0;MMxDiK_wL~^MT&8w6cUaj=w zTBSdz@E|uR@qAo)h|ehx^93b|uP9c&s@V9JGJ(Q*8aD-+uw-pw?Od diff --git a/src/main/webapp/WEB-INF/reports/tripRequirement.jrxml b/src/main/webapp/WEB-INF/reports/tripRequirement.jrxml index 460059d6..5fed777f 100644 --- a/src/main/webapp/WEB-INF/reports/tripRequirement.jrxml +++ b/src/main/webapp/WEB-INF/reports/tripRequirement.jrxml @@ -49,6 +49,11 @@ + + + + + @@ -327,6 +332,13 @@ L - letadlo, P - pěšky, T - taxi]]> + + + + + + + diff --git a/src/main/webapp/admin/users/userForm.zul b/src/main/webapp/admin/users/userForm.zul index d35ad21f..a99856d4 100644 --- a/src/main/webapp/admin/users/userForm.zul +++ b/src/main/webapp/admin/users/userForm.zul @@ -11,87 +11,125 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file