From 6d462b0e25125fbcb497b40fcf0258f119a48ed9 Mon Sep 17 00:00:00 2001 From: HieuNguyenIT5 Date: Thu, 9 Jun 2022 00:06:28 +0700 Subject: [PATCH 1/2] Complete the project --- .../com/mycompany/qlcb/dao/NguoiDungDao.java | 30 +++++++++++------- .../qlcb/ui/EngineerManagementPanel.form | 2 +- .../qlcb/ui/EngineerManagementPanel.java | 2 +- .../java/com/mycompany/qlcb/ui/MainForm.form | 18 ++++++++--- .../java/com/mycompany/qlcb/ui/MainForm.java | 16 ++++++---- .../com/mycompany/qlcb/dao/NguoiDungDao.class | Bin 2389 -> 2644 bytes .../qlcb/helpers/DataValidator.class | Bin 1458 -> 1515 bytes .../qlcb/helpers/MessageDialogHelper.class | Bin 1026 -> 1102 bytes .../com/mycompany/qlcb/model/Canbo.class | Bin 2163 -> 2313 bytes .../com/mycompany/qlcb/model/Congnhan.class | Bin 2008 -> 2142 bytes .../com/mycompany/qlcb/model/Kysu.class | Bin 2318 -> 2471 bytes .../com/mycompany/qlcb/model/Nhanvien.class | Bin 1956 -> 2079 bytes .../mycompany/qlcb/ui/AboutUsDialog$1.class | Bin 1229 -> 1281 bytes .../mycompany/qlcb/ui/AboutUsDialog$2.class | Bin 819 -> 860 bytes .../mycompany/qlcb/ui/AboutUsDialog$3$1.class | Bin 821 -> 885 bytes .../mycompany/qlcb/ui/AboutUsDialog$3.class | Bin 928 -> 928 bytes .../com/mycompany/qlcb/ui/AboutUsDialog.class | Bin 6959 -> 7015 bytes .../qlcb/ui/EngineerManagementPanel.class | Bin 21169 -> 21169 bytes .../com/mycompany/qlcb/ui/LoadApp$1.class | Bin 1816 -> 1857 bytes .../com/mycompany/qlcb/ui/LoadApp$2$1.class | Bin 779 -> 843 bytes .../com/mycompany/qlcb/ui/LoadApp$2.class | Bin 886 -> 886 bytes .../com/mycompany/qlcb/ui/LoadApp.class | Bin 4193 -> 4238 bytes .../com/mycompany/qlcb/ui/MainForm$10.class | Bin 841 -> 841 bytes .../com/mycompany/qlcb/ui/MainForm$11.class | Bin 841 -> 841 bytes .../com/mycompany/qlcb/ui/MainForm$12.class | Bin 835 -> 835 bytes .../com/mycompany/qlcb/ui/MainForm$13.class | Bin 834 -> 834 bytes .../com/mycompany/qlcb/ui/MainForm$14.class | Bin 589 -> 589 bytes .../com/mycompany/qlcb/ui/MainForm$7.class | Bin 832 -> 832 bytes .../com/mycompany/qlcb/ui/MainForm$8.class | Bin 835 -> 835 bytes .../com/mycompany/qlcb/ui/MainForm$9.class | Bin 837 -> 837 bytes .../com/mycompany/qlcb/ui/MainForm.class | Bin 16445 -> 16526 bytes 31 files changed, 43 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/mycompany/qlcb/dao/NguoiDungDao.java b/src/main/java/com/mycompany/qlcb/dao/NguoiDungDao.java index e0cec15..e0577f9 100644 --- a/src/main/java/com/mycompany/qlcb/dao/NguoiDungDao.java +++ b/src/main/java/com/mycompany/qlcb/dao/NguoiDungDao.java @@ -1,6 +1,7 @@ package com.mycompany.qlcb.dao; import static com.mycompany.qlcb.helpers.DatabaseHelper.openConnection; +import com.mycompany.qlcb.helpers.SharedData; import com.mycompany.qlcb.model.NguoiDung; import java.sql.Connection; import java.sql.PreparedStatement; @@ -9,7 +10,7 @@ public class NguoiDungDao { public NguoiDung checkLogin(String tenDangNhap, String matKhau) throws Exception { - String sql = "Select username, password,macb, quyen from tbl_taikhoan where username = ? and password = ?"; + String sql = "Select username, password,tbl_taikhoan.macb, quyen, tencb from tbl_taikhoan, tbl_canbo where tbl_taikhoan.macb = tbl_canbo.macb and username = ? and password = ?"; try ( Connection con = openConnection(); @@ -20,21 +21,26 @@ public NguoiDung checkLogin(String tenDangNhap, String matKhau) throws Exception pstmt.setString(2, matKhau); try(ResultSet rs = pstmt.executeQuery();) { if (rs.next()) { + SharedData.tenNguoiDung = rs.getString("tencb"); NguoiDung nd = new NguoiDung(); nd.setTenDangNhap(tenDangNhap); nd.setMaCB(rs.getInt("macb")); int quyen = rs.getInt("quyen"); - if(quyen == 0){ - nd.setVaiTro("Quản trị viên"); - } - if(quyen == 1){ - nd.setVaiTro("Công nhân"); - } - if(quyen == 2){ - nd.setVaiTro("Kỹ sư"); - } - if(quyen == 2){ - nd.setVaiTro("Nhân viên"); + switch (quyen) { + case 0: + nd.setVaiTro("Quản trị viên"); + break; + case 1: + nd.setVaiTro("Công nhân"); + break; + case 2: + nd.setVaiTro("Kỹ sư"); + break; + case 3: + nd.setVaiTro("Nhân viên"); + break; + default: + break; } return nd; diff --git a/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.form b/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.form index c4c39fc..aed1e29 100644 --- a/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.form +++ b/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.form @@ -93,7 +93,7 @@ - + diff --git a/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.java b/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.java index 93c0a7b..7183c8d 100644 --- a/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.java +++ b/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.java @@ -317,7 +317,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jScrollPane1) .addGroup(layout.createSequentialGroup() - .addGap(8, 8, 8) + .addGap(6, 6, 6) .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) diff --git a/src/main/java/com/mycompany/qlcb/ui/MainForm.form b/src/main/java/com/mycompany/qlcb/ui/MainForm.form index 54b5839..7cc42aa 100644 --- a/src/main/java/com/mycompany/qlcb/ui/MainForm.form +++ b/src/main/java/com/mycompany/qlcb/ui/MainForm.form @@ -323,13 +323,18 @@ - + - - - + + + + + + + + + - @@ -355,6 +360,9 @@ + + + diff --git a/src/main/java/com/mycompany/qlcb/ui/MainForm.java b/src/main/java/com/mycompany/qlcb/ui/MainForm.java index a32d399..a6efe7c 100644 --- a/src/main/java/com/mycompany/qlcb/ui/MainForm.java +++ b/src/main/java/com/mycompany/qlcb/ui/MainForm.java @@ -151,18 +151,22 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { txtTen.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N txtTen.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + txtQuyen.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N txtQuyen.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() + .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(txtTen, javax.swing.GroupLayout.DEFAULT_SIZE, 103, Short.MAX_VALUE) - .addComponent(txtQuyen, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGap(54, 54, 54)) + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() + .addComponent(txtTen, javax.swing.GroupLayout.PREFERRED_SIZE, 199, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap()) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() + .addComponent(txtQuyen, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(45, 45, 45)))) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -432,7 +436,7 @@ private void mnuSatisticActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F }//GEN-LAST:event_mnuSatisticActionPerformed private void processLogin() throws Exception { - txtTen.setText(SharedData.nguoiDangNhap.getTenDangNhap()); + txtTen.setText(SharedData.tenNguoiDung); txtQuyen.setText(SharedData.nguoiDangNhap.getVaiTro()); if (!SharedData.nguoiDangNhap.getVaiTro().equals("Quản trị viên")) { diff --git a/target/classes/com/mycompany/qlcb/dao/NguoiDungDao.class b/target/classes/com/mycompany/qlcb/dao/NguoiDungDao.class index 745085f871a983fa62361ac9ac14eb57bb910506..f464f1f7287dbf44d1c22e4c375fe65ce91ff419 100644 GIT binary patch delta 1441 zcmZuw-%}e^6#i~D$!?OZU|P~H{@Ox82vA6ipj50D1Z#m(h}5=dy9sF$er(#1P<_zM z_-bF6o#~6Cqjg4R@CBwFYRXJ`pwkDRe9$+?4*!5}&ge`>{O*EK2Q%4wzI)DhzH{!~ zv%iFYJ`nuz@B0q`bmOD>V7s_If3kYAkeI$)u(DH`oMj)Kv66{q^Lp{)l-+C=Qg$+7 znpg9=8S`ltBg{!!b|Poq$fWYA|3qC4vwN4b<*@9DNz6_+04_Of=|dL{uP< zP8CKA`K+B5sCQ!C{k4q)lh&NoI&InM)~(2i0GiRF;;4>Rvppc6dU^ z>*#iFdTL8CoYe6q-V#t}Q-wjR=M;GjryIvK^zcybwP|>pRnHYS?tg2Wh5W|q=jL2? zebJT``gOd6P9B!oV^%hv&uMs9Ak?#d*G`*uX8pFUVL(7Tv$0w>XCEzT7-D!x2B=a) z8QIaWj&ty{U~)P)n+hR<;See@tl~XqSUIG{abCy!xZqqlU6{(!3t10j6KRo^1uGOlnZU?BlTCM*54 zLAp}Ti~f$%_l7@QSH{a8+(FYSVi)e=c$aFZO)F?OR0dxyqsxO8yg_`*#T{Cewn$N+ z-(9Im`x2iUJy8vE5&FlMN0QYN}BBe{O*i0n9YnQW-!mJI)z ztP|a?BgsDLi0n9YnQi!`uy0K)K|>3E!0(9T4?MvpZ5R(lHSJ>&l2#lR4WfyA4L^xK z*WW3v7!+}Fo_huIZGFZOK?(b~tt9nX${fIRsKOCWN(&C66Nk_P0|ThW2qRbUJf`ph zZt|`jCf`C0zC2xRr;lic$OAZq|(WJPzS_=}3QLO}%)td-KzqB!8nt}MH8!Jjs1 z_tZnv6P?6Ejfo*KCLRn%gIQ5Ika#fO+FndNc=XtwXwrz!H`2w_Wb(bw^M23!^Ue3p z{89U7H2n1SgU0~&V|*&SQw&ZWSW`dljtp;c&R_U0op+qG#lpBVIh-4sbhBfbf}3|P zWzxm;orSBykk}|t=d}gvs=`P>Q_E%xNu<0zS}NKopsQRFIB2r472CWE+J=S%c39Yn zT>^37e@5M=uFd@>b_)dkx+eB|^V+IX0{bj{f|Njr+I~0NS1g$LR3Os6a4$dV zhM*Wz;hN-`5?q1U~q9%HDCE~^OUO2!P-&FWE?@^04wi9=+DCZh+a+O$5V?ulqF(t$Oj(f<+r=(&4eBnw$9n%3 zG*nSp%`7!oi(1qp#tL!l#wxU8bqR-H^NQABh}&nd4r2^Fj}LJfAK^#T;U|Xt!Y|@i zG_bKGn@QmT@gw4AO!kU=5g&*c$Ge`kjp@|@3?jq=Kj15T4aw}MSaQHW-a~wYZ#gVc zp`kR0lN>Bl?4@7`x|)mSnNjF8Ts22T!$bjSq7@@V8e0W!pmvGLjXqU1+aLOLNRG5=YS%8K+I<@+-JME=*qiUyYKl`snm_@ delta 78 zcmaFOy@{La)W2Q(7#JAr7<@N!l`v19$o!mvX8)r_8#=d()7 hc`>*#Ff+IVRdX^h{bA5!XAodxU}W$H3NSJF003N65V-&V diff --git a/target/classes/com/mycompany/qlcb/helpers/MessageDialogHelper.class b/target/classes/com/mycompany/qlcb/helpers/MessageDialogHelper.class index d41348d9314691f468d087951a62d5725fb9c673..f4dab014a5584249c176e1691a8309f62bcc78de 100644 GIT binary patch delta 138 zcmZqTILEff$?3=9mm49Xk1w3q}1d{av@@>2p5ixP8FOHzx9CmS)HU}T#7n<-FA x4ycZonL!drNdvJg5OXrfGe|HnO%7(pA?eaoHzR{0&*Aq6;l8J delta 63 zcmX@d(Zs=Z>ff$?3=9l*3`!fhw3sHlGaX}OoXp1@$j-?i#~{JLIJpwc=4X%xvY#;f OaWXO}0M#=wC;|ZfhYW@Q diff --git a/target/classes/com/mycompany/qlcb/model/Canbo.class b/target/classes/com/mycompany/qlcb/model/Canbo.class index b845ee7c16ab439f4d0e550c5bc71c6c4a2a580f..4642271ed71b9de40bd3d1b0827c37e44287736f 100644 GIT binary patch delta 341 zcmew?&?&@q>ff$?3=9mm3^p6NIvE88d{av@@>2p5ixP8FOHzx9H&0}|!^p@qIghzr zP7SC~kcEL8Nbv))5D<$3F(U&jgE|A#oRX|E4*)Wty0)=J3N;McXCvRY}V%1{M z25NcF;wk{r!paDh)&WXevRbj~f~6~1;nE;W85#5#^d}zzN*gd30(CR8!KFbKFftec zb$hc}F&hJwb+B2nnt+uZXLA*TS|SftW(qc3m>sSgH8`p8=&U!G@}GxQajxg@l0>P!SV@H2|xPFMff$?3=9l*4AvXDIvJUKH6~{PxP_6CadIPbJ3Au-D}x#X<773K z^{k8x>I@o_71@L*^RTM3YBFd6#VuG}f#TXw@dZF}9kBQru(&RR9#Fj%t3HDPP;CMm zNUb4M?Flw@W+Sk?@MKnYbyj1r8bfwhpq(aQGdkEo>P?~QKLFL3fyHGwK;q^=y@ecB VtQKH>8#r7!85t~reqmy;0sz0hDD(gT diff --git a/target/classes/com/mycompany/qlcb/model/Congnhan.class b/target/classes/com/mycompany/qlcb/model/Congnhan.class index 69f057184ca3d56f0de3d6b1f2b33d215be49890..89ea42daf93eae006ecae583c1825e8eb7656e49 100644 GIT binary patch delta 333 zcmcb?e@}qx)W2Q(7#J9A8SFN4tzr}t@J%hr$WIAKEK1BxElDjZW@NC|@SHfoa`Okq z07gcp$&SpvLYhDgtc(oYK#Gxpl|hSvY4TL&Y6Xz6C@WZ40?3pBVtF7|0%Ar6Z3dmm zqAXUdx(pgX3KkDeX#UhgtRDF+5jl6&T7SK2$oJ`h3kg6!HB_l z@&=%^34tzR zt63Qtv>3D}`>|ND>M&>k#d=v>fnvHqu}45LJ+PP}D@aTqC|1U5#cBW++X@ylWH6e{ z#b(87%wPi4>&XUEX9^UX2NW{{i`@l_nFGa)*sWMCz+#2$Aa#~N^Ns<0GtRVbpQYW diff --git a/target/classes/com/mycompany/qlcb/model/Kysu.class b/target/classes/com/mycompany/qlcb/model/Kysu.class index fb0eed7719cbfbe112a8f09d7b922df98aa826b2..e34fa808c5dbf540d252cc3ee72f6e783954a6e3 100644 GIT binary patch delta 407 zcmeAZS}x3W>ff$?3=9mm3@#hF?lFo8_@~aSjjqs5|Gar8SJ1+xH;5W?ZHaSIpC&%JkH4A0QQj;t0UMq2RK|spdN;V Li4#x}6N57VV#q#O delta 223 zcmZ23+$Y3!>ff$?3=9l*49*+5?lCgOX-rmRGMmiLq_R1jsfm%1aq=zZ1a?LSRt6mg z#>oLJ{j7`(x(s@gnOUt^^%)F+Vot2CKrut0*mR(n5m@XRSj?EgWU@A!6{{(O8Bkpo z8%UiwP;5U?%mOU-4=iR06bojzVzmN`O=1VBvj&Pi2a4H%#nd=JVzxlBY7Q$_JFwU; du$Vp2UVct1RtK=Xew?nHj0}!I|1dE)0RXm@D!l*z diff --git a/target/classes/com/mycompany/qlcb/model/Nhanvien.class b/target/classes/com/mycompany/qlcb/model/Nhanvien.class index ec385d16e705e1d96e409f75417f36e95cb7651f..6d78486069c2909c31cf2dc39c83b80c0466722b 100644 GIT binary patch delta 326 zcmZ3&KVN|B)W2Q(7#J9A8SFN4ePJ&i6$Y8e$Y2CEL3lD7t2(nW)D&k{bygFwDfz5$QzXI4O~Iz@ zW`&yqauXwi8PpUBHg#5Wuo4$GxDt?)85t~~N)`f@Sb~+DMJNIJh>^hxYQGk{I;%C< U{xEh|5vX$^9<~80WMZ%d03E?JzyJUM delta 180 zcmbO)u!NuM)W2Q(7#JAr7;HCkeP`S(!W7TQ$T+!#xtf)cL6bpiGCzwIvo?dyWFHnQ zR$T@?2FA(VEUxT~4EhWPK=vaRSD-pWpgMC_D`q30x)N3^R%5Wb&8#4GCSY}3Y#?=} zKy~qKR;*@Vv3X!IbD-E~pqK?%%!nPN&Jt)&JG&LD71*3(?5>=Q4AwwLGBMZy0C347 A4FCWD diff --git a/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$1.class b/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$1.class index 3e1f0fbe28627a52b11d905f734bb4b08c556706..af92226ba7ab56cc9b67dbbb906cf1d1e3f4ec96 100644 GIT binary patch delta 178 zcmX@h*~rCp>ff$?3=9mm3|1Stte6A^d{av@@>2p5ixP8FOHzx9Cp$5%U^Jclnn{Dv ze6k3003*}nROSK!O`slDMh4af0R~0}Ee7q$x0vmLQc^575;_dJKryHS9R>ygM+QX( zJqD)9$t>n}Fku0pb_RW*AxsPg42EFZh`|_0voM%2m@!y@MNAkhfixG;G$tSo1OTfO B8{Yr` delta 127 zcmZqVI?Ks*>ff$?3=9l*43-)21Wr#21N#42FA%fEat|n40=FQm>BdK48XJ@gAtHsVK8PeWiSVe Q7&BM^X)Xpvpeir`01;CZI{*Lx diff --git a/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$2.class b/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$2.class index 8ba7b23342fc5916394a1927adc77087ed403c4a..3d974b374bd5c3a110e72da065bbaa94d3d9fc72 100644 GIT binary patch delta 137 zcmdnYc887Y)W2Q(7#J9A8Pqm%ZDte{@J%hr$WIAKEK1BxElDjZp1hkemr;4LCX*K< z)8rB+S0QPjYF0)D)&>CvMg|!MAqJ+&2bi2}WEtdue5j->Pz?)%Jdk8!P+(95^Y|E) U7*xO_dV!Z delta 97 zcmcb^wwaCV)W2Q(7#JAr7*scMZDyQ&fias=X|fHI7bD~3b|zPLMh0mHAqK|D_n4dv rWf)``7#Ua?}H;{rc%x|nuU{Zr=AcHKyJasOd)|u1qwhpfR!0i!a_wpoQtL@YehYxodbJq=y z2S@vk=k(mb_59GGTX~sKjTRLx+kgdwAbIC~LSoPLgYAJIX#A0;*t{0JA0X3=e#e>M zlfo4HG-q4vQAcmAjX;eTXwUJ?466!ay+@8U_cMh&X1U_|m`0f6Tp=hoCJz@-9Ai6N zMOa1hUy=Sp>T&lGGM@fnm0zra66X2s7+Ye5j0IMKMJ&Zt85LCH&I)SmS-vZ?M-i>$ F_y(@4Fm3<< delta 316 zcmZ{fJxW7C6otQeZ!!~;7k}bUj6aFdJOwM$X`zjcAOtsIt6*ZQSlc*c0fMf;LKG1f z;2vCtt$5}sSa}D|H*@a22j3#)aJ5w}Gv=veRLR0?$9cvL z8=;>k-Cp>(3H!a#g}JtELoTzK(ZLzgv-1-}xqmzu9-Iz_p6=){*}kkPJXX{a6Bs6S z+Yt+A^9l1%w5Oy_Hr!H|&i$@TGox2ro|R{G8q7;$%&u6(q|f-jnD`;M!*YN0Pgau! d?OGN!n6SjMXlb#+YT>Mri*@x{VyxN^z5yr-AEy8S diff --git a/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$3.class b/target/classes/com/mycompany/qlcb/ui/AboutUsDialog$3.class index d0cc3863f73dbf8261f746e8aef395a63982efe9..4f4b71594a80e25d057989837428975178f96fd2 100644 GIT binary patch delta 17 ZcmZ3$zJQ(M)W2Q(7#J9AH*(Bi1^_(Y1}Fdk delta 17 ZcmZ3$zJQ(M)W2Q(7#JArHge2h1^_(d1}Ojl diff --git a/target/classes/com/mycompany/qlcb/ui/AboutUsDialog.class b/target/classes/com/mycompany/qlcb/ui/AboutUsDialog.class index 2598e413258c09a8868040da36585947732b8da2..4dc949fefd2b5583911fefb326c2938f81460a2b 100644 GIT binary patch delta 378 zcmXwzyGufG6vw~c+qJ7kgAY2{~ZKFSSKLQUCw| delta 314 zcmW-b%`O9B6o%ioz8W(!F?^G>6OqP3)NfH8w2Z3Xsue2{7eFH723XlNHhdRgVZ*AC z*;z@C!$aWW@4d7txtI$|8ZJOFq2Smnv4Q5PBH%U|WFXPxhRqiD7AX1#-G-!e#a%VUz8JlyQ z2jlA?$GZX-piqLxMJ`FPo={QfJfUTwn}kY2zym|B09+N$VW0=w;u<;LMY?98dt%WQ z9}*w-(8r3jrMS)wQ3r~e5pHqCs>H{VG1*bSvQ-W6hI`iJ!i(rO$Q{u=MYOrky3{-P O<)OT;Wl&7kB=!&ZUNnaQ diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel.class index 1bcc994513640056454f3ab54802a631deaa783e..2cbb7c84005cf94b773f3a5c96fa708159da1817 100644 GIT binary patch delta 20 acmdnElyT!y#tj-)tZV{6xLMb#MFIdufd#Gr delta 20 acmdnElyT!y#tj-)tQ-PBxLMb#MFIduu?4gM diff --git a/target/classes/com/mycompany/qlcb/ui/LoadApp$1.class b/target/classes/com/mycompany/qlcb/ui/LoadApp$1.class index fa88dc24af4a4e6cf394af99e00d6f617022f29f..d610053fabba2721df50def8eb04b49092a5ddd5 100644 GIT binary patch delta 258 zcmXYqy-EX75QV>c_g+^Pxx|2IEVfHZ-@q!ypJ+51|Nr7@R%}FwsiWW{Oye_%Ahsz2 zf|afBVkP249GE$WGiS~`hPRM>{0xS`JeRLY8ch}&dGG3`)6BZrb>7Rnw^E6oO;bLj zs@aigHx~{P4mpZBo?wa-X}NdPmKmSAb3<9~TzM>}V@Q>z^584R%9F1ZYx=|+{Cxq# zB1>5L@-O{mR)}_IR(ZI5<>Nw_`cFYFsC9v=kkIZFc{Z Xz@DNWv9Eoqp-@z(RUB2u1v#Z(p&%=R delta 213 zcmXAhJx&5)5Qd-G-On`}^A$!5D7K`4gbSG10E!@g0*XJlAnFA;$|S}!&=^}1O-QIb zh^HXNL8p1v|L%i3LJ oLl)D<(X|}V=`;LmJeU6_S9U)pv$St!VBF4x2Oi1&0*DeKQUCw| diff --git a/target/classes/com/mycompany/qlcb/ui/LoadApp$2$1.class b/target/classes/com/mycompany/qlcb/ui/LoadApp$2$1.class index cf1d1a44084bff52d2de0fda1e5c41def677ff61..8fd1747cb0aaf1e43ae97057075e8c319b5c21d4 100644 GIT binary patch delta 412 zcmYk0&n^Q|6vn?Zf7|JlY0)yKstnpe$^+C|7epelpTtB<|0FX*Sg~MbHJP1FpTR01 delta 329 zcmZ{fJx;?w5QV?7H@hKm_;Cn?V8@uhf>e|gp@j-@2@nzpBob;Gs1Swa3vdLeKolGR zDlQad)*w+aE4?@SX5L%vmwm9k&&m4-u+MgbfY4zgYFHsDpQKYfcAIr(9F2%3QSqEx z$E=W-yOI~*cg1i}p31$+giNI@iO9VPIJ|@!{2I?AR1iT}aD=AiizsOTIkT zm_wM?Zcn*Vc3zQ}YP_ImRfaQS#id_Mn?=2Ob4NANvrJdf#|)LLnD7nv7vp~i=NK-I i|H)dRr(VOVE(Ro|%7#8`tXIkgTgtJ{`pUjqKQsl1tsnIO diff --git a/target/classes/com/mycompany/qlcb/ui/LoadApp$2.class b/target/classes/com/mycompany/qlcb/ui/LoadApp$2.class index 1b84412d1e039f2d7b2909411cc72f513d656b24..a8b2ecab189574781d1f2ae10e293ffc129ff350 100644 GIT binary patch delta 17 Zcmeyy_Kl6>)W2Q(7#J9AH*(}L0{}-Y2B-i4 delta 17 Zcmeyy_Kl6>)W2Q(7#JArHge=K0{}-d2B`o5 diff --git a/target/classes/com/mycompany/qlcb/ui/LoadApp.class b/target/classes/com/mycompany/qlcb/ui/LoadApp.class index adbe9f24e8c7f6d3bb5fbf53ed143c922eb69913..2faf4d15b375294e5a62d6d0870bfacc716f0de6 100644 GIT binary patch delta 268 zcmaE;(5J|C>ff$?3=9mm46inFMRN%X_@Xsw#^;kCa5peAO-|$~;=2OW%*n)X0Z3h9VAy<#=R70pRfcN}Oq-YS$urhp zXSl(@!eGiEz;Kh{76T)LCzy2`$chEC?f_YZVAfqAi-Dns;U2?%ApHP{tao zJY-~4{K3HL#LloXn4Mt{5bp!x0|E>nyIC25Iv5z386E>kCWa>rPk}TCkbj8b8H1Dt d!wVo+3FrhVAPoZ38TuJsGH?Q=A>bK=0sy+%Kwkg= delta 210 zcmeBEe5k;6>ff$?3=9l*3@!3> z=1E{=oLs_FwD~K~IY!ni3|AQ#H=p2>XLP;BaGimL!IVLO;ReG^21W)?FzXhO6$@tF z2C@pltUEv!149qPU50x=`aTfLGjRN4;ACfbFj+@H!k(Go5m1bY;W5J#AkD$R%y5X| gDT5Tlb0AL%XonP#27&1e{R}S{IDxVd@DxG;02d%Jl>h($ diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$10.class b/target/classes/com/mycompany/qlcb/ui/MainForm$10.class index 5694f4f08152f6e17a58b74b8f4d901820cc43b7..5e40196994a72fe07c93fee4408a07b9ec95fb17 100644 GIT binary patch delta 23 fcmX@fc9LzwY$nFLljksnvfgLlV0bY38&fanZ(Io> delta 23 fcmX@ic9?C$R3^p`lczC-vVLOVVE8=w15+>nZs-XW diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$13.class b/target/classes/com/mycompany/qlcb/ui/MainForm$13.class index 4199e39efa053e12252c9427c158fd467ec56248..9a83c4d3b8a6c67b427aa3714f723c40ea1136f0 100644 GIT binary patch delta 24 gcmX@ac8G1mWF{s?rpZ&8LRncDI2c(czh?>t09KF&NB{r; delta 24 gcmX@ac8G1mWF{ttf0L&&g|ad*a4<4Xe$NyP0A&mZI{*Lx diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$14.class b/target/classes/com/mycompany/qlcb/ui/MainForm$14.class index 326ba4ea6239e8a411f5a8ebddd486e9df8620cd..e0ea4b6d72ab13a1112fbc040f207cd5f8af7545 100644 GIT binary patch delta 23 fcmX@ha+YPoF-FE;laDhxv;JY=X8b#upUDmYbKMA^ delta 23 fcmX@ha+YPoF-FF3laDhxv;JVnY3vA* delta 23 fcmX@ic9?C$R3^p)lczC-vL0gKU^qPa15+>nX?O^Q diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$9.class b/target/classes/com/mycompany/qlcb/ui/MainForm$9.class index 9bb2701f726d73ec4396c6976408d63010851f39..ca03826827873ec6f46eff7f3e74ab9757628858 100644 GIT binary patch delta 23 fcmX@gc9do6vR+}}V7NN@6H_n%Y#s>3 delta 23 fcmX@gc9do6vR+`|V7NH>6H_n%YpMvj diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm.class b/target/classes/com/mycompany/qlcb/ui/MainForm.class index ce5fdeae15ba3ee39abbae1e4fae78456d3cf064..1188b38902472db0157c094062271b49b24c57a0 100644 GIT binary patch delta 5514 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 ew>(qUTJoSJk6Kc< Date: Mon, 27 Jun 2022 11:27:13 +0700 Subject: [PATCH 2/2] Update login(check account disabled) --- database/db_qlcb (1).sql | 280 ++++++++++ jaexel/employee.xls | Bin 0 -> 4608 bytes jaexel/engineer.xls | Bin 0 -> 4608 bytes jaexel/worker.xls | Bin 0 -> 6144 bytes pom.xml | 18 + .../java/com/mycompany/qlcb/dao/CanBoDao.java | 192 ++++--- .../com/mycompany/qlcb/dao/CongNhanDao.java | 2 +- .../java/com/mycompany/qlcb/dao/KySuDao.java | 3 +- .../com/mycompany/qlcb/dao/NguoiDungDao.java | 57 +-- .../com/mycompany/qlcb/dao/NhanVienDao.java | 2 +- .../qlcb/filehelpers/ExportBase.java | 265 ++++++++++ .../qlcb/filehelpers/ExportKySu.java | 112 ++++ .../com/mycompany/qlcb/model/NguoiDung.java | 3 + .../com/mycompany/qlcb/model/TaiKhoan.java | 59 +++ .../qlcb/ui/AccountManagementPanel.form | 225 +++++++++ .../qlcb/ui/AccountManagementPanel.java | 328 ++++++++++++ .../qlcb/ui/EmployeeManagementPanel.form | 328 +++++++----- .../qlcb/ui/EmployeeManagementPanel.java | 471 +++++++++-------- .../qlcb/ui/EngineerManagementPanel.form | 349 +++++++------ .../qlcb/ui/EngineerManagementPanel.java | 477 ++++++++++-------- .../com/mycompany/qlcb/ui/LoginDialog.java | 13 +- .../java/com/mycompany/qlcb/ui/MainForm.form | 104 ++-- .../java/com/mycompany/qlcb/ui/MainForm.java | 172 +++++-- .../qlcb/ui/SatisticManagementPanel.form | 114 ++++- .../qlcb/ui/SatisticManagementPanel.java | 201 +++++--- .../qlcb/ui/WorkerManagementPanel.form | 286 ++++++----- .../qlcb/ui/WorkerManagementPanel.java | 301 ++++++----- .../com/mycompany/qlcb/ui/nguoidungPanel.form | 157 +++--- .../com/mycompany/qlcb/ui/nguoidungPanel.java | 138 ++--- .../com/mycompany/qlcb/dao/CanBoDao.class | Bin 15468 -> 17953 bytes .../com/mycompany/qlcb/dao/CongNhanDao.class | Bin 6922 -> 6956 bytes .../com/mycompany/qlcb/dao/KySuDao.class | Bin 7027 -> 7061 bytes .../com/mycompany/qlcb/dao/NguoiDungDao.class | Bin 2644 -> 2663 bytes .../com/mycompany/qlcb/dao/NhanVienDao.class | Bin 6955 -> 6989 bytes .../qlcb/filehelpers/ExportBase.class | Bin 0 -> 6892 bytes .../qlcb/filehelpers/ExportKySu.class | Bin 0 -> 4452 bytes .../com/mycompany/qlcb/model/NguoiDung.class | Bin 1444 -> 1480 bytes .../com/mycompany/qlcb/model/TaiKhoan.class | Bin 0 -> 1418 bytes .../qlcb/ui/AccountManagementPanel$1.class | Bin 0 -> 881 bytes .../qlcb/ui/AccountManagementPanel$2.class | Bin 0 -> 917 bytes .../qlcb/ui/AccountManagementPanel$3.class | Bin 0 -> 914 bytes .../qlcb/ui/AccountManagementPanel$4.class | Bin 0 -> 915 bytes .../qlcb/ui/AccountManagementPanel$5.class | Bin 0 -> 912 bytes .../qlcb/ui/AccountManagementPanel$6.class | Bin 0 -> 914 bytes .../qlcb/ui/AccountManagementPanel.class | Bin 0 -> 11264 bytes .../qlcb/ui/EmployeeManagementPanel$1.class | Bin 919 -> 919 bytes .../qlcb/ui/EmployeeManagementPanel$10.class | Bin 920 -> 920 bytes .../qlcb/ui/EmployeeManagementPanel$11.class | Bin 922 -> 922 bytes .../qlcb/ui/EmployeeManagementPanel$12.class | Bin 921 -> 921 bytes .../qlcb/ui/EmployeeManagementPanel$13.class | Bin 920 -> 920 bytes .../qlcb/ui/EmployeeManagementPanel$14.class | Bin 921 -> 921 bytes .../qlcb/ui/EmployeeManagementPanel$15.class | Bin 0 -> 922 bytes .../qlcb/ui/EmployeeManagementPanel$16.class | Bin 0 -> 923 bytes .../qlcb/ui/EmployeeManagementPanel$2.class | Bin 922 -> 922 bytes .../qlcb/ui/EmployeeManagementPanel$3.class | Bin 922 -> 922 bytes .../qlcb/ui/EmployeeManagementPanel$4.class | Bin 918 -> 918 bytes .../qlcb/ui/EmployeeManagementPanel$5.class | Bin 919 -> 919 bytes .../qlcb/ui/EmployeeManagementPanel$6.class | Bin 921 -> 921 bytes .../qlcb/ui/EmployeeManagementPanel$7.class | Bin 921 -> 921 bytes .../qlcb/ui/EmployeeManagementPanel$8.class | Bin 1159 -> 1159 bytes .../qlcb/ui/EmployeeManagementPanel$9.class | Bin 889 -> 889 bytes .../qlcb/ui/EmployeeManagementPanel.class | Bin 20355 -> 22518 bytes .../qlcb/ui/EngineerManagementPanel$10.class | Bin 923 -> 923 bytes .../qlcb/ui/EngineerManagementPanel$11.class | Bin 924 -> 924 bytes .../qlcb/ui/EngineerManagementPanel$12.class | Bin 921 -> 921 bytes .../qlcb/ui/EngineerManagementPanel$13.class | Bin 923 -> 923 bytes .../qlcb/ui/EngineerManagementPanel$14.class | Bin 921 -> 921 bytes .../qlcb/ui/EngineerManagementPanel$15.class | Bin 920 -> 920 bytes .../qlcb/ui/EngineerManagementPanel$16.class | Bin 921 -> 921 bytes .../qlcb/ui/EngineerManagementPanel$17.class | Bin 924 -> 922 bytes .../qlcb/ui/EngineerManagementPanel$18.class | Bin 921 -> 923 bytes .../qlcb/ui/EngineerManagementPanel$7.class | Bin 889 -> 889 bytes .../qlcb/ui/EngineerManagementPanel$8.class | Bin 920 -> 920 bytes .../qlcb/ui/EngineerManagementPanel$9.class | Bin 921 -> 921 bytes .../qlcb/ui/EngineerManagementPanel.class | Bin 21169 -> 22943 bytes .../mycompany/qlcb/ui/LoginDialog$5$1.class | Bin 871 -> 871 bytes .../com/mycompany/qlcb/ui/LoginDialog$5.class | Bin 914 -> 914 bytes .../com/mycompany/qlcb/ui/LoginDialog.class | Bin 8387 -> 8773 bytes .../com/mycompany/qlcb/ui/MainForm$1.class | Bin 795 -> 795 bytes .../com/mycompany/qlcb/ui/MainForm$10.class | Bin 841 -> 837 bytes .../com/mycompany/qlcb/ui/MainForm$11.class | Bin 841 -> 839 bytes .../com/mycompany/qlcb/ui/MainForm$12.class | Bin 835 -> 841 bytes .../com/mycompany/qlcb/ui/MainForm$13.class | Bin 834 -> 841 bytes .../com/mycompany/qlcb/ui/MainForm$14.class | Bin 589 -> 835 bytes .../com/mycompany/qlcb/ui/MainForm$15.class | Bin 0 -> 834 bytes .../com/mycompany/qlcb/ui/MainForm$16.class | Bin 0 -> 589 bytes .../com/mycompany/qlcb/ui/MainForm$2.class | Bin 831 -> 831 bytes .../com/mycompany/qlcb/ui/MainForm$3.class | Bin 829 -> 829 bytes .../com/mycompany/qlcb/ui/MainForm$4.class | Bin 829 -> 829 bytes .../com/mycompany/qlcb/ui/MainForm$5.class | Bin 829 -> 829 bytes .../com/mycompany/qlcb/ui/MainForm$6.class | Bin 832 -> 829 bytes .../com/mycompany/qlcb/ui/MainForm$7.class | Bin 832 -> 833 bytes .../com/mycompany/qlcb/ui/MainForm$8.class | Bin 835 -> 832 bytes .../com/mycompany/qlcb/ui/MainForm$9.class | Bin 837 -> 832 bytes .../com/mycompany/qlcb/ui/MainForm.class | Bin 16526 -> 18126 bytes .../qlcb/ui/SatisticManagementPanel$1.class | Bin 921 -> 921 bytes .../qlcb/ui/SatisticManagementPanel$2.class | Bin 921 -> 921 bytes .../qlcb/ui/SatisticManagementPanel.class | Bin 10276 -> 11993 bytes .../qlcb/ui/WorkerManagementPanel$1.class | Bin 907 -> 907 bytes .../qlcb/ui/WorkerManagementPanel$10.class | Bin 877 -> 877 bytes .../qlcb/ui/WorkerManagementPanel$11.class | Bin 911 -> 911 bytes .../qlcb/ui/WorkerManagementPanel$12.class | Bin 909 -> 909 bytes .../qlcb/ui/WorkerManagementPanel$13.class | Bin 908 -> 908 bytes .../qlcb/ui/WorkerManagementPanel$14.class | Bin 909 -> 909 bytes .../qlcb/ui/WorkerManagementPanel$15.class | Bin 0 -> 910 bytes .../qlcb/ui/WorkerManagementPanel$16.class | Bin 0 -> 911 bytes .../qlcb/ui/WorkerManagementPanel$2.class | Bin 910 -> 910 bytes .../qlcb/ui/WorkerManagementPanel$3.class | Bin 906 -> 906 bytes .../qlcb/ui/WorkerManagementPanel$4.class | Bin 910 -> 910 bytes .../qlcb/ui/WorkerManagementPanel$5.class | Bin 906 -> 906 bytes .../qlcb/ui/WorkerManagementPanel$6.class | Bin 907 -> 907 bytes .../qlcb/ui/WorkerManagementPanel$7.class | Bin 909 -> 909 bytes .../qlcb/ui/WorkerManagementPanel$8.class | Bin 909 -> 909 bytes .../qlcb/ui/WorkerManagementPanel$9.class | Bin 1147 -> 1147 bytes .../qlcb/ui/WorkerManagementPanel.class | Bin 20024 -> 21412 bytes .../mycompany/qlcb/ui/nguoidungPanel$1.class | Bin 865 -> 865 bytes .../mycompany/qlcb/ui/nguoidungPanel$2.class | Bin 868 -> 868 bytes .../mycompany/qlcb/ui/nguoidungPanel$3.class | Bin 868 -> 868 bytes .../mycompany/qlcb/ui/nguoidungPanel$4.class | Bin 867 -> 867 bytes .../mycompany/qlcb/ui/nguoidungPanel$5.class | Bin 869 -> 869 bytes .../mycompany/qlcb/ui/nguoidungPanel.class | Bin 12312 -> 12205 bytes .../compile/default-compile/inputFiles.lst | 49 +- target/qlcb-1.0-SNAPSHOT.jar | Bin 461337 -> 481776 bytes 123 files changed, 3293 insertions(+), 1413 deletions(-) create mode 100644 database/db_qlcb (1).sql create mode 100644 jaexel/employee.xls create mode 100644 jaexel/engineer.xls create mode 100644 jaexel/worker.xls create mode 100644 src/main/java/com/mycompany/qlcb/filehelpers/ExportBase.java create mode 100644 src/main/java/com/mycompany/qlcb/filehelpers/ExportKySu.java create mode 100644 src/main/java/com/mycompany/qlcb/model/TaiKhoan.java create mode 100644 src/main/java/com/mycompany/qlcb/ui/AccountManagementPanel.form create mode 100644 src/main/java/com/mycompany/qlcb/ui/AccountManagementPanel.java create mode 100644 target/classes/com/mycompany/qlcb/filehelpers/ExportBase.class create mode 100644 target/classes/com/mycompany/qlcb/filehelpers/ExportKySu.class create mode 100644 target/classes/com/mycompany/qlcb/model/TaiKhoan.class create mode 100644 target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$1.class create mode 100644 target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$2.class create mode 100644 target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$3.class create mode 100644 target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$4.class create mode 100644 target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$5.class create mode 100644 target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$6.class create mode 100644 target/classes/com/mycompany/qlcb/ui/AccountManagementPanel.class create mode 100644 target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$15.class create mode 100644 target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$16.class create mode 100644 target/classes/com/mycompany/qlcb/ui/MainForm$15.class create mode 100644 target/classes/com/mycompany/qlcb/ui/MainForm$16.class create mode 100644 target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$15.class create mode 100644 target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$16.class diff --git a/database/db_qlcb (1).sql b/database/db_qlcb (1).sql new file mode 100644 index 0000000..397a6a0 --- /dev/null +++ b/database/db_qlcb (1).sql @@ -0,0 +1,280 @@ +-- phpMyAdmin SQL Dump +-- version 5.2.0 +-- https://www.phpmyadmin.net/ +-- +-- Máy chủ: 127.0.0.1 +-- Thời gian đã tạo: Th6 26, 2022 lúc 05:17 PM +-- Phiên bản máy phục vụ: 10.4.24-MariaDB +-- Phiên bản PHP: 8.1.6 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Cơ sở dữ liệu: `db_qlcb` +-- + +-- -------------------------------------------------------- + +-- +-- Cấu trúc bảng cho bảng `tbl_canbo` +-- + +CREATE TABLE `tbl_canbo` ( + `macb` int(11) NOT NULL, + `tencb` varchar(50) COLLATE utf8mb4_vietnamese_ci NOT NULL, + `namsinh` int(11) NOT NULL, + `gioitinh` varchar(10) COLLATE utf8mb4_vietnamese_ci NOT NULL, + `diachi` varchar(100) COLLATE utf8mb4_vietnamese_ci NOT NULL, + `manghe` int(11) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_vietnamese_ci; + +-- +-- Đang đổ dữ liệu cho bảng `tbl_canbo` +-- + +INSERT INTO `tbl_canbo` (`macb`, `tencb`, `namsinh`, `gioitinh`, `diachi`, `manghe`) VALUES +(72, 'Đỗ Ngọc Đức', 2001, 'Nam', 'Hà Nam', 0), +(81, 'Trần Duy Khương', 2001, 'Nam', 'Hải Dương', 1), +(82, 'Trần Văn Công', 1998, 'Nữ', 'Hải Phòng', 1), +(83, 'Trần Thị Minh', 2006, 'Nữ', 'Hải Nam', 1), +(84, 'Trần Thành ', 1995, 'Nam', 'Quảng Bình', 3), +(85, 'Lê Thị Thơm', 2004, 'Nữ', 'Hà Giang', 3), +(86, 'Nguyễn Tiến Long', 1997, 'Nam', 'Nghệ An', 3), +(87, 'Trịnh Văn Sơn', 1995, 'Nam', 'Thanh Hóa', 2), +(88, 'Đỗ Ngọc Đức', 2001, 'Nam', 'Hà Nam', 2), +(89, 'Trần Tiến Công', 1997, 'Nam', 'Cà Mau', 1), +(90, 'Lương Văn Sơn', 1997, 'Nam', 'Quảng Ninh', 2), +(91, 'Phạm Thế Hùng', 2009, 'Nam', 'Ninh Bình', 3), +(92, 'Nguyễn Văn Dương', 2001, 'Nam', 'Hà Nam', 2), +(93, 'Hoàng Trịnh Trọng', 2000, 'Nam', 'Thanh Hóa', 1); + +-- -------------------------------------------------------- + +-- +-- Cấu trúc bảng cho bảng `tbl_congnhan` +-- + +CREATE TABLE `tbl_congnhan` ( + `macn` int(11) NOT NULL, + `bac` int(10) NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_vietnamese_ci; + +-- +-- Đang đổ dữ liệu cho bảng `tbl_congnhan` +-- + +INSERT INTO `tbl_congnhan` (`macn`, `bac`) VALUES +(81, 9), +(82, 6), +(83, 10), +(89, 9), +(93, 7); + +-- -------------------------------------------------------- + +-- +-- Cấu trúc bảng cho bảng `tbl_kysu` +-- + +CREATE TABLE `tbl_kysu` ( + `maks` int(11) NOT NULL, + `nganhdt` varchar(100) COLLATE utf8mb4_vietnamese_ci NOT NULL, + `loaibang` varchar(100) COLLATE utf8mb4_vietnamese_ci NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_vietnamese_ci; + +-- +-- Đang đổ dữ liệu cho bảng `tbl_kysu` +-- + +INSERT INTO `tbl_kysu` (`maks`, `nganhdt`, `loaibang`) VALUES +(87, 'CNTT', 'Giỏi'), +(88, 'Tự động hóa', 'Giỏi'), +(90, 'Cơ điện tử', 'Khá'), +(92, 'CNTT', 'Giỏi'); + +-- -------------------------------------------------------- + +-- +-- Cấu trúc bảng cho bảng `tbl_nghe` +-- + +CREATE TABLE `tbl_nghe` ( + `manghe` int(11) NOT NULL, + `tennghe` varchar(100) COLLATE utf8mb4_vietnamese_ci NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_vietnamese_ci; + +-- +-- Đang đổ dữ liệu cho bảng `tbl_nghe` +-- + +INSERT INTO `tbl_nghe` (`manghe`, `tennghe`) VALUES +(0, 'Quản trị viên'), +(1, 'Công Nhân'), +(2, 'Kỹ Sư'), +(3, 'Nhân Viên'); + +-- -------------------------------------------------------- + +-- +-- Cấu trúc bảng cho bảng `tbl_nhanvien` +-- + +CREATE TABLE `tbl_nhanvien` ( + `manv` int(11) NOT NULL, + `congviec` varchar(100) COLLATE utf8mb4_vietnamese_ci NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_vietnamese_ci; + +-- +-- Đang đổ dữ liệu cho bảng `tbl_nhanvien` +-- + +INSERT INTO `tbl_nhanvien` (`manv`, `congviec`) VALUES +(84, 'Phục vụ'), +(85, 'Phụ bếp'), +(86, 'Đầu bếp'), +(91, 'Quản lý'); + +-- -------------------------------------------------------- + +-- +-- Cấu trúc bảng cho bảng `tbl_taikhoan` +-- + +CREATE TABLE `tbl_taikhoan` ( + `id` int(11) NOT NULL, + `username` varchar(30) COLLATE utf8mb4_vietnamese_ci NOT NULL, + `password` varchar(100) COLLATE utf8mb4_vietnamese_ci NOT NULL, + `macb` int(11) NOT NULL, + `quyen` int(3) NOT NULL, + `trangthai` text COLLATE utf8mb4_vietnamese_ci NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_vietnamese_ci; + +-- +-- Đang đổ dữ liệu cho bảng `tbl_taikhoan` +-- + +INSERT INTO `tbl_taikhoan` (`id`, `username`, `password`, `macb`, `quyen`, `trangthai`) VALUES +(12, 'ducdn', 'admin@123', 72, 0, 'Đang hoạt động'), +(14, 'tranduykhuong', '76797943', 81, 1, 'Đang hoạt động'), +(15, 'tranvancong', '5742266', 82, 1, 'Đang hoạt động'), +(16, 'tranthiminh', '40446294', 83, 0, 'Vô hiệu hóa'), +(17, 'tranthanh', '3926818', 84, 0, 'Đang hoạt động'), +(18, 'lethithom', '41433794', 85, 1, 'Đang hoạt động'), +(19, 'nguyentienlong', 'long2001@', 86, 0, 'Đang hoạt động'), +(21, 'dongocduc', '11405031', 88, 1, 'Đang hoạt động'), +(22, 'trantiencong', '64423393', 89, 1, 'Đang hoạt động'), +(23, 'luongvanson', 'son2001@', 90, 1, 'Đang hoạt động'), +(24, 'phamthehung', '80902513', 91, 1, 'Đang hoạt động'), +(25, 'nguyenvanduong', '14878199', 92, 1, 'Đang hoạt động'), +(26, 'hoangtrinhtrong', '64539800', 93, 0, 'Đang hoạt động'); + +-- +-- Chỉ mục cho các bảng đã đổ +-- + +-- +-- Chỉ mục cho bảng `tbl_canbo` +-- +ALTER TABLE `tbl_canbo` + ADD PRIMARY KEY (`macb`), + ADD KEY `fk_nghe` (`manghe`); + +-- +-- Chỉ mục cho bảng `tbl_congnhan` +-- +ALTER TABLE `tbl_congnhan` + ADD PRIMARY KEY (`macn`); + +-- +-- Chỉ mục cho bảng `tbl_kysu` +-- +ALTER TABLE `tbl_kysu` + ADD PRIMARY KEY (`maks`); + +-- +-- Chỉ mục cho bảng `tbl_nghe` +-- +ALTER TABLE `tbl_nghe` + ADD PRIMARY KEY (`manghe`); + +-- +-- Chỉ mục cho bảng `tbl_nhanvien` +-- +ALTER TABLE `tbl_nhanvien` + ADD PRIMARY KEY (`manv`); + +-- +-- Chỉ mục cho bảng `tbl_taikhoan` +-- +ALTER TABLE `tbl_taikhoan` + ADD PRIMARY KEY (`id`), + ADD KEY `fk_tk` (`macb`); + +-- +-- AUTO_INCREMENT cho các bảng đã đổ +-- + +-- +-- AUTO_INCREMENT cho bảng `tbl_canbo` +-- +ALTER TABLE `tbl_canbo` + MODIFY `macb` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=94; + +-- +-- AUTO_INCREMENT cho bảng `tbl_nghe` +-- +ALTER TABLE `tbl_nghe` + MODIFY `manghe` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + +-- +-- AUTO_INCREMENT cho bảng `tbl_taikhoan` +-- +ALTER TABLE `tbl_taikhoan` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=27; + +-- +-- Các ràng buộc cho các bảng đã đổ +-- + +-- +-- Các ràng buộc cho bảng `tbl_canbo` +-- +ALTER TABLE `tbl_canbo` + ADD CONSTRAINT `fk_nghe` FOREIGN KEY (`manghe`) REFERENCES `tbl_nghe` (`manghe`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- +-- Các ràng buộc cho bảng `tbl_congnhan` +-- +ALTER TABLE `tbl_congnhan` + ADD CONSTRAINT `fk_macn` FOREIGN KEY (`macn`) REFERENCES `tbl_canbo` (`macb`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- +-- Các ràng buộc cho bảng `tbl_kysu` +-- +ALTER TABLE `tbl_kysu` + ADD CONSTRAINT `fk_maks` FOREIGN KEY (`maks`) REFERENCES `tbl_canbo` (`macb`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- +-- Các ràng buộc cho bảng `tbl_nhanvien` +-- +ALTER TABLE `tbl_nhanvien` + ADD CONSTRAINT `fk_manv` FOREIGN KEY (`manv`) REFERENCES `tbl_canbo` (`macb`) ON DELETE CASCADE ON UPDATE CASCADE; + +-- +-- Các ràng buộc cho bảng `tbl_taikhoan` +-- +ALTER TABLE `tbl_taikhoan` + ADD CONSTRAINT `fk_tk` FOREIGN KEY (`macb`) REFERENCES `tbl_canbo` (`macb`) ON DELETE CASCADE ON UPDATE CASCADE; +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/jaexel/employee.xls b/jaexel/employee.xls new file mode 100644 index 0000000000000000000000000000000000000000..8e237b092409b13ca9503892dc74a6b8246d1545 GIT binary patch literal 4608 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 RELEASE126 + + + org.apache.poi + poi + 3.17 + + + + org.apache.poi + poi-ooxml + 3.17 + + + + commons-codec + commons-codec + 1.14 + \ No newline at end of file diff --git a/src/main/java/com/mycompany/qlcb/dao/CanBoDao.java b/src/main/java/com/mycompany/qlcb/dao/CanBoDao.java index 8387577..a0f5eaa 100644 --- a/src/main/java/com/mycompany/qlcb/dao/CanBoDao.java +++ b/src/main/java/com/mycompany/qlcb/dao/CanBoDao.java @@ -5,6 +5,7 @@ import com.mycompany.qlcb.model.Congnhan; import com.mycompany.qlcb.model.Kysu; import com.mycompany.qlcb.model.Nhanvien; +import com.mycompany.qlcb.model.TaiKhoan; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; @@ -19,8 +20,7 @@ public boolean insertCB(Canbo cb, int manghe) throws SQLException, Exception { + "values(?, ?, ?, ?, ?)"; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { pstmt.setString(1, cb.getTencb()); pstmt.setInt(2, cb.getNamsinh()); pstmt.setString(3, cb.getGioitinh()); @@ -36,9 +36,8 @@ public int getLastIdCB() throws SQLException, Exception { String sql = "SELECT macb FROM tbl_canbo ORDER BY macb DESC LIMIT 1;"; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { - try (ResultSet rs = pstmt.executeQuery();) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + try ( ResultSet rs = pstmt.executeQuery();) { if (rs.next()) { return rs.getInt("macb"); } @@ -55,8 +54,7 @@ public boolean insertTable(String table, int macb, String filed1, String filed2) String sql = "Insert into " + table + " values (?,?, ?)"; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { pstmt.setInt(1, macb); pstmt.setString(2, filed1); pstmt.setString(3, filed2); @@ -67,8 +65,7 @@ public boolean insertTable(String table, int macb, String filed1, String filed2) String sql = "Insert into " + table + " values (?,?)"; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { pstmt.setInt(1, macb); if (table.equalsIgnoreCase("tbl_congnhan")) { pstmt.setInt(2, Integer.parseInt(filed1)); @@ -80,25 +77,60 @@ public boolean insertTable(String table, int macb, String filed1, String filed2) } } - - - //Thêm tài khoản + + //Thêm tài khoản cào bản tài khoản public boolean insertTaiKhoan(String username, String password, int macb, int quyen) throws SQLException, Exception { - String sql = "Insert into tbl_taikhoan(username, password, macb, quyen) values (?,?,?,?)"; + String sql = "Insert into tbl_taikhoan(username, password, macb, quyen, trangthai) values (?,?,?,?,?)"; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { pstmt.setString(1, username); pstmt.setString(2, password); - pstmt.setInt(3, macb); - pstmt.setInt(4, quyen); - + pstmt.setInt(3, macb); + pstmt.setInt(4, quyen); + String status = "Đang hoạt động"; + pstmt.setString(5, status); + return pstmt.executeUpdate() > 0; + } + } + // Lấy thông tin tài khoản + public ArrayList getInfoAccount() throws SQLException, Exception { + String sql = "SELECT * FROM tbl_taikhoan"; + try ( + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + try ( ResultSet rs = pstmt.executeQuery();) { + ArrayList listtk = new ArrayList(); + while (rs.next()) { + TaiKhoan tk = new TaiKhoan(); + tk.setMacb(rs.getInt("macb")); + tk.setUsername(rs.getString("username")); + tk.setQuyen(rs.getInt("quyen")); + tk.setTrangthai(rs.getString("trangthai")); + listtk.add(tk); + } + return listtk; } + + } } - - // Cập nhật thông tin + // Cập nhật thông tin tài khoản + public boolean update(TaiKhoan tk) throws SQLException, Exception { + + String sql = "update tbl_taikhoan set quyen = ?, trangthai = ? where macb = ?"; + + try ( + Connection con = DatabaseHelper.openConnection(); + PreparedStatement pstmt = con.prepareStatement(sql);) + { + pstmt.setInt(1, tk.getQuyen()); + pstmt.setString(2, tk.getTrangthai()); + pstmt.setInt(3, tk.getMacb()); + return pstmt.executeUpdate() > 0; + } + } + + // Cập nhật thông tin public void update(String table, Canbo cb, String filed1, String filed2) throws SQLException, Exception { if (table.equalsIgnoreCase("tbl_kysu")) { String sql = "update tbl_canbo, " + table + " set tencb = ?, " @@ -107,8 +139,7 @@ public void update(String table, Canbo cb, String filed1, String filed2) throws + "and macb = ?"; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { pstmt.setString(1, cb.getTencb()); pstmt.setInt(2, cb.getNamsinh()); pstmt.setString(3, cb.getGioitinh()); @@ -132,8 +163,7 @@ public void update(String table, Canbo cb, String filed1, String filed2) throws } try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { pstmt.setString(1, cb.getTencb()); pstmt.setInt(2, cb.getNamsinh()); pstmt.setString(3, cb.getGioitinh()); @@ -151,8 +181,7 @@ public boolean delete(String table, String ma, int macb) throws SQLException, Ex + table + " on tbl_canbo.macb = " + table + "." + ma + " where tbl_canbo.macb = ?;"; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { pstmt.setInt(1, macb); return pstmt.executeUpdate() > 0; } @@ -163,9 +192,8 @@ public ArrayList getAllCanBo() throws SQLException, Exception { String sql = "select * from tbl_canbo inner join tbl_nghe on tbl_canbo.manghe = tbl_nghe.manghe"; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { - try (ResultSet rs = pstmt.executeQuery();) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + try ( ResultSet rs = pstmt.executeQuery();) { ArrayList listcb = new ArrayList(); while (rs.next()) { Canbo cb = new Canbo(); @@ -182,68 +210,81 @@ public ArrayList getAllCanBo() throws SQLException, Exception { } } } - + + public int[] getNumber() throws SQLException, Exception { + String sql = "SELECT count(macb) as 'soluong' FROM tbl_canbo group by manghe"; + int[] arr = new int[5]; + try ( + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + try ( ResultSet rs = pstmt.executeQuery();) { + int i = 0; + while (rs.next()) { + arr[i] = rs.getInt("soluong"); + i++; + } + + } + return arr; + } + } + public Congnhan getDetailCn(int macb) throws SQLException, Exception { String sql = "SELECT * FROM tbl_canbo inner join tbl_congnhan on macb = macn where macb = " + macb; Congnhan cn; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { - try (ResultSet rs = pstmt.executeQuery();) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + try ( ResultSet rs = pstmt.executeQuery();) { if (rs.next()) { CongNhanDao dao = new CongNhanDao(); cn = dao.getDetailCongNhan(macb); return cn; } - + } } return null; } - - public Kysu getDetailKs(int macb) throws SQLException, Exception { + + public Kysu getDetailKs(int macb) throws SQLException, Exception { String sql = "SELECT * FROM tbl_canbo inner join tbl_kysu on macb = maks where macb = " + macb; Kysu ks; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { - try (ResultSet rs = pstmt.executeQuery();) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + try ( ResultSet rs = pstmt.executeQuery();) { if (rs.next()) { KySuDao dao = new KySuDao(); ks = dao.getDetailKySu(macb); return ks; } - + } } return null; } - - public Nhanvien getDetailcb(int macb) throws SQLException, Exception { + + public Nhanvien getDetailcb(int macb) throws SQLException, Exception { String sql = "SELECT * FROM tbl_canbo inner join tbl_nhacbien on macb = macb where macb = " + macb; Nhanvien cb; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { - try (ResultSet rs = pstmt.executeQuery();) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + try ( ResultSet rs = pstmt.executeQuery();) { if (rs.next()) { NhanVienDao dao = new NhanVienDao(); cb = dao.getDetailNhanVien(macb); return cb; } - + } } return null; } - + public int getManghe(int macb) throws SQLException, Exception { String sql = "select manghe from tbl_canbo where macb = " + macb; int manghe; try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { - try (ResultSet rs = pstmt.executeQuery();) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + try ( ResultSet rs = pstmt.executeQuery();) { if (rs.next()) { manghe = rs.getInt("manghe"); return manghe; @@ -253,69 +294,65 @@ public int getManghe(int macb) throws SQLException, Exception { } return -1; } + // Lấy ra thông tin ngu?i dùng public Canbo getDataND(int maCB) throws SQLException, Exception { String sql = "SELECT * FROM tbl_canbo where macb = " + String.valueOf(maCB); try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) { - try (ResultSet rs = pstmt.executeQuery();) { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + try ( ResultSet rs = pstmt.executeQuery();) { if (rs.next()) { - Canbo cb = new Canbo(); + Canbo cb = new Canbo(); cb.setMacb(maCB); - cb.setTencb(rs.getString("tencb")); + cb.setTencb(rs.getString("tencb")); cb.setNamsinh(rs.getInt("namsinh")); cb.setGioitinh(rs.getString("gioitinh")); cb.setDiachi(rs.getString("diachi")); - return cb; + return cb; } } } return null; } + //update cán bộ - public boolean update(String pw, int macb) throws SQLException, Exception { - + public boolean chagePassword(String pw, int macb) throws SQLException, Exception { + String sql = "update tbl_taikhoan SET password = ?" - + "where tbl_taikhoan.macb = ?"; - + + "where tbl_taikhoan.macb = ?"; + try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) - { - pstmt.setString(1, pw); + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + pstmt.setString(1, pw); pstmt.setInt(2, macb); return pstmt.executeUpdate() > 0; } } + //check password public boolean checkPw(String pw, int macb) throws SQLException, Exception { - + String sql = "select password form tbl_taikhoan where password = ? AND macb=?"; - + try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) - { - pstmt.setString(1, pw); + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { + pstmt.setString(1, pw); pstmt.setInt(2, macb); return true; } } - + // cập nhật thông tin cơ bản ở panel người dùng public boolean update_general(Canbo cb) throws SQLException, Exception { - + String sql = "update tbl_canbo set tencb = ?, namsinh = ?, gioitinh = ?, diachi = ?" - + "where tbl_canbo.macb = ?"; - + + "where tbl_canbo.macb = ?"; + try ( - Connection con = DatabaseHelper.openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql);) - { + Connection con = DatabaseHelper.openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { pstmt.setString(1, cb.getTencb()); pstmt.setInt(2, cb.getNamsinh()); pstmt.setString(3, cb.getGioitinh()); @@ -324,4 +361,5 @@ public boolean update_general(Canbo cb) throws SQLException, Exception { return pstmt.executeUpdate() > 0; } } + } diff --git a/src/main/java/com/mycompany/qlcb/dao/CongNhanDao.java b/src/main/java/com/mycompany/qlcb/dao/CongNhanDao.java index 59c931b..86eb221 100644 --- a/src/main/java/com/mycompany/qlcb/dao/CongNhanDao.java +++ b/src/main/java/com/mycompany/qlcb/dao/CongNhanDao.java @@ -40,7 +40,7 @@ public ArrayList findCongnhan(String info) throws SQLException, Except String sql = "select * from tbl_canbo cb inner join " + "tbl_congnhan cn on cb.macb = cn.macn " + "where tencb like" + info + " or namsinh like" + info + " or gioitinh like " + info - + " or diachi like " + info + "or bac like " + info; + + " or diachi like " + info + "or bac like " + info + " or macb like " + info; try ( diff --git a/src/main/java/com/mycompany/qlcb/dao/KySuDao.java b/src/main/java/com/mycompany/qlcb/dao/KySuDao.java index 83b0261..c150ad1 100644 --- a/src/main/java/com/mycompany/qlcb/dao/KySuDao.java +++ b/src/main/java/com/mycompany/qlcb/dao/KySuDao.java @@ -50,7 +50,8 @@ public ArrayList findKysu(String info) throws SQLException, Exception { String sql = "select * from tbl_canbo cb inner join " + "tbl_kysu ks on cb.macb = ks.maks " + "where tencb like" + info + " or namsinh like" + info + " or gioitinh like " + info - + " or diachi like " + info + "or nganhdt like " + info + " or loaibang like " + info; + + " or diachi like " + info + "or nganhdt like " + info + " or loaibang like " + info + + " or macb like " + info; try ( diff --git a/src/main/java/com/mycompany/qlcb/dao/NguoiDungDao.java b/src/main/java/com/mycompany/qlcb/dao/NguoiDungDao.java index e0577f9..fa20913 100644 --- a/src/main/java/com/mycompany/qlcb/dao/NguoiDungDao.java +++ b/src/main/java/com/mycompany/qlcb/dao/NguoiDungDao.java @@ -1,54 +1,49 @@ package com.mycompany.qlcb.dao; import static com.mycompany.qlcb.helpers.DatabaseHelper.openConnection; -import com.mycompany.qlcb.helpers.SharedData; +import com.mycompany.qlcb.helpers.MessageDialogHelper; import com.mycompany.qlcb.model.NguoiDung; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; - public class NguoiDungDao { + public NguoiDung checkLogin(String tenDangNhap, String matKhau) throws Exception { - String sql = "Select username, password,tbl_taikhoan.macb, quyen, tencb from tbl_taikhoan, tbl_canbo where tbl_taikhoan.macb = tbl_canbo.macb and username = ? and password = ?"; - try - ( - Connection con = openConnection(); - PreparedStatement pstmt = con.prepareStatement(sql); - ) - { + String sql = "Select username, password,macb, quyen, trangthai from tbl_taikhoan where username = ? and password = ?"; + try ( + Connection con = openConnection(); PreparedStatement pstmt = con.prepareStatement(sql);) { pstmt.setString(1, tenDangNhap); pstmt.setString(2, matKhau); - try(ResultSet rs = pstmt.executeQuery();) { + try ( ResultSet rs = pstmt.executeQuery();) { if (rs.next()) { - SharedData.tenNguoiDung = rs.getString("tencb"); - NguoiDung nd = new NguoiDung(); - nd.setTenDangNhap(tenDangNhap); - nd.setMaCB(rs.getInt("macb")); - int quyen = rs.getInt("quyen"); - switch (quyen) { - case 0: + if (rs.getString("trangthai").equals("Đang hoạt động")) { + NguoiDung nd = new NguoiDung(); + nd.setTenDangNhap(tenDangNhap); + nd.setMaCB(rs.getInt("macb")); + int quyen = rs.getInt("quyen"); + if (quyen == 0) { nd.setVaiTro("Quản trị viên"); - break; - case 1: + } + if (quyen == 1) { nd.setVaiTro("Công nhân"); - break; - case 2: + } + if (quyen == 2) { nd.setVaiTro("Kỹ sư"); - break; - case 3: + } + if (quyen == 3) { nd.setVaiTro("Nhân viên"); - break; - default: - break; + } + return nd; + } else { + return new NguoiDung(); } - return nd; - + } } } - + return null; - } - + } + } diff --git a/src/main/java/com/mycompany/qlcb/dao/NhanVienDao.java b/src/main/java/com/mycompany/qlcb/dao/NhanVienDao.java index 402a7b7..20395d1 100644 --- a/src/main/java/com/mycompany/qlcb/dao/NhanVienDao.java +++ b/src/main/java/com/mycompany/qlcb/dao/NhanVienDao.java @@ -47,7 +47,7 @@ public ArrayList findNhanVien(String info) throws SQLException, Except String sql = "select * from tbl_canbo cb inner join " + "tbl_nhanvien nv on cb.macb = nv.manv " + "where tencb like" + info + " or namsinh like" + info + " or gioitinh like " + info - + " or diachi like " + info + "or congviec like " + info; + + " or diachi like " + info + "or congviec like " + info + " or macb like " + info; try ( diff --git a/src/main/java/com/mycompany/qlcb/filehelpers/ExportBase.java b/src/main/java/com/mycompany/qlcb/filehelpers/ExportBase.java new file mode 100644 index 0000000..f663626 --- /dev/null +++ b/src/main/java/com/mycompany/qlcb/filehelpers/ExportBase.java @@ -0,0 +1,265 @@ + +package com.mycompany.qlcb.filehelpers; + +import com.mycompany.qlcb.model.Congnhan; +import com.mycompany.qlcb.model.Kysu; +import com.mycompany.qlcb.model.Nhanvien; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.List; + +import org.apache.poi.hssf.usermodel.HSSFCellStyle; +import org.apache.poi.hssf.usermodel.HSSFFont; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.Row; + + +public class ExportBase { + + private static HSSFCellStyle createStyleForTitle(HSSFWorkbook workbook) { + HSSFFont font = workbook.createFont(); + font.setBold(true); + HSSFCellStyle style = workbook.createCellStyle(); + style.setFont(font); + return style; + } + + /** + * + * @param list + * @throws IOException + */ + public static void NhanVienExport(List list) throws IOException { + + HSSFWorkbook workbook = new HSSFWorkbook(); + HSSFSheet sheet = workbook.createSheet("Employees sheet"); + + + int rownum = 0; + Cell cell; + Row row; + // + HSSFCellStyle style = createStyleForTitle(workbook); + + row = sheet.createRow(rownum); + + // EmpNo + cell = row.createCell(0, CellType.STRING); + cell.setCellValue("Mã NV"); + cell.setCellStyle(style); + // EmpName + cell = row.createCell(1, CellType.STRING); + cell.setCellValue("Tên NV"); + cell.setCellStyle(style); + + cell = row.createCell(2, CellType.NUMERIC); + cell.setCellValue("Năm sinh"); + cell.setCellStyle(style); + + // Salary + cell = row.createCell(3, CellType.STRING); + cell.setCellValue("Giới tính"); + cell.setCellStyle(style); + // Grade + cell = row.createCell(4, CellType.STRING); + cell.setCellValue("Địa chỉ"); + cell.setCellStyle(style); + // Bonus + cell = row.createCell(5, CellType.STRING); + cell.setCellValue("Công việc"); + cell.setCellStyle(style); + + // Data + for (Nhanvien emp : list) { + rownum++; + row = sheet.createRow(rownum); + + // EmpNo (A) + cell = row.createCell(0, CellType.STRING); + cell.setCellValue(emp.getMacb()); + // EmpName (B) + cell = row.createCell(1, CellType.STRING); + cell.setCellValue(emp.getTencb()); + + cell = row.createCell(2, CellType.NUMERIC); + cell.setCellValue(emp.getNamsinh()); + + cell = row.createCell(3, CellType.STRING); + cell.setCellValue(emp.getGioitinh()); + // Grade (D) + cell = row.createCell(4, CellType.STRING); + cell.setCellValue(emp.getDiachi()); + + cell = row.createCell(5, CellType.STRING); + cell.setCellValue(emp.getCongviec()); + + + } + File file = new File("D:/employee.xls"); + file.getParentFile().mkdirs(); + + FileOutputStream outFile = new FileOutputStream(file); + workbook.write(outFile); + System.out.println("Created file: " + file.getAbsolutePath()); + + } + + public static void KySuExport(List list) throws IOException { + + HSSFWorkbook workbook = new HSSFWorkbook(); + HSSFSheet sheet = workbook.createSheet("Employees sheet"); + + + int rownum = 0; + Cell cell; + Row row; + // + HSSFCellStyle style = createStyleForTitle(workbook); + + row = sheet.createRow(rownum); + + // EmpNo + cell = row.createCell(0, CellType.STRING); + cell.setCellValue("Mã NV"); + cell.setCellStyle(style); + // EmpName + cell = row.createCell(1, CellType.STRING); + cell.setCellValue("Tên NV"); + cell.setCellStyle(style); + + cell = row.createCell(2, CellType.NUMERIC); + cell.setCellValue("Năm sinh"); + cell.setCellStyle(style); + + // Salary + cell = row.createCell(3, CellType.STRING); + cell.setCellValue("Giới tính"); + cell.setCellStyle(style); + // Grade + cell = row.createCell(4, CellType.STRING); + cell.setCellValue("Địa chỉ"); + cell.setCellStyle(style); + // Bonus + cell = row.createCell(5, CellType.STRING); + cell.setCellValue("Ngành đào tạo"); + cell.setCellStyle(style); + + cell = row.createCell(5, CellType.STRING); + cell.setCellValue("Loại bằng"); + cell.setCellStyle(style); + + // Data + for (Kysu emp : list) { + rownum++; + row = sheet.createRow(rownum); + + // EmpNo (A) + cell = row.createCell(0, CellType.STRING); + cell.setCellValue(emp.getMacb()); + // EmpName (B) + cell = row.createCell(1, CellType.STRING); + cell.setCellValue(emp.getTencb()); + + cell = row.createCell(2, CellType.NUMERIC); + cell.setCellValue(emp.getNamsinh()); + + cell = row.createCell(3, CellType.STRING); + cell.setCellValue(emp.getGioitinh()); + // Grade (D) + cell = row.createCell(4, CellType.STRING); + cell.setCellValue(emp.getDiachi()); + + cell = row.createCell(5, CellType.STRING); + cell.setCellValue(emp.getNganhdt()); + + cell = row.createCell(5, CellType.STRING); + cell.setCellValue(emp.getLoaibang()); + + } + File file = new File("D:/engineer.xls"); + file.getParentFile().mkdirs(); + + FileOutputStream outFile = new FileOutputStream(file); + workbook.write(outFile); + System.out.println("Created file: " + file.getAbsolutePath()); + + } + public static void WorkerExport(List list) throws IOException { + + HSSFWorkbook workbook = new HSSFWorkbook(); + HSSFSheet sheet = workbook.createSheet("Employees sheet"); + + + int rownum = 0; + Cell cell; + Row row; + // + HSSFCellStyle style = createStyleForTitle(workbook); + + row = sheet.createRow(rownum); + + // EmpNo + cell = row.createCell(0, CellType.STRING); + cell.setCellValue("Mã NV"); + cell.setCellStyle(style); + // EmpName + cell = row.createCell(1, CellType.STRING); + cell.setCellValue("Tên NV"); + cell.setCellStyle(style); + + cell = row.createCell(2, CellType.NUMERIC); + cell.setCellValue("Năm sinh"); + cell.setCellStyle(style); + + // Salary + cell = row.createCell(3, CellType.STRING); + cell.setCellValue("Giới tính"); + cell.setCellStyle(style); + // Grade + cell = row.createCell(4, CellType.STRING); + cell.setCellValue("Địa chỉ"); + cell.setCellStyle(style); + // Bonus + cell = row.createCell(5, CellType.STRING); + cell.setCellValue("Bậc"); + cell.setCellStyle(style); + + // Data + for (Congnhan emp : list) { + rownum++; + row = sheet.createRow(rownum); + + // EmpNo (A) + cell = row.createCell(0, CellType.STRING); + cell.setCellValue(emp.getMacb()); + // EmpName (B) + cell = row.createCell(1, CellType.STRING); + cell.setCellValue(emp.getTencb()); + + cell = row.createCell(2, CellType.NUMERIC); + cell.setCellValue(emp.getNamsinh()); + + cell = row.createCell(3, CellType.STRING); + cell.setCellValue(emp.getGioitinh()); + // Grade (D) + cell = row.createCell(4, CellType.STRING); + cell.setCellValue(emp.getDiachi()); + + cell = row.createCell(5, CellType.STRING); + cell.setCellValue(emp.getBac()); + + } + File file = new File("D:/worker.xls"); + file.getParentFile().mkdirs(); + + FileOutputStream outFile = new FileOutputStream(file); + workbook.write(outFile); + System.out.println("Created file: " + file.getAbsolutePath()); + + } + +} diff --git a/src/main/java/com/mycompany/qlcb/filehelpers/ExportKySu.java b/src/main/java/com/mycompany/qlcb/filehelpers/ExportKySu.java new file mode 100644 index 0000000..9f16f27 --- /dev/null +++ b/src/main/java/com/mycompany/qlcb/filehelpers/ExportKySu.java @@ -0,0 +1,112 @@ + +package com.mycompany.qlcb.filehelpers; + +import com.mycompany.qlcb.model.Kysu; +import com.mycompany.qlcb.model.Kysu; +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.List; + +import org.apache.poi.hssf.usermodel.HSSFCellStyle; +import org.apache.poi.hssf.usermodel.HSSFFont; +import org.apache.poi.hssf.usermodel.HSSFSheet; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.Row; + + +public class ExportKySu { + + private static HSSFCellStyle createStyleForTitle(HSSFWorkbook workbook) { + HSSFFont font = workbook.createFont(); + font.setBold(true); + HSSFCellStyle style = workbook.createCellStyle(); + style.setFont(font); + return style; + } + + /** + * + * @param list + * @throws IOException + */ + public void Export(List list) throws IOException { + + HSSFWorkbook workbook = new HSSFWorkbook(); + HSSFSheet sheet = workbook.createSheet("Employees sheet"); + + + int rownum = 0; + Cell cell; + Row row; + // + HSSFCellStyle style = createStyleForTitle(workbook); + + row = sheet.createRow(rownum); + + // EmpNo + cell = row.createCell(0, CellType.STRING); + cell.setCellValue("Mã NV"); + cell.setCellStyle(style); + // EmpName + cell = row.createCell(1, CellType.STRING); + cell.setCellValue("Tên NV"); + cell.setCellStyle(style); + + cell = row.createCell(2, CellType.NUMERIC); + cell.setCellValue("Năm sinh"); + cell.setCellStyle(style); + + // Salary + cell = row.createCell(3, CellType.STRING); + cell.setCellValue("Giới tính"); + cell.setCellStyle(style); + // Grade + cell = row.createCell(4, CellType.STRING); + cell.setCellValue("Địa chỉ"); + cell.setCellStyle(style); + // Bonus + cell = row.createCell(5, CellType.STRING); + cell.setCellValue("Công việc"); + cell.setCellStyle(style); + + // Data + for (Kysu emp : list) { + rownum++; + row = sheet.createRow(rownum); + + // EmpNo (A) + cell = row.createCell(0, CellType.STRING); + cell.setCellValue(emp.getMacb()); + // EmpName (B) + cell = row.createCell(1, CellType.STRING); + cell.setCellValue(emp.getTencb()); + + cell = row.createCell(2, CellType.NUMERIC); + cell.setCellValue(emp.getNamsinh()); + + cell = row.createCell(3, CellType.STRING); + cell.setCellValue(emp.getGioitinh()); + // Grade (D) + cell = row.createCell(4, CellType.STRING); + cell.setCellValue(emp.getDiachi()); + + cell = row.createCell(5, CellType.STRING); + cell.setCellValue(emp.getNganhdt()); + + + } + File file = new File("D:/employee.xls"); + file.getParentFile().mkdirs(); + + FileOutputStream outFile = new FileOutputStream(file); + workbook.write(outFile); + System.out.println("Created file: " + file.getAbsolutePath()); + + } + + + +} diff --git a/src/main/java/com/mycompany/qlcb/model/NguoiDung.java b/src/main/java/com/mycompany/qlcb/model/NguoiDung.java index 45f5862..ea9a4c4 100644 --- a/src/main/java/com/mycompany/qlcb/model/NguoiDung.java +++ b/src/main/java/com/mycompany/qlcb/model/NguoiDung.java @@ -6,6 +6,9 @@ public class NguoiDung { private int macb; public NguoiDung() { + tenDangNhap = ""; + matKhau = ""; + vaiTro = ""; } public NguoiDung(String tenDangNhap, String matKhau,int macb, String vaiTro) { diff --git a/src/main/java/com/mycompany/qlcb/model/TaiKhoan.java b/src/main/java/com/mycompany/qlcb/model/TaiKhoan.java new file mode 100644 index 0000000..7fcc662 --- /dev/null +++ b/src/main/java/com/mycompany/qlcb/model/TaiKhoan.java @@ -0,0 +1,59 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template + */ +package com.mycompany.qlcb.model; + +/** + * + * @author Duc + */ +public class TaiKhoan { + private int macb, quyen; + private String username, trangthai; + + public int getMacb() { + return macb; + } + + public void setMacb(int macb) { + this.macb = macb; + } + + public int getQuyen() { + return quyen; + } + + public void setQuyen(int quyen) { + this.quyen = quyen; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + + public String getTrangthai() { + return trangthai; + } + + public void setTrangthai(String trangthai) { + this.trangthai = trangthai; + } + + public TaiKhoan(int macb, int quyen, String username, String trangthai) { + this.macb = macb; + this.quyen = quyen; + this.username = username; + this.trangthai = trangthai; + } + + public TaiKhoan() { + } + + + +} diff --git a/src/main/java/com/mycompany/qlcb/ui/AccountManagementPanel.form b/src/main/java/com/mycompany/qlcb/ui/AccountManagementPanel.form new file mode 100644 index 0000000..c78fa81 --- /dev/null +++ b/src/main/java/com/mycompany/qlcb/ui/AccountManagementPanel.form @@ -0,0 +1,225 @@ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ + + +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ diff --git a/src/main/java/com/mycompany/qlcb/ui/AccountManagementPanel.java b/src/main/java/com/mycompany/qlcb/ui/AccountManagementPanel.java new file mode 100644 index 0000000..3b300d2 --- /dev/null +++ b/src/main/java/com/mycompany/qlcb/ui/AccountManagementPanel.java @@ -0,0 +1,328 @@ +/* + * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license + * Click nbfs://nbhost/SystemFileSystem/Templates/GUIForms/JPanel.java to edit this template + */ +package com.mycompany.qlcb.ui; + +import com.mycompany.qlcb.dao.CanBoDao; +import com.mycompany.qlcb.dao.NhanVienDao; +import com.mycompany.qlcb.helpers.DataValidator; +import com.mycompany.qlcb.helpers.MessageDialogHelper; +import com.mycompany.qlcb.model.Canbo; +import com.mycompany.qlcb.model.Nhanvien; +import com.mycompany.qlcb.model.TaiKhoan; +import java.util.ArrayList; +import javax.swing.JOptionPane; +import javax.swing.table.DefaultTableModel; + +/** + * + * @author Duc + */ +public class AccountManagementPanel extends javax.swing.JPanel { + + private MainForm parentForm; + private DefaultTableModel tblModel; + + public AccountManagementPanel() { + initComponents(); + initTable(); + loadDataToTable(); + } + + private void initTable() { + tblModel = new DefaultTableModel(); + tblModel.setColumnIdentifiers(new String[] {"Mã CB","Tên đăng nhập","Quyền", "Trạng thái"}); + tbAccount.setModel(tblModel); + } + + public void loadDataToTable() { + try { + CanBoDao dao = new CanBoDao(); + ArrayList list = dao.getInfoAccount(); + tblModel.setRowCount(0); + + for (TaiKhoan it:list) { + String cv = null; + if (it.getQuyen() == 0) cv = "Quản trị viên"; + else if (it.getQuyen() == 1) cv = "User thường"; + + tblModel.addRow(new Object[] { + it.getMacb(),it.getUsername(), cv, it.getTrangthai() + }); + } + tblModel.fireTableDataChanged(); + + } + catch (Exception e) { + e.printStackTrace(); + MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); + } + } + @SuppressWarnings("unchecked") + // //GEN-BEGIN:initComponents + private void initComponents() { + + jScrollPane1 = new javax.swing.JScrollPane(); + tbAccount = new javax.swing.JTable(); + jLabel1 = new javax.swing.JLabel(); + jLabel2 = new javax.swing.JLabel(); + txtId = new javax.swing.JTextField(); + txtUsername = new javax.swing.JTextField(); + jLabel3 = new javax.swing.JLabel(); + jLabel4 = new javax.swing.JLabel(); + jButton1 = new javax.swing.JButton(); + jLabel5 = new javax.swing.JLabel(); + tblReload = new javax.swing.JButton(); + cbRule = new javax.swing.JComboBox<>(); + cbStatus = new javax.swing.JComboBox<>(); + + tbAccount.setModel(new javax.swing.table.DefaultTableModel( + new Object [][] { + {null, null, null, null}, + {null, null, null, null}, + {null, null, null, null}, + {null, null, null, null} + }, + new String [] { + "Title 1", "Title 2", "Title 3", "Title 4" + } + )); + tbAccount.addMouseListener(new java.awt.event.MouseAdapter() { + public void mouseClicked(java.awt.event.MouseEvent evt) { + tbAccountMouseClicked(evt); + } + }); + jScrollPane1.setViewportView(tbAccount); + + jLabel1.setFont(new java.awt.Font("Segoe UI", 1, 16)); // NOI18N + jLabel1.setForeground(new java.awt.Color(255, 51, 51)); + jLabel1.setText("QUẢN LÝ TÀI KHOẢN NGƯỜI DÙNG"); + + jLabel2.setText("ID:"); + + txtUsername.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + txtUsernameActionPerformed(evt); + } + }); + + jLabel3.setText("Username"); + + jLabel4.setText("Quyền"); + + jButton1.setBackground(new java.awt.Color(0, 204, 255)); + jButton1.setForeground(new java.awt.Color(255, 0, 51)); + jButton1.setText("Cập nhật"); + jButton1.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton1ActionPerformed(evt); + } + }); + + jLabel5.setText("Trạng thái"); + + tblReload.setText("Reload"); + tblReload.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + tblReloadActionPerformed(evt); + } + }); + + cbRule.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Quản trị viên", "User thường" })); + cbRule.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + cbRuleActionPerformed(evt); + } + }); + + cbStatus.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Đang hoạt động", "Vô hiệu hóa" })); + cbStatus.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + cbStatusActionPerformed(evt); + } + }); + + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); + this.setLayout(layout); + layout.setHorizontalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(15, 15, 15) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 341, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(0, 0, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 408, Short.MAX_VALUE) + .addGap(27, 27, 27) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel3) + .addComponent(jLabel2) + .addComponent(jLabel4)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(txtUsername, javax.swing.GroupLayout.DEFAULT_SIZE, 295, Short.MAX_VALUE) + .addComponent(txtId))) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel5) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(11, 11, 11) + .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 132, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(tblReload, javax.swing.GroupLayout.PREFERRED_SIZE, 145, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createSequentialGroup() + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(cbRule, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(cbStatus, 0, 144, Short.MAX_VALUE)))))) + .addContainerGap()))) + ); + layout.setVerticalGroup( + layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGap(23, 23, 23) + .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(txtId, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel2)) + .addGap(20, 20, 20) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 16, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(txtUsername, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(15, 15, 15) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel4) + .addComponent(cbRule, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel5) + .addComponent(cbStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jButton1) + .addComponent(tblReload))) + .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 368, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addContainerGap(23, Short.MAX_VALUE)) + ); + }// //GEN-END:initComponents + + private void txtUsernameActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtUsernameActionPerformed + // TODO add your handling code here: + }//GEN-LAST:event_txtUsernameActionPerformed + + private void tbAccountMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tbAccountMouseClicked + try { + // Lấy ra dong được click + int row = tbAccount.getSelectedRow(); + if (row >= 0) { + txtId.setText(String.valueOf(tbAccount.getValueAt(row, 0))); + txtUsername.setText((String)tbAccount.getValueAt(row, 1)); + if ((String)tbAccount.getValueAt(row, 2) == "Quản trị viên") { + cbRule.setSelectedIndex(0); + } + else if ((String)tbAccount.getValueAt(row, 2) == "User thường") { + cbRule.setSelectedIndex(1); + } + + + if ((String)tbAccount.getValueAt(row, 3) == "Đang hoạt động") { + System.out.println("alo 1"); + cbStatus.setSelectedIndex(0); + } + else if ((String)tbAccount.getValueAt(row, 3) == "Vô hiệu hóa") + { + System.out.println("alo2"); + cbStatus.setSelectedIndex(1); + } + } + } catch (Exception e) { + MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); + } + }//GEN-LAST:event_tbAccountMouseClicked + + private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed + StringBuilder sb = new StringBuilder(); + DataValidator.validateEmpty(txtId, sb, "Mã cán bộ không được để trống!!"); + DataValidator.validateEmpty(txtUsername, sb, "Tên đăng nhập không được bỏ trống!!"); + + // Nếu có lỗi + if (sb.length() > 0) { + MessageDialogHelper.showErrorDialog(parentForm, sb.toString(), "Lỗi"); + return; + } + + if (MessageDialogHelper.showConfirmDialog(parentForm, "Bạn có muốn cập nhật sinh tài khoản?", + "Xác nhận") == JOptionPane.NO_OPTION) { + return; + } + try { + // Lấy dữ liệu từ trên form xuống + TaiKhoan tk = new TaiKhoan(); + tk.setMacb(Integer.parseInt(txtId.getText())); + int quyen = 0; + if (rule.equalsIgnoreCase("Admin")) quyen = 0; + else if (rule.equalsIgnoreCase("User thường")) quyen = 1; + + + + tk.setTrangthai(status); + + CanBoDao dao = new CanBoDao(); + + + if (dao.update(tk)) + { + loadDataToTable(); + MessageDialogHelper.showMessageDialog(parentForm, "Tài khoản đã được cập nhật thành công!!", + "Thông báo"); + } + else { + MessageDialogHelper.showConfirmDialog(parentForm, + "Tài khoản không được cập nhật do lỗi", "Cảnh báo"); + } + } catch (Exception e) { + e.printStackTrace(); + MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); + } + }//GEN-LAST:event_jButton1ActionPerformed + + private void tblReloadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tblReloadActionPerformed + loadDataToTable(); + }//GEN-LAST:event_tblReloadActionPerformed + + String rule = ""; + private void cbRuleActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbRuleActionPerformed + String txt = (String)cbRule.getSelectedItem(); + rule = txt; + }//GEN-LAST:event_cbRuleActionPerformed + + String status = ""; + private void cbStatusActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbStatusActionPerformed + String txt = (String)cbStatus.getSelectedItem(); + status = txt; + }//GEN-LAST:event_cbStatusActionPerformed + + + // Variables declaration - do not modify//GEN-BEGIN:variables + private javax.swing.JComboBox cbRule; + private javax.swing.JComboBox cbStatus; + private javax.swing.JButton jButton1; + private javax.swing.JLabel jLabel1; + private javax.swing.JLabel jLabel2; + private javax.swing.JLabel jLabel3; + private javax.swing.JLabel jLabel4; + private javax.swing.JLabel jLabel5; + private javax.swing.JScrollPane jScrollPane1; + private javax.swing.JTable tbAccount; + private javax.swing.JButton tblReload; + private javax.swing.JTextField txtId; + private javax.swing.JTextField txtUsername; + // End of variables declaration//GEN-END:variables +} diff --git a/src/main/java/com/mycompany/qlcb/ui/EmployeeManagementPanel.form b/src/main/java/com/mycompany/qlcb/ui/EmployeeManagementPanel.form index 6a5702d..c6e69c9 100644 --- a/src/main/java/com/mycompany/qlcb/ui/EmployeeManagementPanel.form +++ b/src/main/java/com/mycompany/qlcb/ui/EmployeeManagementPanel.form @@ -28,165 +28,212 @@ - + + - - - - - - - - - - - - - - - - - - - - - - + + + + + - - + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - + + + + - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + - + - + - - - + + + + - - - - - - - - - - - + + + + + - - - + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - @@ -244,8 +291,6 @@
- - @@ -407,6 +452,9 @@ + + + @@ -475,5 +523,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/com/mycompany/qlcb/ui/EmployeeManagementPanel.java b/src/main/java/com/mycompany/qlcb/ui/EmployeeManagementPanel.java index d1a0c2a..0826a5b 100644 --- a/src/main/java/com/mycompany/qlcb/ui/EmployeeManagementPanel.java +++ b/src/main/java/com/mycompany/qlcb/ui/EmployeeManagementPanel.java @@ -4,6 +4,7 @@ import com.mycompany.qlcb.dao.NhanVienDao; import com.mycompany.qlcb.helpers.DataValidator; import com.mycompany.qlcb.helpers.MessageDialogHelper; +import com.mycompany.qlcb.filehelpers.ExportBase; import com.mycompany.qlcb.helpers.VNCharacterUtils; import com.mycompany.qlcb.model.Nhanvien; import java.util.ArrayList; @@ -12,16 +13,16 @@ import java.util.logging.Logger; import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; - +import org.apache.poi.ss.formula.functions.Count; public class EmployeeManagementPanel extends javax.swing.JPanel { - + private MainForm parentForm; private DefaultTableModel tblModel; ArrayList list; String fieldSort = "tencb"; String sortType = "ASC"; - + public EmployeeManagementPanel() { initComponents(); rdNam.setSelected(true); @@ -31,26 +32,25 @@ public EmployeeManagementPanel() { } private void initTable() { - tblModel = new DefaultTableModel(); - tblModel.setColumnIdentifiers(new String[] {"Mã NV","Họ tên","Năm sinh", "Giới tính", - "Địa chỉ", "Công việc"}); - tblEmployee.setModel(tblModel); + tblModel = new DefaultTableModel(); + tblModel.setColumnIdentifiers(new String[]{"Mã NV", "Họ tên", "Năm sinh", "Giới tính", + "Địa chỉ", "Công việc"}); + tblEmployee.setModel(tblModel); } - + private void loadDataToTable() { try { NhanVienDao dao = new NhanVienDao(); ArrayList list = dao.getAllNhanVien(null, ""); tblModel.setRowCount(0); - for (Nhanvien it:list) { - tblModel.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), + for (Nhanvien it : list) { + tblModel.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), it.getDiachi(), it.getCongviec() }); } tblModel.fireTableDataChanged(); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); } @@ -72,7 +72,6 @@ private void initComponents() { jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); txtName = new javax.swing.JTextField(); - jSeparator2 = new javax.swing.JSeparator(); txtNamSinh = new javax.swing.JTextField(); txtAddress = new javax.swing.JTextField(); rdNam = new javax.swing.JRadioButton(); @@ -94,6 +93,9 @@ private void initComponents() { cbField = new javax.swing.JComboBox<>(); cbSort = new javax.swing.JComboBox<>(); btnSort = new javax.swing.JButton(); + jButton1 = new javax.swing.JButton(); + btnExport = new javax.swing.JButton(); + jLabel7 = new javax.swing.JLabel(); jLabel1.setFont(new java.awt.Font("Segoe UI", 1, 14)); // NOI18N jLabel1.setText("QUẢN LÝ NHÂN VIÊN"); @@ -240,156 +242,202 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); + jButton1.setText("Reset mật khẩu"); + jButton1.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton1ActionPerformed(evt); + } + }); + + btnExport.setText("Xuất file"); + btnExport.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnExportActionPerformed(evt); + } + }); + + jLabel7.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N + jLabel7.setText("Sắp xếp"); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() + .addGap(24, 24, 24) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addGap(12, 12, 12) - .addComponent(jLabel2) - .addGap(83, 83, 83) - .addComponent(txtName, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addGap(12, 12, 12) - .addComponent(jLabel3) - .addGap(66, 66, 66) - .addComponent(txtNamSinh, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addGap(12, 12, 12) - .addComponent(jLabel5) - .addGap(84, 84, 84) - .addComponent(txtAddress, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addGap(12, 12, 12) - .addComponent(jLabel8) - .addGap(65, 65, 65) - .addComponent(txtJob, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(jLabel4) + .addGap(36, 36, 36) + .addComponent(rdNam) + .addGap(26, 26, 26) + .addComponent(rdNu)) .addGroup(layout.createSequentialGroup() - .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jSeparator1) - .addComponent(jSeparator2) - .addComponent(jSeparator3) - .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.TRAILING))) - .addGroup(layout.createSequentialGroup() - .addGap(12, 12, 12) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel1) .addGroup(layout.createSequentialGroup() - .addComponent(jLabel4) - .addGap(73, 73, 73) - .addComponent(rdNam) - .addGap(79, 79, 79) - .addComponent(rdNu))) - .addGap(0, 362, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(jLabel6) - .addGap(28, 28, 28) - .addComponent(txtSearch) + .addComponent(jLabel2) + .addGap(46, 46, 46) + .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 251, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(24, 24, 24) + .addComponent(jLabel6)) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel3) + .addGap(29, 29, 29) + .addComponent(txtNamSinh, javax.swing.GroupLayout.PREFERRED_SIZE, 251, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(26, 26, 26) + .addComponent(jLabel7))) .addGap(18, 18, 18) - .addComponent(btnSeach))) - .addContainerGap()) - .addGroup(layout.createSequentialGroup() - .addGap(139, 139, 139) - .addComponent(btnNew) - .addGap(50, 50, 50) - .addComponent(btnSave) - .addGap(58, 58, 58) - .addComponent(btnUpdate) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 75, Short.MAX_VALUE) - .addComponent(btnDelete) - .addGap(21, 21, 21)) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addComponent(cbField, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(txtSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 213, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(btnSeach) + .addComponent(btnSort, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addGap(0, 55, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(18, 18, 18) - .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(btnSort) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(layout.createSequentialGroup() + .addGap(23, 23, 23) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jSeparator1, javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel1) + .addGap(0, 0, Short.MAX_VALUE)))) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(0, 0, Short.MAX_VALUE)) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(24, 24, 24) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(layout.createSequentialGroup() + .addComponent(btnNew, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addComponent(btnSave, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(26, 26, 26) + .addComponent(btnUpdate)) + .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 340, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 164, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addComponent(btnDelete, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel5) + .addComponent(jLabel8)) + .addGap(27, 27, 27) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtJob, javax.swing.GroupLayout.PREFERRED_SIZE, 251, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 251, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addGap(26, 26, 26)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addContainerGap() + .addComponent(txtmanv, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(67, 67, 67))) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 485, Short.MAX_VALUE) + .addComponent(btnExport, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 137, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() + .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(jLabel1) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGap(18, 18, 18) .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(16, 16, 16) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addComponent(jLabel2)) - .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel3) - .addComponent(txtNamSinh, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(12, 12, 12) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(txtSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(btnSeach, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() - .addGap(1, 1, 1) - .addComponent(jLabel4)) - .addComponent(rdNam) - .addComponent(rdNu)) - .addGap(9, 9, 9) + .addGap(4, 4, 4) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel2) + .addComponent(jLabel6)))) + .addGap(6, 6, 6) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addComponent(jLabel5)) - .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(13, 13, 13) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtNamSinh, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addGap(4, 4, 4) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel3) + .addComponent(jLabel7)))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel4, javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(rdNam) + .addComponent(rdNu))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(4, 4, 4) + .addComponent(jLabel5)) + .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(13, 13, 13) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(4, 4, 4) + .addComponent(jLabel8)) + .addComponent(txtJob, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(22, 22, 22) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(btnNew) + .addComponent(btnSave) + .addComponent(btnUpdate)) + .addGap(18, 18, 18) + .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 11, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jButton1) + .addComponent(btnDelete)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 134, Short.MAX_VALUE) + .addComponent(txtmanv, 0, 0, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(25, 25, 25)) .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addComponent(jLabel8)) - .addComponent(txtJob, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(13, 13, 13) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(btnSave) - .addComponent(btnNew)) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(btnUpdate) - .addComponent(btnDelete))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 11, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(5, 5, 5) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(btnSeach, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(txtSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel6))) - .addGap(18, 18, 18) - .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 153, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(btnSort)) - .addContainerGap()) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addComponent(btnSort) + .addGap(0, 0, Short.MAX_VALUE))) + .addGap(18, 18, 18) + .addComponent(btnExport) + .addContainerGap()))) ); + + txtMaNghe.getAccessibleContext().setAccessibleName(""); }// //GEN-END:initComponents private void txtNameActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtNameActionPerformed - + }//GEN-LAST:event_txtNameActionPerformed private void txtNamSinhActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtNamSinhActionPerformed - + }//GEN-LAST:event_txtNamSinhActionPerformed private void txtAddressActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtAddressActionPerformed - + }//GEN-LAST:event_txtAddressActionPerformed private void txtJobActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtJobActionPerformed - + }//GEN-LAST:event_txtJobActionPerformed private void btnNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnNewActionPerformed @@ -400,8 +448,7 @@ private void btnNewActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST: rdNam.setSelected(true); rdNu.setSelected(false); }//GEN-LAST:event_btnNewActionPerformed - - + // Sự kiện save private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSaveActionPerformed StringBuilder sb = new StringBuilder(); @@ -409,60 +456,53 @@ private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST DataValidator.validateEmpty(txtNamSinh, sb, "Năm sinh không được bỏ trống!!"); DataValidator.validateEmpty(txtAddress, sb, "Địa chỉ không được bỏ trống!"); DataValidator.validateEmpty(txtJob, sb, "Công việc không được bỏ trống!!"); - + // Nếu có lỗi if (sb.length() > 0) { MessageDialogHelper.showErrorDialog(parentForm, sb.toString(), "Lỗi"); return; } - - + try { // Lấy dữ liệu từ trên form xuống Nhanvien nv = new Nhanvien(); nv.setTencb(txtName.getText()); nv.setNamsinh(Integer.parseInt(txtNamSinh.getText())); - nv.setGioitinh(rdNam.isSelected()?"Nam":"Nữ"); + nv.setGioitinh(rdNam.isSelected() ? "Nam" : "Nữ"); nv.setCongviec(txtJob.getText()); nv.setDiachi(txtAddress.getText()); int manghe = Integer.parseInt(txtMaNghe.getText()); CanBoDao dao = new CanBoDao(); - - - if (dao.insertCB(nv, manghe)) - { + + if (dao.insertCB(nv, manghe)) { MessageDialogHelper.showMessageDialog(parentForm, "Công nhân đã được thêm thành công!!", - "Thông báo"); - } - else { - MessageDialogHelper.showConfirmDialog(parentForm, + "Thông báo"); + } else { + MessageDialogHelper.showConfirmDialog(parentForm, "Công nhân không được lưu do lỗi", "Cảnh báo"); } - - + // Lấy ra mã cán bộ cuối cùng trong bảng để chèn vào bảng Công nhân - if (dao.getLastIdCB() != -1) { int macb = dao.getLastIdCB(); - + // Chèn vào bảng Công nhân dao.insertTable("tbl_nhanvien", macb, txtJob.getText(), ""); SatisticManagementPanel sasPanel = new SatisticManagementPanel(); sasPanel.loadDataToTable1(); - + //tao tai khoan tu dong String tk = VNCharacterUtils.removeAccent(txtName.getText()).replace(" ", "").toLowerCase(); System.out.print(tk); Random rand = new Random(); String mk = String.valueOf(rand.nextInt(100000000)); - if(dao.insertTaiKhoan(tk, mk, macb, Integer.valueOf(txtMaNghe.getText()))){ - MessageDialogHelper.showMessageDialog(parentForm, "Tạo tài khoản thành công!\nTài khoản: "+tk+"\nMật khẩu: "+mk, - "Thông báo"); + if (dao.insertTaiKhoan(tk, mk, macb, Integer.valueOf(txtMaNghe.getText()))) { + MessageDialogHelper.showMessageDialog(parentForm, "Tạo tài khoản thành công!\nTài khoản: " + tk + "\nMật khẩu: " + mk, + "Thông báo"); } loadDataToTable(); } - - + } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); @@ -475,14 +515,14 @@ private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR DataValidator.validateEmpty(txtNamSinh, sb, "Năm sinh không được bỏ trống!!"); DataValidator.validateEmpty(txtAddress, sb, "Địa chỉ không được bỏ trống!"); DataValidator.validateEmpty(txtJob, sb, "Công việc không được bỏ trống!!"); - + // Nếu có lỗi if (sb.length() > 0) { MessageDialogHelper.showErrorDialog(parentForm, sb.toString(), "Lỗi"); return; } - - if (MessageDialogHelper.showConfirmDialog(parentForm, "Bạn có muốn cập nhật sinh viên không?", + + if (MessageDialogHelper.showConfirmDialog(parentForm, "Bạn có muốn cập nhật sinh viên không?", "Xác nhận") == JOptionPane.NO_OPTION) { return; } @@ -491,21 +531,18 @@ private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR Nhanvien nv = new Nhanvien(); nv.setTencb(txtName.getText()); nv.setNamsinh(Integer.parseInt(txtNamSinh.getText())); - nv.setGioitinh(rdNam.isSelected()?"Nam":"Nữ"); + nv.setGioitinh(rdNam.isSelected() ? "Nam" : "Nữ"); nv.setCongviec(txtJob.getText()); nv.setDiachi(txtAddress.getText()); nv.setMacb(Integer.parseInt(txtmanv.getText())); NhanVienDao dao = new NhanVienDao(); - - - if (dao.update(nv)) - { + + if (dao.update(nv)) { loadDataToTable(); MessageDialogHelper.showMessageDialog(parentForm, "Công nhân đã được cập nhật thành công!!", - "Thông báo"); - } - else { - MessageDialogHelper.showConfirmDialog(parentForm, + "Thông báo"); + } else { + MessageDialogHelper.showConfirmDialog(parentForm, "Công nhân không được cập nhật do lỗi", "Cảnh báo"); } } catch (Exception e) { @@ -520,18 +557,18 @@ private void tblEmployeeMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST int row = tblEmployee.getSelectedRow(); if (row >= 0) { txtmanv.setText(String.valueOf(tblModel.getValueAt(row, 0))); - txtName.setText((String)tblModel.getValueAt(row, 1)); + txtName.setText((String) tblModel.getValueAt(row, 1)); txtNamSinh.setText(String.valueOf(tblModel.getValueAt(row, 2))); - String gender = (String)tblModel.getValueAt(row, 3); + String gender = (String) tblModel.getValueAt(row, 3); if (gender.equalsIgnoreCase("Nam")) { rdNam.setSelected(true); rdNu.setSelected(false); + } else { + rdNu.setSelected(true); + rdNam.setSelected(false); } - else { - rdNu.setSelected(true); rdNam.setSelected(false); - } - txtAddress.setText((String)tblModel.getValueAt(row, 4)); - txtJob.setText((String)tblModel.getValueAt(row, 5)); + txtAddress.setText((String) tblModel.getValueAt(row, 4)); + txtJob.setText((String) tblModel.getValueAt(row, 5)); } } catch (Exception e) { MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); @@ -544,14 +581,14 @@ private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR DataValidator.validateEmpty(txtNamSinh, sb, "Năm sinh không được bỏ trống!!"); DataValidator.validateEmpty(txtAddress, sb, "Địa chỉ không được bỏ trống!"); DataValidator.validateEmpty(txtJob, sb, "Công việc không được bỏ trống!!"); - + // Nếu có lỗi if (sb.length() > 0) { MessageDialogHelper.showErrorDialog(parentForm, sb.toString(), "Lỗi"); return; } - - if (MessageDialogHelper.showConfirmDialog(parentForm, "Bạn có muốn cập nhật sinh viên không?", + + if (MessageDialogHelper.showConfirmDialog(parentForm, "Bạn có muốn cập nhật sinh viên không?", "Xác nhận") == JOptionPane.NO_OPTION) { return; } @@ -559,17 +596,13 @@ private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR // Lấy dữ liệu từ trên form xuống CanBoDao dao = new CanBoDao(); int manv = Integer.parseInt(txtmanv.getText()); - - - - if (dao.delete("tbl_nhanvien", "manv",manv)) - { + + if (dao.delete("tbl_nhanvien", "manv", manv)) { MessageDialogHelper.showMessageDialog(parentForm, "Công nhân đã được xóa thành công!!", - "Thông báo"); + "Thông báo"); loadDataToTable(); - } - else { - MessageDialogHelper.showConfirmDialog(parentForm, + } else { + MessageDialogHelper.showConfirmDialog(parentForm, "Công nhân không được xóa do lỗi", "Cảnh báo"); } } catch (Exception e) { @@ -582,55 +615,95 @@ private void btnSeachActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS try { NhanVienDao dao = new NhanVienDao(); String info = txtSearch.getText(); - info = "'%" + info + "%'"; - ArrayList list = dao.findNhanVien(info); - tblModel.setRowCount(0); - for (Nhanvien it:list) { - tblModel.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), - it.getDiachi(), it.getCongviec() - }); + if (info.length() == 0) { + MessageDialogHelper.showErrorDialog(parentForm, "Thông tin tìm kiếm không được bỏ trống!!", "Lỗi"); + } else { + info = "'%" + info + "%'"; + ArrayList list = dao.findNhanVien(info); + tblModel.setRowCount(0); + for (Nhanvien it : list) { + tblModel.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), + it.getDiachi(), it.getCongviec() + }); + } + tblModel.fireTableDataChanged(); } - tblModel.fireTableDataChanged(); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); } }//GEN-LAST:event_btnSeachActionPerformed private void cbFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbFieldActionPerformed - String txt = (String)cbField.getSelectedItem(); + String txt = (String) cbField.getSelectedItem(); fieldSort = txt; }//GEN-LAST:event_cbFieldActionPerformed private void cbSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbSortActionPerformed - String type = (String)cbSort.getSelectedItem(); + String type = (String) cbSort.getSelectedItem(); sortType = type; }//GEN-LAST:event_cbSortActionPerformed private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSortActionPerformed NhanVienDao dao = new NhanVienDao(); ArrayList listt; + tblModel.setRowCount(0); try { listt = dao.sortEmployee(fieldSort, sortType); - for (Nhanvien it:listt) { - tblModel.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), + for (Nhanvien it : listt) { + tblModel.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), it.getDiachi(), it.getCongviec() }); } tblModel.fireTableDataChanged(); tblEmployee.setModel(tblModel); - tblModel.setRowCount(0); + } catch (Exception ex) { Logger.getLogger(EngineerManagementPanel.class.getName()).log(Level.SEVERE, null, ex); } }//GEN-LAST:event_btnSortActionPerformed + private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed + int manv = Integer.parseInt(txtmanv.getText()); + Random rand = new Random(); + String mk = String.valueOf(rand.nextInt(100000000)); + CanBoDao dao = new CanBoDao(); + try { + System.out.println("alo dmm1"); + if (dao.chagePassword(mk, manv)) { + + System.out.println("alo dmm2"); + MessageDialogHelper.showMessageDialog(parentForm, "Reset mật khẩu thành công!!\nMật khẩu mới: " + mk, "Thông báo"); + } + + } catch (Exception ex) { + MessageDialogHelper.showErrorDialog(parentForm, ex.getMessage(), "Lỗi"); + } + }//GEN-LAST:event_jButton1ActionPerformed + + private void btnExportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportActionPerformed + try { + NhanVienDao dao = new NhanVienDao(); + ArrayList list = dao.getAllNhanVien(null, ""); + + if (list.size() > 0) { + ExportBase export = new ExportBase(); + export.NhanVienExport(list); + + MessageDialogHelper.showMessageDialog(parentForm, "Xuất file thành công", "Thông báo"); + } + + } catch (Exception ex) { + MessageDialogHelper.showErrorDialog(parentForm, ex.getMessage(), "Lỗi"); + } + }//GEN-LAST:event_btnExportActionPerformed + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnDelete; + private javax.swing.JButton btnExport; private javax.swing.JButton btnNew; private javax.swing.JButton btnSave; private javax.swing.JButton btnSeach; @@ -639,16 +712,17 @@ private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST private javax.swing.JComboBox cbField; private javax.swing.JComboBox cbSort; private javax.swing.ButtonGroup genderGroup; + private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; + private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JSeparator jSeparator1; - private javax.swing.JSeparator jSeparator2; private javax.swing.JSeparator jSeparator3; private javax.swing.JSeparator jSeparator4; private javax.swing.JSeparator jSeparator5; @@ -665,4 +739,5 @@ private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST private javax.swing.JTextField txtSearch; private javax.swing.JTextField txtmanv; // End of variables declaration//GEN-END:variables + } diff --git a/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.form b/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.form index aed1e29..20f42ba 100644 --- a/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.form +++ b/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.form @@ -21,119 +21,111 @@ + + + + + + + + + + + - - + + + + + + - - - - - - + + + - - - - - - - - - - - - - - + + + - - - - + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - + + + - - - - - - - - + - - - - - - - - - - - - - - - - - - - + + @@ -141,81 +133,100 @@ - + + - + - - - - - - - - - - - - - - - - - + + + + + + + + + - - + + + + + + - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - + + + + + + - - @@ -255,8 +266,6 @@
- - @@ -380,6 +389,9 @@ + + + @@ -456,6 +468,7 @@ + @@ -480,14 +493,12 @@ - - - + @@ -534,5 +545,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.java b/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.java index 7183c8d..698ab44 100644 --- a/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.java +++ b/src/main/java/com/mycompany/qlcb/ui/EngineerManagementPanel.java @@ -2,6 +2,7 @@ import com.mycompany.qlcb.dao.CanBoDao; import com.mycompany.qlcb.dao.KySuDao; +import com.mycompany.qlcb.filehelpers.ExportBase; import com.mycompany.qlcb.helpers.DataValidator; import com.mycompany.qlcb.helpers.MessageDialogHelper; import com.mycompany.qlcb.helpers.VNCharacterUtils; @@ -13,14 +14,14 @@ import javax.swing.JOptionPane; import javax.swing.table.DefaultTableModel; - public class EngineerManagementPanel extends javax.swing.JPanel { + private MainForm parentForm; private DefaultTableModel tblModel; ArrayList list; String fieldSort = ""; String sortType = "ASC"; - + public EngineerManagementPanel() { initComponents(); rdNam.setSelected(true); @@ -28,34 +29,32 @@ public EngineerManagementPanel() { initTable(); loadDataToTable(); } - + private void initTable() { - tblModel = new DefaultTableModel(); - tblModel.setColumnIdentifiers(new String[] {"Mã KS","Họ tên","Năm sinh", "Giới tính", - "Địa chỉ", "Ngành đào tạo", "Loại bằng"}); - tblEngineer.setModel(tblModel); + tblModel = new DefaultTableModel(); + tblModel.setColumnIdentifiers(new String[]{"Mã KS", "Họ tên", "Năm sinh", "Giới tính", + "Địa chỉ", "Ngành đào tạo", "Loại bằng"}); + tblEngineer.setModel(tblModel); } - + private void loadDataToTable() { try { KySuDao dao = new KySuDao(); list = dao.getAllKysu(null, ""); tblModel.setRowCount(0); - for (Kysu it:list) { - tblModel.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), + for (Kysu it : list) { + tblModel.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), it.getDiachi(), it.getNganhdt(), it.getLoaibang() }); } tblModel.fireTableDataChanged(); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); } } - @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { @@ -66,7 +65,6 @@ private void initComponents() { jLabel3 = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); - jSeparator2 = new javax.swing.JSeparator(); txtAddress = new javax.swing.JTextField(); rdNam = new javax.swing.JRadioButton(); rdNu = new javax.swing.JRadioButton(); @@ -88,11 +86,13 @@ private void initComponents() { txtname = new javax.swing.JTextField(); txtSearch = new javax.swing.JTextField(); btnSearch = new javax.swing.JButton(); - jSeparator4 = new javax.swing.JSeparator(); jLabel6 = new javax.swing.JLabel(); cbField = new javax.swing.JComboBox<>(); cbSort = new javax.swing.JComboBox<>(); btnSort = new javax.swing.JButton(); + jButton1 = new javax.swing.JButton(); + btnExport = new javax.swing.JButton(); + jLabel9 = new javax.swing.JLabel(); jLabel1.setFont(new java.awt.Font("Segoe UI", 1, 14)); // NOI18N jLabel1.setText("QUẢN LÝ KỸ SƯ"); @@ -170,6 +170,7 @@ public Class getColumnClass(int columnIndex) { return types [columnIndex]; } }); + tblEngineer.setMinimumSize(new java.awt.Dimension(1000, 64)); tblEngineer.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { tblEngineerMouseClicked(evt); @@ -214,6 +215,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jLabel16.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N jLabel16.setText("Họ tên"); + txtmaks.setEditable(false); txtmaks.setAlignmentX(0.0F); txtmaks.setAlignmentY(0.0F); @@ -232,7 +234,7 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { }); jLabel6.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N - jLabel6.setText("Thông tin tìm kiếm"); + jLabel6.setText("Sắp xếp"); cbField.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Họ tên", "Năm sinh", "Giới tính", "Ngành đào tạo", "Loại bằng" })); cbField.addActionListener(new java.awt.event.ActionListener() { @@ -255,167 +257,185 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); + jButton1.setText("Reset mật khẩu"); + jButton1.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton1ActionPerformed(evt); + } + }); + + btnExport.setText("Xuất file"); + btnExport.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnExportActionPerformed(evt); + } + }); + + jLabel9.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N + jLabel9.setText("Thông tin tìm kiếm"); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(txtmaks, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) + .addGap(126, 126, 126)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(12, 12, 12) - .addComponent(jLabel1)) - .addGroup(layout.createSequentialGroup() - .addGap(20, 20, 20) - .addComponent(jLabel4) - .addGap(67, 67, 67) - .addComponent(rdNam) - .addGap(79, 79, 79) - .addComponent(rdNu))) - .addGap(0, 0, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() .addGap(20, 20, 20) + .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(btnExport, javax.swing.GroupLayout.PREFERRED_SIZE, 165, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createSequentialGroup() + .addGap(21, 21, 21) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addComponent(jLabel5) - .addGap(78, 78, 78) - .addComponent(txtAddress, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addComponent(jLabel3) - .addGap(60, 60, 60) - .addComponent(txtNamSinh, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(btnAdd, javax.swing.GroupLayout.PREFERRED_SIZE, 115, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(btnSave, javax.swing.GroupLayout.PREFERRED_SIZE, 97, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(21, 21, 21) + .addComponent(btnUpdate, javax.swing.GroupLayout.PREFERRED_SIZE, 129, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 380, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createSequentialGroup() - .addComponent(jLabel16) - .addGap(77, 77, 77) - .addComponent(txtname, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 182, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(btnDelete, javax.swing.GroupLayout.PREFERRED_SIZE, 180, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addComponent(jLabel7) .addGap(24, 24, 24) - .addComponent(txtField, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))) - .addGap(12, 12, 12)) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addComponent(jSeparator1) - .addContainerGap()) - .addGroup(layout.createSequentialGroup() - .addGap(20, 20, 20) - .addComponent(jLabel8) - .addGap(58, 58, 58) - .addComponent(txtDegree, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addContainerGap()) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addComponent(jLabel6) - .addGap(28, 28, 28) - .addComponent(txtSearch) - .addGap(18, 18, 18) - .addComponent(btnSearch)) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jScrollPane1) + .addComponent(txtField, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() - .addGap(6, 6, 6) - .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(btnSort))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(txtmaks, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addContainerGap()) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addComponent(jSeparator2) - .addContainerGap()) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jSeparator3) + .addComponent(jLabel8) + .addGap(58, 58, 58) + .addComponent(txtDegree, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(jLabel1) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel3) + .addGap(60, 60, 60) + .addComponent(txtNamSinh, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel16) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(txtname, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel5) + .addComponent(jLabel4)) + .addGap(67, 67, 67) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(rdNam) + .addGap(38, 38, 38) + .addComponent(rdNu)) + .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE))))) + .addGap(20, 20, 20) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(layout.createSequentialGroup() + .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, 101, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(13, 13, 13) + .addComponent(btnSort, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel9) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(txtSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 238, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(btnSearch))))) + .addGap(0, 0, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() - .addGap(0, 124, Short.MAX_VALUE) - .addComponent(btnAdd) - .addGap(109, 109, 109) - .addComponent(btnSave) - .addGap(81, 81, 81) - .addComponent(btnUpdate) - .addGap(92, 92, 92) - .addComponent(btnDelete))) + .addGap(408, 408, 408) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel6) + .addGap(0, 0, Short.MAX_VALUE)) + .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 607, Short.MAX_VALUE)))) .addContainerGap()) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addComponent(jSeparator4) + .addGap(21, 21, 21) + .addComponent(jSeparator1) .addContainerGap()) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() + .addComponent(txtmaks, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(17, 17, 17) + .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel16) - .addComponent(txtname, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(10, 10, 10) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel3) - .addComponent(txtNamSinh, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(10, 10, 10) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel4) - .addComponent(rdNam) - .addComponent(rdNu)) - .addGap(5, 5, 5) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addComponent(jLabel5)) - .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(10, 10, 10) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addComponent(jLabel7)) - .addComponent(txtField, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(20, 20, 20) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel8) - .addComponent(txtDegree, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 4, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(1, 1, 1) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtname, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(txtSearch, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(btnSearch)) + .addComponent(jLabel9, javax.swing.GroupLayout.Alignment.TRAILING)))) .addGap(13, 13, 13) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(btnSave) - .addComponent(btnAdd) - .addComponent(btnUpdate) - .addComponent(btnDelete)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 11, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(txtSearch) - .addComponent(btnSearch, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addComponent(jLabel6)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jSeparator4, javax.swing.GroupLayout.PREFERRED_SIZE, 10, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 164, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(txtmaks, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(btnSort) - .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(21, Short.MAX_VALUE)) + .addComponent(txtNamSinh, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel3) + .addComponent(jLabel6)) + .addGroup(layout.createSequentialGroup() + .addGap(1, 1, 1) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(btnSort)))) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(9, 9, 9) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(rdNam) + .addComponent(jLabel4))) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(rdNu))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel5)) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(txtField, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel7)) + .addGap(13, 13, 13) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(txtDegree, javax.swing.GroupLayout.PREFERRED_SIZE, 28, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel8)) + .addGap(24, 24, 24) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(btnAdd) + .addComponent(btnSave)) + .addComponent(btnUpdate)) + .addGap(13, 13, 13) + .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 11, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jButton1) + .addComponent(btnDelete)) + .addGap(64, 64, 64) + .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(26, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(btnExport) + .addGap(17, 17, 17)))) ); }// //GEN-END:initComponents @@ -424,7 +444,7 @@ private void txtAddressActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FI }//GEN-LAST:event_txtAddressActionPerformed private void txtFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtFieldActionPerformed - + }//GEN-LAST:event_txtFieldActionPerformed private void txtDegreeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_txtDegreeActionPerformed @@ -458,35 +478,31 @@ private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST MessageDialogHelper.showErrorDialog(parentForm, sb.toString(), "Lỗi"); return; } - - + try { // Lấy dữ liệu từ trên form xuống Kysu ks = new Kysu(); ks.setTencb(txtname.getText()); ks.setNamsinh(Integer.parseInt(txtNamSinh.getText())); - ks.setGioitinh(rdNam.isSelected()?"Nam":"Nữ"); + ks.setGioitinh(rdNam.isSelected() ? "Nam" : "Nữ"); ks.setLoaibang(txtField.getText()); ks.setDiachi(txtAddress.getText()); ks.setNganhdt(txtField.getText()); - + int manghe = Integer.parseInt(txtMaNghe.getText()); CanBoDao dao = new CanBoDao(); - if (dao.insertCB(ks, manghe)) - { + if (dao.insertCB(ks, manghe)) { MessageDialogHelper.showMessageDialog(parentForm, "Kỹ sư đã được thêm thành công!!", - "Thông báo"); - } - else { - MessageDialogHelper.showConfirmDialog(parentForm, + "Thông báo"); + } else { + MessageDialogHelper.showConfirmDialog(parentForm, "Kỹ sư không được lưu do lỗi", "Cảnh báo"); } - + // Lấy ra mã cán bộ cuối cùng trong bảng để chèn vào bảng nhân viên - if (dao.getLastIdCB() != -1) { int macb = dao.getLastIdCB(); - + // Chèn vào bảng nhân viên dao.insertTable("tbl_kysu", macb, txtField.getText(), txtDegree.getText()); //tao tai khoan tu dong @@ -494,9 +510,9 @@ private void btnSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST System.out.print(tk); Random rand = new Random(); String mk = String.valueOf(rand.nextInt(100000000)); - if(dao.insertTaiKhoan(tk, mk, macb, Integer.valueOf(txtMaNghe.getText()))){ - MessageDialogHelper.showMessageDialog(parentForm, "Tạo tài khoản thành công!\nTài khoản: "+tk+"\nMật khẩu: "+mk, - "Thông báo"); + if (dao.insertTaiKhoan(tk, mk, macb, Integer.valueOf(txtMaNghe.getText()))) { + MessageDialogHelper.showMessageDialog(parentForm, "Tạo tài khoản thành công!\nTài khoản: " + tk + "\nMật khẩu: " + mk, + "Thông báo"); } loadDataToTable(); } @@ -515,22 +531,22 @@ private void txtnameActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST }//GEN-LAST:event_txtnameActionPerformed private void tblEngineerMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_tblEngineerMouseClicked - try { + try { // Lấy ra dong được click int row = tblEngineer.getSelectedRow(); if (row >= 0) { txtmaks.setText((String.valueOf(tblModel.getValueAt(row, 0)))); - txtname.setText((String)tblModel.getValueAt(row, 1)); + txtname.setText((String) tblModel.getValueAt(row, 1)); txtNamSinh.setText(String.valueOf(tblModel.getValueAt(row, 2))); - String gender = (String)tblModel.getValueAt(row, 3); + String gender = (String) tblModel.getValueAt(row, 3); if (gender.equalsIgnoreCase("Nam")) { rdNam.setSelected(true); rdNu.setSelected(false); + } else { + rdNu.setSelected(true); + rdNam.setSelected(false); } - else { - rdNu.setSelected(true); rdNam.setSelected(false); - } - txtAddress.setText((String)tblModel.getValueAt(row, 4)); + txtAddress.setText((String) tblModel.getValueAt(row, 4)); txtField.setText(String.valueOf(tblModel.getValueAt(row, 5))); txtDegree.setText(String.valueOf(tblModel.getValueAt(row, 6))); } @@ -540,19 +556,19 @@ private void tblEngineerMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST }//GEN-LAST:event_tblEngineerMouseClicked private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnUpdateActionPerformed - StringBuilder sb = new StringBuilder(); + StringBuilder sb = new StringBuilder(); DataValidator.validateEmpty(txtname, sb, "Tên nhân viên không được để trống!!"); DataValidator.validateEmpty(txtNamSinh, sb, "Năm sinh không được bỏ trống!!"); DataValidator.validateEmpty(txtAddress, sb, "Địa chỉ không được bỏ trống!"); DataValidator.validateEmpty(txtField, sb, "Trường làm việc không được bỏ trống!!"); - + // Nếu có lỗi if (sb.length() > 0) { MessageDialogHelper.showErrorDialog(parentForm, sb.toString(), "Lỗi"); return; } - - if (MessageDialogHelper.showConfirmDialog(parentForm, "Bạn có muốn cập nhật sinh viên không?", + + if (MessageDialogHelper.showConfirmDialog(parentForm, "Bạn có muốn cập nhật sinh viên không?", "Xác nhận") == JOptionPane.NO_OPTION) { return; } @@ -561,29 +577,26 @@ private void btnUpdateActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR Kysu ks = new Kysu(); ks.setTencb(txtname.getText()); ks.setNamsinh(Integer.parseInt(txtNamSinh.getText())); - ks.setGioitinh(rdNam.isSelected()?"Nam":"Nữ"); + ks.setGioitinh(rdNam.isSelected() ? "Nam" : "Nữ"); ks.setNganhdt(txtField.getText()); ks.setLoaibang(txtDegree.getText()); ks.setDiachi(txtAddress.getText()); ks.setMacb(Integer.parseInt(txtmaks.getText())); KySuDao dao = new KySuDao(); - - - if (dao.update(ks)) - { + + if (dao.update(ks)) { loadDataToTable(); MessageDialogHelper.showMessageDialog(parentForm, "Kỹ sư đã được cập nhật thành công!!", - "Thông báo"); - } - else { - MessageDialogHelper.showConfirmDialog(parentForm, + "Thông báo"); + } else { + MessageDialogHelper.showConfirmDialog(parentForm, "Kỹ sư không được cập nhật do lỗi", "Cảnh báo"); } } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); } - + }//GEN-LAST:event_btnUpdateActionPerformed private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnDeleteActionPerformed @@ -598,8 +611,8 @@ private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR MessageDialogHelper.showErrorDialog(parentForm, sb.toString(), "Lỗi"); return; } - - if (MessageDialogHelper.showConfirmDialog(parentForm, "Bạn có muốn xóa kỹ sư không?", + + if (MessageDialogHelper.showConfirmDialog(parentForm, "Bạn có muốn xóa kỹ sư không?", "Xác nhận") == JOptionPane.NO_OPTION) { return; } @@ -607,17 +620,13 @@ private void btnDeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR // Lấy dữ liệu từ trên form xuống CanBoDao dao = new CanBoDao(); int maks = Integer.parseInt(txtmaks.getText()); - - - - if (dao.delete("tbl_kysu", "maks",maks)) - { + + if (dao.delete("tbl_kysu", "maks", maks)) { loadDataToTable(); MessageDialogHelper.showMessageDialog(parentForm, "Kỹ sư đã được xóa thành công!!", - "Thông báo"); - } - else { - MessageDialogHelper.showConfirmDialog(parentForm, + "Thông báo"); + } else { + MessageDialogHelper.showConfirmDialog(parentForm, "Kỹ sư không được xóa do lỗi", "Cảnh báo"); } } catch (Exception e) { @@ -630,31 +639,36 @@ private void btnSearchActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR try { KySuDao dao = new KySuDao(); String info = txtSearch.getText(); - info = "'%" + info + "%'"; - ArrayList list = dao.findKysu(info); - tblModel.setRowCount(0); - for (Kysu it:list) { - tblModel.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), - it.getDiachi(), it.getNganhdt(), it.getLoaibang() - }); + + if (info.length() == 0) { + MessageDialogHelper.showErrorDialog(parentForm, "Thông tin tìm kiếm không được bỏ trống!!", "Lỗi"); + } else { + info = "'%" + info + "%'"; + ArrayList list = dao.findKysu(info); + tblModel.setRowCount(0); + for (Kysu it : list) { + tblModel.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), + it.getDiachi(), it.getNganhdt(), it.getLoaibang() + }); + } + tblModel.fireTableDataChanged(); } - tblModel.fireTableDataChanged(); - } - catch (Exception e) { + + } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); } }//GEN-LAST:event_btnSearchActionPerformed private void cbFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbFieldActionPerformed - String txt = (String)cbField.getSelectedItem(); + String txt = (String) cbField.getSelectedItem(); fieldSort = txt; }//GEN-LAST:event_cbFieldActionPerformed private void cbSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cbSortActionPerformed - String type = (String)cbSort.getSelectedItem(); - sortType = type; + String type = (String) cbSort.getSelectedItem(); + sortType = type; }//GEN-LAST:event_cbSortActionPerformed private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSortActionPerformed @@ -663,9 +677,9 @@ private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST tblModel.setRowCount(0); try { listt = dao.sortEngineer(fieldSort, sortType); - for (Kysu it:listt) { - tblModel.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), + for (Kysu it : listt) { + tblModel.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), it.getDiachi(), it.getNganhdt(), it.getLoaibang() }); } @@ -674,14 +688,47 @@ private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST } catch (Exception ex) { Logger.getLogger(EngineerManagementPanel.class.getName()).log(Level.SEVERE, null, ex); } - - + + }//GEN-LAST:event_btnSortActionPerformed + private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed + int manv = Integer.parseInt(txtmaks.getText()); + Random rand = new Random(); + String mk = String.valueOf(rand.nextInt(100000000)); + CanBoDao dao = new CanBoDao(); + try { + if (dao.chagePassword(mk, manv)) { + MessageDialogHelper.showMessageDialog(parentForm, "Reset mật khẩu thành công!!\nMật khẩu mới: " + mk, "Thông báo"); + } + + } catch (Exception ex) { + MessageDialogHelper.showErrorDialog(parentForm, ex.getMessage(), "Lỗi"); + } + }//GEN-LAST:event_jButton1ActionPerformed + + private void btnExportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportActionPerformed + try { + KySuDao dao = new KySuDao(); + list = dao.getAllKysu(null, ""); + + if (list.size() > 0) { + ExportBase export = new ExportBase(); + export.KySuExport(list); + + MessageDialogHelper.showMessageDialog(parentForm, "Xuất file thành công", "Thông báo"); + } + + } catch (Exception ex) { + MessageDialogHelper.showErrorDialog(parentForm, ex.getMessage(), "Lỗi"); + } + }//GEN-LAST:event_btnExportActionPerformed + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnAdd; private javax.swing.JButton btnDelete; + private javax.swing.JButton btnExport; private javax.swing.JButton btnSave; private javax.swing.JButton btnSearch; private javax.swing.JButton btnSort; @@ -689,6 +736,7 @@ private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST private javax.swing.JComboBox cbField; private javax.swing.JComboBox cbSort; private javax.swing.ButtonGroup genderGroup; + private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel16; private javax.swing.JLabel jLabel3; @@ -697,11 +745,10 @@ private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; + private javax.swing.JLabel jLabel9; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JSeparator jSeparator1; - private javax.swing.JSeparator jSeparator2; private javax.swing.JSeparator jSeparator3; - private javax.swing.JSeparator jSeparator4; private javax.swing.JRadioButton rdNam; private javax.swing.JRadioButton rdNu; private javax.swing.JTable tblEngineer; diff --git a/src/main/java/com/mycompany/qlcb/ui/LoginDialog.java b/src/main/java/com/mycompany/qlcb/ui/LoginDialog.java index 07d506b..ca26fed 100644 --- a/src/main/java/com/mycompany/qlcb/ui/LoginDialog.java +++ b/src/main/java/com/mycompany/qlcb/ui/LoginDialog.java @@ -157,8 +157,7 @@ private void btnCloseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS private void btnLoginActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnLoginActionPerformed StringBuilder sb = new StringBuilder(); DataValidator.validateEmpty(txtUsername, sb, "Tên đăng nhập không được để trống!!"); - DataValidator.validateEmpty(txtPassword, sb, "Mật khẩu không được để trống!!"); - + DataValidator.validateEmpty(txtPassword, sb, "Mật khẩu không được để trống!! " ); if (sb.length() > 0) { MessageDialogHelper.showErrorDialog(this, sb.toString(), "Lỗi"); return; @@ -167,11 +166,17 @@ private void btnLoginActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRS NguoiDungDao dao = new NguoiDungDao(); try { nd = dao.checkLogin(txtUsername.getText(), new String(txtPassword.getPassword())); - + System.out.println(nd.getTenDangNhap()); + System.out.println(nd.getMatKhau()); + System.out.println(nd.getVaiTro()); + + if (nd==null) { MessageDialogHelper.showErrorDialog(this, "Tên đăng nhập hoặc mật khẩu sai!!", "Lỗi"); } - else { + else if(nd.getTenDangNhap() == ""){ + MessageDialogHelper.showErrorDialog(this, "Người dùng đã bị vô hiệu hóa\nVui lòng đăng nhập bằng tài khoản khác!", "Lỗi"); + }else{ SharedData.nguoiDangNhap = nd; // dong hop thoai this.dispose(); diff --git a/src/main/java/com/mycompany/qlcb/ui/MainForm.form b/src/main/java/com/mycompany/qlcb/ui/MainForm.form index 7cc42aa..f4d467a 100644 --- a/src/main/java/com/mycompany/qlcb/ui/MainForm.form +++ b/src/main/java/com/mycompany/qlcb/ui/MainForm.form @@ -113,6 +113,16 @@ + + + + + + + + + + @@ -193,33 +203,26 @@ - - - - - - - - - - - - + + + + + - + - - + + - - - + + + @@ -296,6 +299,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -310,8 +345,6 @@ - - @@ -324,27 +357,27 @@ - - - - - - - - - - + + + + + + + + - + + + + - @@ -360,12 +393,13 @@ - - - + + + + diff --git a/src/main/java/com/mycompany/qlcb/ui/MainForm.java b/src/main/java/com/mycompany/qlcb/ui/MainForm.java index a6efe7c..4f53e7f 100644 --- a/src/main/java/com/mycompany/qlcb/ui/MainForm.java +++ b/src/main/java/com/mycompany/qlcb/ui/MainForm.java @@ -12,6 +12,7 @@ public class MainForm extends javax.swing.JFrame { private EmployeeManagementPanel mEmployeePanel; private SatisticManagementPanel mSatisticPanel; private nguoidungPanel mNguoiDungPanel; + private AccountManagementPanel mAccountPanel; public MainForm() { initComponents(); @@ -44,12 +45,17 @@ private void initComponents() { jSeparator4 = new javax.swing.JToolBar.Separator(); tbrQLNV = new javax.swing.JButton(); jSeparator2 = new javax.swing.JToolBar.Separator(); + tbrQLTK = new javax.swing.JButton(); + jSeparator13 = new javax.swing.JToolBar.Separator(); + tbrSatistic = new javax.swing.JButton(); + jSeparator14 = new javax.swing.JToolBar.Separator(); tbrAboutUs = new javax.swing.JButton(); - jSeparator10 = new javax.swing.JToolBar.Separator(); tplMainBoard = new javax.swing.JTabbedPane(); jPanel1 = new javax.swing.JPanel(); txtTen = new javax.swing.JLabel(); txtQuyen = new javax.swing.JLabel(); + jSeparator12 = new javax.swing.JSeparator(); + jSeparator10 = new javax.swing.JToolBar.Separator(); jMenuBar1 = new javax.swing.JMenuBar(); jMenu1 = new javax.swing.JMenu(); jMenuItem1 = new javax.swing.JMenuItem(); @@ -61,6 +67,8 @@ private void initComponents() { mnuManageEngineer = new javax.swing.JMenuItem(); jSeparator7 = new javax.swing.JPopupMenu.Separator(); mnuManageEmployee = new javax.swing.JMenuItem(); + jSeparator11 = new javax.swing.JPopupMenu.Separator(); + mnuQLTK = new javax.swing.JMenuItem(); jMenu4 = new javax.swing.JMenu(); mnuSatistic = new javax.swing.JMenuItem(); mnuAboutUs = new javax.swing.JMenu(); @@ -135,6 +143,32 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jToolBar1.add(tbrQLNV); jToolBar1.add(jSeparator2); + tbrQLTK.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/mycompany/qlcb/icons/gpa-icon-32.png"))); // NOI18N + tbrQLTK.setText("QL Tài Khoản"); + tbrQLTK.setFocusable(false); + tbrQLTK.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + tbrQLTK.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + tbrQLTK.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + tbrQLTKActionPerformed(evt); + } + }); + jToolBar1.add(tbrQLTK); + jToolBar1.add(jSeparator13); + + tbrSatistic.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/mycompany/qlcb/icons/Actions-view-choose-icon-24.png"))); // NOI18N + tbrSatistic.setText("Thống kê"); + tbrSatistic.setFocusable(false); + tbrSatistic.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + tbrSatistic.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM); + tbrSatistic.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + tbrSatisticActionPerformed(evt); + } + }); + jToolBar1.add(tbrSatistic); + jToolBar1.add(jSeparator14); + tbrAboutUs.setIcon(new javax.swing.ImageIcon(getClass().getResource("/com/mycompany/qlcb/icons/Actions-help-about-icon-32.png"))); // NOI18N tbrAboutUs.setText("Giới thiệu"); tbrAboutUs.setFocusable(false); @@ -146,12 +180,10 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); jToolBar1.add(tbrAboutUs); - jToolBar1.add(jSeparator10); txtTen.setFont(new java.awt.Font("Segoe UI", 0, 18)); // NOI18N txtTen.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - txtQuyen.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N txtQuyen.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); @@ -159,22 +191,24 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() - .addComponent(txtTen, javax.swing.GroupLayout.PREFERRED_SIZE, 199, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap()) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup() - .addComponent(txtQuyen, javax.swing.GroupLayout.PREFERRED_SIZE, 117, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(45, 45, 45)))) + .addComponent(jSeparator12, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(7, 7, 7) + .addComponent(jSeparator10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(42, 42, 42) + .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(txtTen, javax.swing.GroupLayout.DEFAULT_SIZE, 133, Short.MAX_VALUE) + .addComponent(txtQuyen, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap()) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jSeparator12, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jSeparator10, javax.swing.GroupLayout.PREFERRED_SIZE, 89, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(jPanel1Layout.createSequentialGroup() + .addContainerGap() .addComponent(txtTen, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(txtQuyen, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 0, Short.MAX_VALUE)) + .addComponent(txtQuyen, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)) ); jMenu1.setText("Hệ thống"); @@ -235,6 +269,11 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); jMenu2.add(mnuManageEmployee); + jMenu2.add(jSeparator11); + + mnuQLTK.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.CTRL_DOWN_MASK)); + mnuQLTK.setText("Quản lý tài khoản"); + jMenu2.add(mnuQLTK); jMenuBar1.add(jMenu2); @@ -276,26 +315,22 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addComponent(tplMainBoard, javax.swing.GroupLayout.DEFAULT_SIZE, 707, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(72, 72, 72) - .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 45, Short.MAX_VALUE) + .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap()) + .addComponent(tplMainBoard) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addContainerGap() + .addGap(0, 0, 0) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 91, Short.MAX_VALUE) - .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(tplMainBoard, javax.swing.GroupLayout.DEFAULT_SIZE, 543, Short.MAX_VALUE) + .addComponent(jToolBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 81, Short.MAX_VALUE) + .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 81, Short.MAX_VALUE)) + .addGap(0, 0, 0) + .addComponent(tplMainBoard, javax.swing.GroupLayout.DEFAULT_SIZE, 323, Short.MAX_VALUE) .addContainerGap()) ); @@ -306,8 +341,7 @@ private void mnuManageEmployeeActionPerformed(java.awt.event.ActionEvent evt) {/ if (mEmployeePanel == null) { mEmployeePanel = new EmployeeManagementPanel(); tplMainBoard.addTab("Quản lý nhân viên", mEmployeePanel); - } - else { + } else { tplMainBoard.addTab("Quản lý nhân viên", mEmployeePanel); } tplMainBoard.setSelectedComponent(mSatisticPanel); @@ -335,32 +369,35 @@ private void mnuManageWorkerActionPerformed(java.awt.event.ActionEvent evt) {//G mWorkerPanel = new WorkerManagementPanel(); tplMainBoard.addTab("Quản lý công nhân", mWorkerPanel); - } - else { + } else { tplMainBoard.addTab("Quản lý công nhân", mWorkerPanel); } tplMainBoard.setSelectedComponent(mWorkerPanel); }//GEN-LAST:event_mnuManageWorkerActionPerformed - private void tbrAboutUsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tbrAboutUsActionPerformed - AboutUsDialog aboutDialog = new AboutUsDialog(this, true); - aboutDialog.setVisible(true); - }//GEN-LAST:event_tbrAboutUsActionPerformed + private void tbrSatisticActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tbrSatisticActionPerformed + if (mSatisticPanel == null) { + mSatisticPanel = new SatisticManagementPanel(); + tplMainBoard.addTab("Thống kê và tìm kiếm", mSatisticPanel); + } + else { + tplMainBoard.addTab("Thống kê và tìm kiếm", mSatisticPanel); + } + tplMainBoard.setSelectedComponent(mSatisticPanel); + }//GEN-LAST:event_tbrSatisticActionPerformed private void jMenuItem5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem5ActionPerformed AboutUsDialog aboutDialog = new AboutUsDialog(this, true); aboutDialog.setVisible(true); }//GEN-LAST:event_jMenuItem5ActionPerformed - // Quản lý công nhân private void tbrQLCNActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tbrQLCNActionPerformed if (mWorkerPanel == null) { mWorkerPanel = new WorkerManagementPanel(); tplMainBoard.addTab("Quản lý công nhân", mWorkerPanel); - } - else { + } else { tplMainBoard.addTab("Quản lý công nhân", mWorkerPanel); } tplMainBoard.setSelectedComponent(mWorkerPanel); @@ -372,8 +409,7 @@ private void mnuManageEngineerActionPerformed(java.awt.event.ActionEvent evt) {/ mEngineerPanel = new EngineerManagementPanel(); tplMainBoard.addTab("Quản lý kỹ sư", mEngineerPanel); - } - else { + } else { tplMainBoard.addTab("Quản lý kỹ sư", mEngineerPanel); } tplMainBoard.setSelectedComponent(mEngineerPanel); @@ -384,8 +420,7 @@ private void tbrQLKSActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST mEngineerPanel = new EngineerManagementPanel(); tplMainBoard.addTab("Quản lý kỹ sư", mEngineerPanel); - } - else { + } else { tplMainBoard.addTab("Quản lý kỹ sư", mEngineerPanel); } tplMainBoard.setSelectedComponent(mEngineerPanel); @@ -395,8 +430,7 @@ private void tbrQLNVActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST if (mEmployeePanel == null) { mEmployeePanel = new EmployeeManagementPanel(); tplMainBoard.addTab("Quản lý nhân viên", mEmployeePanel); - } - else { + } else { tplMainBoard.addTab("Quản lý nhân viên", mEmployeePanel); } tplMainBoard.setSelectedComponent(mEmployeePanel); @@ -408,7 +442,7 @@ private void tbrLogoutActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR tplMainBoard.removeAll(); LoginDialog loginDialog = new LoginDialog(this, true); loginDialog.setVisible(true); - + processLogin(); } catch (Exception ex) { Logger.getLogger(MainForm.class.getName()).log(Level.SEVERE, null, ex); @@ -432,20 +466,45 @@ private void mnuSatisticActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F mSatisticPanel = new SatisticManagementPanel(); tplMainBoard.addTab("Thống kê và tìm kiếm", mSatisticPanel); } + else { + tplMainBoard.addTab("Thống kê và tìm kiếm", mSatisticPanel); + } tplMainBoard.setSelectedComponent(mSatisticPanel); }//GEN-LAST:event_mnuSatisticActionPerformed + private void tbrAboutUsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tbrAboutUsActionPerformed + AboutUsDialog aboutDialog = new AboutUsDialog(this, true); + aboutDialog.setVisible(true); + }//GEN-LAST:event_tbrAboutUsActionPerformed + + private void tbrQLTKActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_tbrQLTKActionPerformed + if (mAccountPanel == null) { + mAccountPanel = new AccountManagementPanel(); + tplMainBoard.addTab("Quản lý tài khoản", mAccountPanel); + } + else { + tplMainBoard.addTab("Quản lý tài khoản", mAccountPanel); + } + tplMainBoard.setSelectedComponent(mAccountPanel); + }//GEN-LAST:event_tbrQLTKActionPerformed + private void processLogin() throws Exception { - txtTen.setText(SharedData.tenNguoiDung); + txtTen.setText(SharedData.nguoiDangNhap.getTenDangNhap()); txtQuyen.setText(SharedData.nguoiDangNhap.getVaiTro()); if (!SharedData.nguoiDangNhap.getVaiTro().equals("Quản trị viên")) { SharedData a = new SharedData(); a.show_info(); + + // Vô hiệu hóa các function nếu không phải là quản trị viên mnuManageWorker.setEnabled(false); mnuManageEmployee.setEnabled(false); mnuManageEngineer.setEnabled(false); mnuSatistic.setEnabled(false); + mnuQLTK.setEnabled(false); + + tbrSatistic.setEnabled(false); + tbrQLTK.setEnabled(false); tbrQLNV.setEnabled(false); tbrQLKS.setEnabled(false); tbrQLCN.setEnabled(false); @@ -453,31 +512,35 @@ private void processLogin() throws Exception { mNguoiDungPanel = new nguoidungPanel(); tplMainBoard.addTab("Thông tin cá nhân", mNguoiDungPanel); tplMainBoard.setSelectedComponent(mNguoiDungPanel); - } - else { + } else { tplMainBoard.addTab("Thông tin cá nhân", mNguoiDungPanel); tplMainBoard.setSelectedComponent(mNguoiDungPanel); } - + } else { if (tplMainBoard == null) { tplMainBoard.setSelectedComponent(mEmployeePanel); tplMainBoard.setSelectedComponent(mEngineerPanel); tplMainBoard.setSelectedComponent(mWorkerPanel); - } + tplMainBoard.setSelectedComponent(mSatisticPanel); + tplMainBoard.setSelectedComponent(mAccountPanel); + } SharedData a = new SharedData(); a.show_info(); mnuManageWorker.setEnabled(true); mnuManageEmployee.setEnabled(true); mnuManageEngineer.setEnabled(true); mnuSatistic.setEnabled(true); + mnuQLTK.setEnabled(true); + tbrQLNV.setEnabled(true); tbrQLKS.setEnabled(true); tbrQLCN.setEnabled(true); + tbrQLTK.setEnabled(true); + tbrSatistic.setEnabled(true); } } - public static void main(String args[]) { /* Set the Nimbus look and feel */ // @@ -524,6 +587,10 @@ public void run() { private javax.swing.JPanel jPanel1; private javax.swing.JPopupMenu.Separator jSeparator1; private javax.swing.JToolBar.Separator jSeparator10; + private javax.swing.JPopupMenu.Separator jSeparator11; + private javax.swing.JSeparator jSeparator12; + private javax.swing.JToolBar.Separator jSeparator13; + private javax.swing.JToolBar.Separator jSeparator14; private javax.swing.JToolBar.Separator jSeparator2; private javax.swing.JSeparator jSeparator3; private javax.swing.JToolBar.Separator jSeparator4; @@ -538,12 +605,15 @@ public void run() { private javax.swing.JMenuItem mnuManageEmployee; private javax.swing.JMenuItem mnuManageEngineer; private javax.swing.JMenuItem mnuManageWorker; + private javax.swing.JMenuItem mnuQLTK; private javax.swing.JMenuItem mnuSatistic; private javax.swing.JButton tbrAboutUs; private javax.swing.JButton tbrLogout; private javax.swing.JButton tbrQLCN; private javax.swing.JButton tbrQLKS; private javax.swing.JButton tbrQLNV; + private javax.swing.JButton tbrQLTK; + private javax.swing.JButton tbrSatistic; private javax.swing.JTabbedPane tplMainBoard; private javax.swing.JLabel txtQuyen; private javax.swing.JLabel txtTen; diff --git a/src/main/java/com/mycompany/qlcb/ui/SatisticManagementPanel.form b/src/main/java/com/mycompany/qlcb/ui/SatisticManagementPanel.form index 6e0701b..d8a1647 100644 --- a/src/main/java/com/mycompany/qlcb/ui/SatisticManagementPanel.form +++ b/src/main/java/com/mycompany/qlcb/ui/SatisticManagementPanel.form @@ -1,6 +1,13 @@
+ + + + + + + @@ -16,28 +23,44 @@ - - + - - + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + + - - - - - - - @@ -46,27 +69,36 @@ - + - - + + + - - - + + + + + + + + - + + + + - + - + - + @@ -139,7 +171,7 @@ - + @@ -151,6 +183,15 @@ + + + + + + + + + @@ -180,11 +221,34 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/com/mycompany/qlcb/ui/SatisticManagementPanel.java b/src/main/java/com/mycompany/qlcb/ui/SatisticManagementPanel.java index 5a5cc9a..247ce8e 100644 --- a/src/main/java/com/mycompany/qlcb/ui/SatisticManagementPanel.java +++ b/src/main/java/com/mycompany/qlcb/ui/SatisticManagementPanel.java @@ -26,101 +26,103 @@ public class SatisticManagementPanel extends javax.swing.JPanel { private MainForm parentForm; private DefaultTableModel tblModel1; private DefaultTableModel tblModel2; - + public SatisticManagementPanel() { initComponents(); initTable1(); loadDataToTable1(); } - private void initTable1() { - tblModel1 = new DefaultTableModel(); - tblModel1.setColumnIdentifiers(new String[] {"Mã NV","Họ tên","Năm sinh", "Giới tính", - "Địa chỉ", "Mã nghành", "Tên ngành"}); - tbCanBo.setModel(tblModel1); + tblModel1 = new DefaultTableModel(); + tblModel1.setColumnIdentifiers(new String[]{"Mã NV", "Họ tên", "Năm sinh", "Giới tính", + "Địa chỉ", "Mã nghành", "Tên ngành"}); + tbCanBo.setModel(tblModel1); } - + private void initTable(String field1, String field2) { - tblModel2 = new DefaultTableModel(); - tblModel2.setColumnIdentifiers(new String[] {"Mã NV","Họ tên","Năm sinh", "Giới tính", - "Địa chỉ", field1, field2}); - tbDetailCb.setModel(tblModel2); + tblModel2 = new DefaultTableModel(); + tblModel2.setColumnIdentifiers(new String[]{"Mã NV", "Họ tên", "Năm sinh", "Giới tính", + "Địa chỉ", field1, field2}); + tbDetailCb.setModel(tblModel2); } + public void loadDataToTable1() { try { CanBoDao dao = new CanBoDao(); ArrayList list = dao.getAllCanBo(); tblModel1.setRowCount(0); - for (Canbo it:list) { - tblModel1.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), + for (Canbo it : list) { + tblModel1.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), it.getDiachi(), it.getManghe(), it.getTennghe() }); } tblModel1.fireTableDataChanged(); - } - catch (Exception e) { + int[] arr = dao.getNumber(); + lbCongNhan.setText("Số công nhân: " + String.valueOf(arr[0])); + lbKySu.setText("Số kỹ sư: " + String.valueOf(arr[1])); + lbNhanVien.setText("Số nhân viên: " + String.valueOf(arr[2])); + + } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); } } - + private void loadDataToTableCn(int macb) { try { CanBoDao dao = new CanBoDao(); Congnhan it = dao.getDetailCn(macb); - tblModel2.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), + tblModel2.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), it.getDiachi(), it.getBac() }); - + tblModel2.fireTableDataChanged(); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); } } - + private void loadDataToTableKs(int macb) { try { KySuDao dao = new KySuDao(); Kysu it = dao.getDetailKySu(macb); - tblModel2.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), + tblModel2.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), it.getDiachi(), it.getNganhdt(), it.getLoaibang() }); - + tblModel2.fireTableDataChanged(); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); } } - + private void loadDataToTableNv(int macb) { try { NhanVienDao dao = new NhanVienDao(); Nhanvien it = dao.getDetailNhanVien(macb); - tblModel2.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), + tblModel2.addRow(new Object[]{ + it.getMacb(), it.getTencb(), it.getNamsinh(), it.getGioitinh(), it.getDiachi(), it.getCongviec() }); - + tblModel2.fireTableDataChanged(); - } - catch (Exception e) { + } catch (Exception e) { e.printStackTrace(); MessageDialogHelper.showErrorDialog(parentForm, e.getMessage(), "Lỗi"); } } - + @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { + jTextField1 = new javax.swing.JTextField(); jLabel1 = new javax.swing.JLabel(); jScrollPane1 = new javax.swing.JScrollPane(); tbCanBo = new javax.swing.JTable(); @@ -131,6 +133,12 @@ private void initComponents() { jScrollPane2 = new javax.swing.JScrollPane(); tbDetailCb = new javax.swing.JTable(); btnReload = new javax.swing.JButton(); + lbCongNhan = new javax.swing.JLabel(); + lbNhanVien = new javax.swing.JLabel(); + lbKySu = new javax.swing.JLabel(); + jLabel4 = new javax.swing.JLabel(); + + jTextField1.setText("jTextField1"); jLabel1.setFont(new java.awt.Font("Segoe UI", 1, 14)); // NOI18N jLabel1.setForeground(new java.awt.Color(255, 0, 0)); @@ -151,10 +159,13 @@ private void initComponents() { jLabel2.setFont(new java.awt.Font("Segoe UI", 1, 14)); // NOI18N jLabel2.setForeground(new java.awt.Color(255, 0, 0)); - jLabel2.setText("THÔNG TIN CHI TIẾT"); + jLabel2.setText("TÌM KIẾM CÁN BỘ"); jLabel3.setText("Mã cán bộ"); + btnSearch.setBackground(new java.awt.Color(40, 167, 69)); + btnSearch.setFont(new java.awt.Font("Segoe UI", 1, 12)); // NOI18N + btnSearch.setForeground(new java.awt.Color(255, 255, 255)); btnSearch.setText("Tìm kiếm"); btnSearch.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -175,6 +186,9 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { )); jScrollPane2.setViewportView(tbDetailCb); + btnReload.setBackground(new java.awt.Color(41, 167, 69)); + btnReload.setFont(new java.awt.Font("Segoe UI", 1, 12)); // NOI18N + btnReload.setForeground(new java.awt.Color(255, 255, 255)); btnReload.setText("Reload"); btnReload.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { @@ -182,29 +196,43 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); + jLabel4.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N + jLabel4.setText("Chi tiết số lượng cán bộ"); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addGap(26, 26, 26) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 697, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() + .addGap(22, 22, 22) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel1) + .addGroup(layout.createSequentialGroup() + .addComponent(jScrollPane1) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(lbCongNhan, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lbKySu, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(lbNhanVien, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel4))) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(btnReload, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel1) + .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(0, 593, Short.MAX_VALUE)))) + .addGroup(layout.createSequentialGroup() + .addGap(20, 20, 20) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jScrollPane2, javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(layout.createSequentialGroup() .addComponent(jLabel3) - .addGap(68, 68, 68) + .addGap(18, 18, 18) .addComponent(txtMaSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 171, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) - .addComponent(btnSearch))) - .addGap(0, 0, Short.MAX_VALUE)) - .addComponent(jScrollPane2) - .addGroup(layout.createSequentialGroup() - .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 153, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(btnReload))) + .addComponent(btnSearch) + .addGap(0, 0, Short.MAX_VALUE))))) .addContainerGap()) ); layout.setVerticalGroup( @@ -213,51 +241,65 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addGap(21, 21, 21) .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 235, Short.MAX_VALUE) .addGroup(layout.createSequentialGroup() - .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 236, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(18, 18, 18) - .addComponent(jLabel2)) - .addComponent(btnReload)) + .addComponent(jLabel4) + .addGap(12, 12, 12) + .addComponent(lbCongNhan, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(lbKySu, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(lbNhanVien, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(0, 0, Short.MAX_VALUE))) + .addGap(17, 17, 17) + .addComponent(btnReload) + .addGap(13, 13, 13) + .addComponent(jLabel2) .addGap(18, 18, 18) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel3) .addComponent(txtMaSearch, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel3) .addComponent(btnSearch)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGap(13, 13, 13) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 183, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap()) + .addGap(18, 18, 18)) ); }// //GEN-END:initComponents private void btnSearchActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSearchActionPerformed - try { + try { CanBoDao dao = new CanBoDao(); - int macb = Integer.parseInt(txtMaSearch.getText()); - int manghe = dao.getManghe(macb); - if (manghe < 0) { - MessageDialogHelper.showMessageDialog(parentForm, "Mã cán bộ không tồn tại", "Thông báo"); + + if (txtMaSearch.getText().length() == 0) { + MessageDialogHelper.showMessageDialog(parentForm, "Ô tìm kiếm không được bỏ trống", "Thông báo"); return; - } - - try { - if (manghe == 1) { - initTable("Bậc", ""); - loadDataToTableCn(macb); - } - else if (manghe == 2) { - initTable("Ngành ĐT", "Loại bằng"); - loadDataToTableKs(macb); + } else { + int macb = Integer.parseInt(txtMaSearch.getText()); + int manghe = dao.getManghe(macb); + if (manghe < 0) { + MessageDialogHelper.showMessageDialog(parentForm, "Mã cán bộ không tồn tại", "Thông báo"); + return; + } else { + try { + if (manghe == 1) { + initTable("Bậc", ""); + loadDataToTableCn(macb); + } else if (manghe == 2) { + initTable("Ngành ĐT", "Loại bằng"); + loadDataToTableKs(macb); + } else if (manghe == 3) { + initTable("Công việc", ""); + loadDataToTableNv(macb); + } + } catch (Exception ex) { + MessageDialogHelper.showErrorDialog(parentForm, ex.getMessage(), "Lỗi"); + } } - else if (manghe == 3) { - initTable("Công việc", ""); - loadDataToTableNv(macb); - } - } catch (Exception ex) { - MessageDialogHelper.showErrorDialog(parentForm, ex.getMessage(), "Lỗi"); } + } catch (Exception ex) { - Logger.getLogger(SatisticManagementPanel.class.getName()).log(Level.SEVERE, null,ex); + Logger.getLogger(SatisticManagementPanel.class.getName()).log(Level.SEVERE, null, ex); } }//GEN-LAST:event_btnSearchActionPerformed @@ -272,8 +314,13 @@ private void btnReloadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; + private javax.swing.JLabel jLabel4; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; + private javax.swing.JTextField jTextField1; + private javax.swing.JLabel lbCongNhan; + private javax.swing.JLabel lbKySu; + private javax.swing.JLabel lbNhanVien; private javax.swing.JTable tbCanBo; private javax.swing.JTable tbDetailCb; private javax.swing.JTextField txtMaSearch; diff --git a/src/main/java/com/mycompany/qlcb/ui/WorkerManagementPanel.form b/src/main/java/com/mycompany/qlcb/ui/WorkerManagementPanel.form index bd1b101..8d48dd3 100644 --- a/src/main/java/com/mycompany/qlcb/ui/WorkerManagementPanel.form +++ b/src/main/java/com/mycompany/qlcb/ui/WorkerManagementPanel.form @@ -20,186 +20,196 @@ - + - - - - - - + - - - + + + + + + - - - + + + + + + - - - - - - - - - - + + - - - + + + + + + + + + - + - - - - - - + + - + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + - - - + + - - + + + + + + + + + + + + - - - - - - - - - - - - - - - + + + + + - + - + - - - - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + @@ -414,8 +424,6 @@ - - @@ -485,5 +493,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/com/mycompany/qlcb/ui/WorkerManagementPanel.java b/src/main/java/com/mycompany/qlcb/ui/WorkerManagementPanel.java index 4277e78..ffae62f 100644 --- a/src/main/java/com/mycompany/qlcb/ui/WorkerManagementPanel.java +++ b/src/main/java/com/mycompany/qlcb/ui/WorkerManagementPanel.java @@ -2,6 +2,7 @@ import com.mycompany.qlcb.dao.CanBoDao; import com.mycompany.qlcb.dao.CongNhanDao; +import com.mycompany.qlcb.filehelpers.ExportBase; import com.mycompany.qlcb.helpers.DataValidator; import com.mycompany.qlcb.helpers.MessageDialogHelper; import com.mycompany.qlcb.helpers.VNCharacterUtils; @@ -81,7 +82,6 @@ private void initComponents() { btnDelete = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); tblWorker = new javax.swing.JTable(); - jSeparator3 = new javax.swing.JSeparator(); txtMaNghe = new javax.swing.JTextField(); txtmacn = new javax.swing.JTextField(); txtSearch = new javax.swing.JTextField(); @@ -90,6 +90,9 @@ private void initComponents() { cbField = new javax.swing.JComboBox<>(); cbSort = new javax.swing.JComboBox<>(); btnSort = new javax.swing.JButton(); + jButton1 = new javax.swing.JButton(); + btnExport = new javax.swing.JButton(); + jLabel8 = new javax.swing.JLabel(); jLabel1.setFont(new java.awt.Font("Segoe UI", 1, 14)); // NOI18N jLabel1.setText("QUẢN LÝ CÔNG NHÂN"); @@ -234,6 +237,23 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { } }); + jButton1.setText("Reset mật khẩu"); + jButton1.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jButton1ActionPerformed(evt); + } + }); + + btnExport.setText("Xuất file"); + btnExport.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + btnExportActionPerformed(evt); + } + }); + + jLabel8.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N + jLabel8.setText("Sắp xếp"); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( @@ -242,143 +262,148 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addGap(12, 12, 12) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel1) - .addGroup(layout.createSequentialGroup() - .addComponent(jLabel4) - .addGap(203, 203, 203) - .addComponent(rdNu)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addComponent(txtmacn, javax.swing.GroupLayout.PREFERRED_SIZE, 7, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 0, Short.MAX_VALUE)) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addGap(0, 0, Short.MAX_VALUE) - .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) - .addGap(18, 18, 18) - .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(13, 13, 13) - .addComponent(btnSort) - .addGap(18, 18, 18) - .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jSeparator2) + .addComponent(jLabel2) + .addGap(42, 42, 42) + .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(29, 29, 29) + .addComponent(jLabel7)) .addGroup(layout.createSequentialGroup() - .addComponent(jLabel6) - .addGap(114, 114, 114) - .addComponent(txtBac, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) - .addContainerGap()))) + .addComponent(jLabel3) + .addGap(25, 25, 25) + .addComponent(txtNamSinh, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(29, 29, 29) + .addComponent(jLabel8))) + .addGap(12, 12, 12) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addGroup(layout.createSequentialGroup() + .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(txtSearch)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) + .addComponent(btnSearch, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(btnSort, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) + .addGap(89, 89, 89)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(12, 12, 12) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel2) - .addComponent(jLabel3) - .addComponent(jLabel5)) - .addGap(76, 76, 76) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() + .addComponent(jLabel4) + .addGap(32, 32, 32) .addComponent(rdNam) - .addGap(0, 0, Short.MAX_VALUE)) - .addComponent(txtName, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(txtNamSinh, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(txtAddress, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) + .addGap(120, 120, 120) + .addComponent(rdNu)) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel5) + .addGap(43, 43, 43) + .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel6) + .addGap(63, 63, 63) + .addComponent(txtBac, javax.swing.GroupLayout.PREFERRED_SIZE, 252, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 337, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addComponent(btnAdd) + .addGap(33, 33, 33) + .addComponent(btnSave, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(18, 18, 18) + .addComponent(btnUpdate)) + .addGroup(layout.createSequentialGroup() + .addComponent(jButton1, javax.swing.GroupLayout.PREFERRED_SIZE, 165, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(12, 12, 12) + .addComponent(btnDelete, javax.swing.GroupLayout.PREFERRED_SIZE, 160, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addGap(31, 31, 31) + .addComponent(jScrollPane1)) .addGroup(layout.createSequentialGroup() .addContainerGap() - .addComponent(jSeparator1))) + .addComponent(jSeparator1)) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addGap(0, 0, Short.MAX_VALUE) + .addComponent(btnExport, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap()) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addGroup(layout.createSequentialGroup() - .addComponent(jLabel7) - .addGap(18, 18, 18) - .addComponent(txtSearch) - .addGap(18, 18, 18) - .addComponent(btnSearch)) - .addComponent(jScrollPane1) - .addComponent(jSeparator3, javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(139, 139, 139) - .addComponent(btnAdd) - .addGap(73, 73, 73) - .addComponent(btnSave) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 79, Short.MAX_VALUE) - .addComponent(btnUpdate) - .addGap(70, 70, 70) - .addComponent(btnDelete) - .addGap(16, 16, 16))) - .addGap(17, 17, 17)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(18, 18, 18) .addComponent(jLabel1) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(16, 16, 16) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addComponent(jLabel2)) - .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(15, 15, 15) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(txtNamSinh, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel3)) - .addGap(12, 12, 12) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(1, 1, 1) - .addComponent(jLabel4)) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(rdNu) - .addComponent(rdNam))) .addGap(18, 18, 18) + .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 4, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addComponent(jLabel5)) - .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(19, 19, 19) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGap(18, 18, 18) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(10, 10, 10) + .addComponent(jLabel2)) + .addComponent(txtName, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addGap(4, 4, 4) + .addComponent(jLabel7)))) .addGroup(layout.createSequentialGroup() - .addGap(10, 10, 10) - .addComponent(jLabel6)) - .addComponent(txtBac, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(18, 18, 18) - .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(btnAdd) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(btnUpdate) - .addComponent(btnDelete) - .addComponent(btnSave))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(txtSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(btnSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel7)) - .addGap(18, 18, 18) - .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 150, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(20, 20, 20) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(txtSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(btnSearch, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(txtmacn, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addGap(4, 4, 4) - .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(10, 10, 10) + .addComponent(jLabel3)) + .addComponent(txtNamSinh, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addGap(6, 6, 6) + .addComponent(jLabel8)) .addGroup(layout.createSequentialGroup() - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGap(5, 5, 5) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(cbSort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(btnSort)))) - .addContainerGap(21, Short.MAX_VALUE)) + .addComponent(btnSort) + .addComponent(cbField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addGap(10, 10, 10) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(1, 1, 1) + .addComponent(jLabel4)) + .addComponent(rdNam) + .addComponent(rdNu)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(10, 10, 10) + .addComponent(jLabel5)) + .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(19, 19, 19) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addGap(10, 10, 10) + .addComponent(jLabel6)) + .addComponent(txtBac, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(18, 18, 18) + .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 7, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGap(13, 13, 13) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(btnAdd) + .addComponent(btnSave) + .addComponent(btnUpdate)) + .addGap(26, 26, 26) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jButton1) + .addComponent(btnDelete))) + .addGroup(layout.createSequentialGroup() + .addGap(11, 11, 11) + .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 337, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(btnExport) + .addContainerGap()) ); }//
//GEN-END:initComponents @@ -579,16 +604,22 @@ private void btnSearchActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIR try { CongNhanDao dao = new CongNhanDao(); String info = txtSearch.getText(); - info = "'%" + info + "%'"; - ArrayList list = dao.findCongnhan(info); - tblModel.setRowCount(0); - for (Congnhan it:list) { - tblModel.addRow(new Object[] { - it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), - it.getDiachi(), it.getBac() - }); + + if (info.length() == 0) { + MessageDialogHelper.showErrorDialog(parentForm, "Thông tin tìm kiếm không được bỏ trống!!", "Lỗi"); + } + else { + info = "'%" + info + "%'"; + ArrayList list = dao.findCongnhan(info); + tblModel.setRowCount(0); + for (Congnhan it:list) { + tblModel.addRow(new Object[] { + it.getMacb(),it.getTencb(), it.getNamsinh(), it.getGioitinh(), + it.getDiachi(), it.getBac() + }); + } + tblModel.fireTableDataChanged(); } - tblModel.fireTableDataChanged(); } catch (Exception e) { e.printStackTrace(); @@ -626,10 +657,43 @@ private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST }//GEN-LAST:event_btnSortActionPerformed + private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed + int manv = Integer.parseInt(txtmacn.getText()); + Random rand = new Random(); + String mk = String.valueOf(rand.nextInt(100000000)); + CanBoDao dao = new CanBoDao(); + try { + if (dao.chagePassword(mk, manv)) { + MessageDialogHelper.showMessageDialog(parentForm, "Reset mật khẩu thành công!!\nMật khẩu mới: " + mk , "Thông báo"); + } + + } catch (Exception ex) { + MessageDialogHelper.showErrorDialog(parentForm, ex.getMessage(), "Lỗi"); + } + }//GEN-LAST:event_jButton1ActionPerformed + + private void btnExportActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnExportActionPerformed + try { + CongNhanDao dao = new CongNhanDao(); + list = dao.getAllCongNhan(null, ""); + + if (list.size() > 0) { + ExportBase export = new ExportBase(); + export.WorkerExport(list); + + MessageDialogHelper.showMessageDialog(parentForm, "Xuất file thành công", "Thông báo"); + } + + } catch (Exception ex) { + MessageDialogHelper.showErrorDialog(parentForm, ex.getMessage(), "Lỗi"); + } + }//GEN-LAST:event_btnExportActionPerformed + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton btnAdd; private javax.swing.JButton btnDelete; + private javax.swing.JButton btnExport; private javax.swing.JButton btnSave; private javax.swing.JButton btnSearch; private javax.swing.JButton btnSort; @@ -637,6 +701,7 @@ private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST private javax.swing.JComboBox cbField; private javax.swing.JComboBox cbSort; private javax.swing.ButtonGroup genderGroup; + private javax.swing.JButton jButton1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; @@ -644,10 +709,10 @@ private void btnSortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; + private javax.swing.JLabel jLabel8; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JSeparator jSeparator1; private javax.swing.JSeparator jSeparator2; - private javax.swing.JSeparator jSeparator3; private javax.swing.JRadioButton rdNam; private javax.swing.JRadioButton rdNu; private javax.swing.JTable tblWorker; diff --git a/src/main/java/com/mycompany/qlcb/ui/nguoidungPanel.form b/src/main/java/com/mycompany/qlcb/ui/nguoidungPanel.form index eb0eebe..4d6be37 100644 --- a/src/main/java/com/mycompany/qlcb/ui/nguoidungPanel.form +++ b/src/main/java/com/mycompany/qlcb/ui/nguoidungPanel.form @@ -29,93 +29,95 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + - - - + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + + + + + + + + + - + + - + - - + + + - - - - - - - - - + - + - - - - - + + + + - + - - - - - + + + + + + + + + + + @@ -145,32 +147,32 @@ - + - + - + - + - + - + - + - - - - + + + + - + - + @@ -179,7 +181,10 @@ - + + + + diff --git a/src/main/java/com/mycompany/qlcb/ui/nguoidungPanel.java b/src/main/java/com/mycompany/qlcb/ui/nguoidungPanel.java index 8a2099d..bc21684 100644 --- a/src/main/java/com/mycompany/qlcb/ui/nguoidungPanel.java +++ b/src/main/java/com/mycompany/qlcb/ui/nguoidungPanel.java @@ -73,7 +73,8 @@ private void initComponents() { txtPasNew = new javax.swing.JPasswordField(); txtRePw = new javax.swing.JPasswordField(); - jLabel1.setFont(new java.awt.Font("Segoe UI", 1, 14)); // NOI18N + jLabel1.setFont(new java.awt.Font("Segoe UI", 1, 16)); // NOI18N + jLabel1.setForeground(new java.awt.Color(255, 51, 102)); jLabel1.setText("QUẢN LÝ NHÂN VIÊN"); jLabel2.setFont(new java.awt.Font("Segoe UI", 0, 14)); // NOI18N @@ -152,73 +153,74 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addGap(12, 12, 12) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() - .addComponent(jLabel4) - .addGap(73, 73, 73) - .addComponent(rdNam) - .addGap(79, 79, 79) - .addComponent(rdNu))) - .addContainerGap(385, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGap(12, 12, 12) - .addComponent(jLabel2) - .addGap(83, 83, 83) - .addComponent(txtName, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addGap(12, 12, 12) - .addComponent(jLabel3) - .addGap(66, 66, 66) - .addComponent(txtNamSinh, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() - .addGap(12, 12, 12) - .addComponent(jLabel5) - .addGap(84, 84, 84) - .addComponent(txtAddress, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) - .addGroup(layout.createSequentialGroup() .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jSeparator1) - .addComponent(jSeparator2) - .addComponent(jSeparator3))) + .addComponent(jSeparator3)) .addGroup(layout.createSequentialGroup() .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(jSeparator2)) + .addComponent(jSeparator1) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addGap(12, 12, 12) + .addComponent(jLabel1)) + .addComponent(txtmanv, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addGap(12, 12, 12) + .addComponent(jLabel4) + .addGap(73, 73, 73) + .addComponent(rdNam) + .addGap(79, 79, 79) + .addComponent(rdNu))) + .addGap(0, 448, Short.MAX_VALUE)) + .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() + .addGap(12, 12, 12) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel5) + .addGap(84, 84, 84) + .addComponent(txtAddress, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel2) + .addGap(83, 83, 83) + .addComponent(txtName, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addGroup(layout.createSequentialGroup() + .addComponent(jLabel3) + .addGap(66, 66, 66) + .addComponent(txtNamSinh, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jLabel10) .addComponent(jLabel9) - .addComponent(jLabel10)) - .addGap(39, 39, 39) + .addComponent(jLabel11)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(txtPasOld) - .addComponent(txtPasNew))) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() - .addComponent(jLabel7) - .addGap(0, 0, Short.MAX_VALUE)) - .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() - .addComponent(jLabel11) - .addGap(12, 12, 12) - .addComponent(txtRePw)))) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addComponent(txtPasNew) + .addComponent(txtRePw) + .addComponent(txtPasOld))) + .addComponent(jLabel7))) + .addGroup(layout.createSequentialGroup() .addGap(0, 0, Short.MAX_VALUE) - .addComponent(btnUpdate)) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(btnChangePw))) - .addContainerGap()) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(btnChangePw, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(btnUpdate, javax.swing.GroupLayout.PREFERRED_SIZE, 127, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addGap(21, 21, 21)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(txtMaNghe, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) + .addGroup(layout.createSequentialGroup() + .addGap(18, 18, 18) + .addComponent(jLabel1)) + .addComponent(txtmanv, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(13, 13, 13) + .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) - .addComponent(jLabel1) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(16, 16, 16) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(10, 10, 10) @@ -243,27 +245,27 @@ public void actionPerformed(java.awt.event.ActionEvent evt) { .addComponent(txtAddress, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(7, 7, 7) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(btnUpdate) - .addGap(18, 18, 18) + .addGap(12, 12, 12) .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 11, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel7) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGap(7, 7, 7) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel9) - .addComponent(txtPasOld, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(txtPasOld, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel9)) + .addGap(13, 13, 13) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel10) - .addComponent(txtPasNew, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 10, Short.MAX_VALUE) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jLabel11) - .addComponent(txtRePw, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) + .addComponent(txtPasNew, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel10)) + .addGap(14, 14, 14) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(txtRePw, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(jLabel11)) + .addGap(11, 11, 11) .addComponent(btnChangePw) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap()) ); }// //GEN-END:initComponents @@ -339,7 +341,7 @@ private void btnChangePwActionPerformed(java.awt.event.ActionEvent evt) {//GEN-F CanBoDao dao = new CanBoDao(); if (dao.checkPw(new String(txtPasOld.getPassword()), macb)) { if (new String(txtPasNew.getPassword()).equals(new String(txtRePw.getPassword()))) { - if (dao.update(new String(txtPasNew.getPassword()), macb)) { + if (dao.chagePassword(new String(txtPasNew.getPassword()), macb)) { MessageDialogHelper.showMessageDialog(parentForm, "Đổi mật khẩu thành công!!", "Thông báo"); } else { MessageDialogHelper.showConfirmDialog(parentForm, "Đổi mật khẩu lỗi", "Cảnh báo"); diff --git a/target/classes/com/mycompany/qlcb/dao/CanBoDao.class b/target/classes/com/mycompany/qlcb/dao/CanBoDao.class index d11c0d7080a76e5fdc2f0ae76b99040b63354738..cc59ac2bc03d5e8e35bc2d13cf7e0ec230641621 100644 GIT binary patch literal 17953 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 delta 5768 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 diff --git a/target/classes/com/mycompany/qlcb/dao/KySuDao.class b/target/classes/com/mycompany/qlcb/dao/KySuDao.class index 2bb4f47f84e94d5494847112ce219af946ab409a..db632fa12f4e955e1fdbd1cfe1faee738bdad78a 100644 GIT binary patch delta 552 zcmXAlOGs346vlu5@s=_<+F*%IDFZ@@4N{R~D5duDl`TXPd-#kj#Yd9b3x>*~NUgjL z>N2QBV5Z(O!!maTE`(rKwF_K_;lhpjUE2K5x!*nKJHK=Og`;_sC6*bs4|-GVh!u7s z*57!uV0R@>B?LRWgYAvYO-{gf&+__-Cjm_Me&@A6WFnbN5~H5q{9#!!z!z2&V|v}V zW-xJzetwu_S2xLSG&{|1lc8^mao{|udJo|vUzG)NIYuUhgeW3Rv9jY-a)Jw-6~<`cjnp~i^Q!nowKI@<)RWsG zrt7loW;-|7Ll0SMJgjpRaZ`4;sO7er?nt@IpyG47ob|MJQ+!{*4@B6HSCz9wjH0lz zn?*Y}f|8ng^NUDZN;+e`u1NY|N%!)aBXkxMZVO339b1(Yf(qndKno#PG_ zbWzC==Xn<+$`}`zpo-626wD<7RP#%5TqfHTF)iyWVlLq>v&`X>?IiPfnk2#&Us>Rw zTJEyQl7Ipx#4;-!NKDC$JoPEskh8%N_IE`Vt4benl-jpjlid%cHt_F}>m>&pt*RO| ztK|@N1Zf~s{KvS?DH;WHLzqpi*oo3|c_8)uG@VDl$a`C$KskQ!m}MEtD48ThRSU zGqV@>GD(vqE?eTZ2a-KuSTL1jeZctO5}%g%OnlhmvOVpO!=3NK=oVelob&sg?|063 z&exOsW9X-l|L)qY?*SaZr8)l|iqCazYnwD0Fj@t<{X&4u>nMuPQ zOP#aLa(Z%X+=|)zcbyT~Lue=-@-|fa z5rJEpy&CqRqqxuA9NbUv$N>T{a6rRr=ql#jjZG08(r_5v1d+4sezW^9>vs0;imK=# zc%5NY94(gJTM7~MYB-J#f{(RPGdY~is5n6gbgz8J1EmuyU#C?J5Y)ca<&u%Rv!LP) zJ|2(<#!PbM+qArXP{R-ut{zKea#jHK7!05Wg94`swUyC^6WPqHIhL~gh+;(Z;0)d_ zj(A!;J+SY{i%3VF=^U;2{TV{=cZGHsv+BqP4t^n!?GU1-*Yi$ zP1(szIwz1X_A33Oqj2&64Yu4F6t-uXwXrAm-tbM(4d?hATX_ulah|QVE`W(KW`r2t zgQ|N*t?Ydw^X9=&mu!Mt* zk2ttpty4dTUl+mGmvF33^;~yIpF_Osq~9URIyuQi7o9#`xx-4Ogi{3FTad(C!Y~t$ z#GVq~Wb9k0wDF&W|Iv#DSvR~hvNF7f6 zf#cUGOa%_mK{`su`9MXPEJyIOz`Bfo&DDYA#uW?RXk5Flt3D z_9BF1sKY5<-_zIv3tKS-9eHfS2Y3dT@hq<3d3?$X{~6c$qJTzxgB|<`%~(VWeqekL zO}Nke0rNi@uc4Xe2vV3o6CHSpqUZUQfYK(= literal 2644 zcma)8+iw(A82_EU&Ft=QE3{<`$`mNJrDZ{sYRg4wDHPgLXf1M4n4LZBF6_=Mv$I@Y zebqM-6CX?rCX(O_L{eBtZGK3WPhmrgi87Hzs9~B(qwP zo@13{k6E@Vl`F27?eR0kv%Xchn0GB_TgkFBJ?5qAHR<%2zI5!2X`c7olDUwJ6w26^ zlX1-}dFjblsDTc1PlIO`VL92lbyD}43Ni15LL`ttQiEY&8I}ul*={Lay2iC^IoHyc zigqTQm&LO5D(NB1w=z~m9tzF^%iXec23^PD6$`E-(AwEG8ib{CshDmM29j8bRT`QM zti~FF)l2X&pk+^%El*DRmM=@vVL-Qc&Z-NdJn4G{CpWOb!o;jVwk|bpUPG-xFq2Y97p)#nescTC@V{_sola^dkUM@b(va7cNns$kkGOnI)3 z!ve{{$9J8a>Es{ZaCD3c=trJEteKUkw{?t@Jgx|{T9msJ29Bv=5VebLMXGX{P_;gx z;gk6?50W&M_uMO1rYIAb!U+SP;-tVbE1R9HmRa_dip&bET^OIb#6Z`yhSLI@mPkR? zavKR4vRsB>kXaE}FO6;x`1wMG#WMN^x(5Ujc3#>S zN8Mb3y?%J1w{yL@xO%#lQvILGq2`do`)__TUNJ&`k8ZD-HK%4xy}PI@TCVsdR?hkc zc~SS1Eo`fa)!blOFt3J$o&Nk8vqCoGTegU>O`I8VA&&z8dlmAF;)4r7A1sd<8SoZ?%g zej)I_h;co`Q<}Tr9__vdaVH>u##NDlBtGYA%rf9C&haE*A%n0I4j<&6AWAlAzAK_7dJ7z`OKj{T96d4hAco;J$%h7r&kS_N26?p&1O{L_498 z0BR+4B!HF?8VjIsO6!lOVo#A!{u~u_RKd|2juVb3I8wtT;rMOE);-5|6DEBmqNR>7 z`gOXi&tN*GJyL4A=hP_Pm_oGF5rz^@X^J=YNSW!LGoyH;3ei$W7)m%5Q@qhf;x=^j z;y(W1IQSDU@REBIo`^Q?&qPw~qFr=~tvu`aRSXCCKDCQ6F(pp$9EM8n7o0-i(;ep6 z(XonJ)?gi)v6-`|7p>^SS`6|v97P+BlX4F0agi_DR}A!Z%6^TF_?C~=cj&-PY{4yb z;tmsVH}G#eo^V$FM)(=F)7uu2#14A5T=a1t=58}ls<6%=P8-)@BMXfdd|H*kEq}*( zbxeFg3aZ#QA%H6+9%9e<3ukVd|xd%WFiYAjqNr-Qd)g;#|xYTg2Ajfk$5>yhjC9 SLh%r<1zt#X+hwjHT=^F@`h+6@ diff --git a/target/classes/com/mycompany/qlcb/dao/NhanVienDao.class b/target/classes/com/mycompany/qlcb/dao/NhanVienDao.class index 256fde6adf6a25319de9facddd3921a9318b01c1..5ba8e9e67c8af3e34aaabad525b8ea8ca8a01de7 100644 GIT binary patch delta 343 zcmXAkIZH!P6okL4&m`!JM$|$?2oJ>~MG7^7#<(wqO;T8h5SPYA1O?kz_y;tdV&T5T z{i$FXgfx;)5Nsm|c7nA!54mt=?r_eWIk{LdcHL%~wT+q9Y}#sZ(^h-H+-Bp!WcJ-o z1;R_q;lft9}d<#Q78a&+O zDz*`}(o}*!AdT1wf}O-!<-(ac!<{+j)Saqx({Gv0(psOpYUM+wQeKJ7mA}IUcOkN2 zwf_(x1g6KWcl4TKl6^duc;S^dVS)=9LQmDl4?g)4#(1Rpr#F2x0b`q}dW!>Ko-Wk^ zY#jX@Qc9X68Bz>0NLFuzS#m5g$~t3gG0rv66>H&6a#%|I XKki;}50ajVHc6Fp@ou*>o(cW}OqWMT diff --git a/target/classes/com/mycompany/qlcb/filehelpers/ExportBase.class b/target/classes/com/mycompany/qlcb/filehelpers/ExportBase.class new file mode 100644 index 0000000000000000000000000000000000000000..30938d983b9008a2dae1f9c9d71cc2cc3991abb5 GIT binary patch literal 6892 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 Z=J}N00Y-+;`1x9v&CLAVGq=oo_ZwDmG2s9J literal 0 HcmV?d00001 diff --git a/target/classes/com/mycompany/qlcb/filehelpers/ExportKySu.class b/target/classes/com/mycompany/qlcb/filehelpers/ExportKySu.class new file mode 100644 index 0000000000000000000000000000000000000000..145ca15024400adc7abf2cb550ecd5e9e6380d6e GIT binary patch literal 4452 zcma)A`Fj*+9sj)9&CX^s5E`y5m3FB>bHUm}S`&`KCV@y2C>ufnK_{CbJ7jleJ2MN! zgKAsFirQ*DTG4u-Vyo4PbZJPb+E9;L&(>Riz`vr8K9BYD&P$0ndSy1UKF4GDxB5BR1pQLz-u1nPWKQhF|zc1Lr% zKyqI8Ofk@?2E-MtP;n#PCeU(yqo#O$%lt63G|o2)z5}5sZl?L2`9jVb)paM~WOdz@ zSy`px7Q9`c)^{x};R2f)d!{p*c5TBPZl6!!J$5>|25S}Es-h810!n=n%kDQ^8RdiXad)y}=4I$qRB3Dr zS{1BQu^vf*Td$vyAVxL5se7#BvMjsj6CTpG*WfnXuHX(8cjBD_t1I+5&WuKoR`!n; z7=cK-e@}Pcc9wBv;^$;&uf<)sTfw_jw4q(#=4)y3JP5i>Y82Sn*gZcrvz(q~O?woZ zXnya+*+kz!EwR5qhL4QRO{!?1L&y7a_$s^|jaGszJ2XY;Je znPs6z+1@k|MK@clf8rUFmdY&cRM8_-r1b6W?cCFyilR@Trtiu_`GjMb*(i2X-FD;Z z_!%SNPCP3idkDGm*wyjVS|XFZI{ru${e+|@E||lKW28Klsl@>HDY#F?ejE^3=(SnV zHFC)w!(rz|4Oh1{*RlncakfmOy8}2=`yL!pa9G8A@jik2*(5YMt2ur83CiR2Js>#- zRb(J%n(2X;Ov;`yv)dIM5m-4#xB6pw=crSRK}S}FfumG1th>EhX3$g8EpwZbiOtKw z*&*kS4ogJ=_tPtq_UopkE!P~(7D?-hEpLWVUnJLD>OfI0A@WLU{A4xT7J!eQ9amehlJxc)@WiQyz3 zlGj;Eo<6GLV>l(SfYNtswr;wTkr&-$+yYS?A1CpMiciQ?MDim;hV3Z$q(H+=g}aJw zq3F_AUCYOC8lRSW9u>GDDCbFG{;>XxiqGP4f$HNni$NehO*K;xOST4|#}^cQQNN;V_!39cSMhF?<7O6?{|0w`AKdo(#ut>D*M`G$GS z8qt&f{Pml=OUv-y85MY9W?Kh@zR(?-Ih50#)jizIi-mSSe4e~ukk5dWG0H7w4)TLD z==~1|Zf~=UOlj;2jzaDdf8tz7dEWy=30V|v3BlpsZJN5B%4v?HGYNkcSTjq;T=pyY zyTDD?CS`s5&SDj}+A5AkAOv;_B7A%hSSSk?|tJ{=yOKDJZTO=L{oyR-IupxxD>Ueei#xZQJLcBVzjG=>vNVp8WqY_e%D8t`qLniAy_M)_89H5#ZW+T~fwpKoI);M+PvUubV!QkVdRxuIVex-l zjMtPfd}<6Mp-S&0#`Kj$%KVZDdy=KhC5b5pEM?9}#EAe==7vOkz(bsSYx_7(?yvvw zMLa0oDB(0yZD!;*V4q0gKCzp-?ja_?z#(xAhsA?j zmmXyr&Tu7t3c7fjo9B6C#bp>`f=l4*$a$q*;QtHW#93Ux^Qe)P8nlo+mB4;ORJ`UD zeiiD(D|i88tm%63GA_}^FxH84coCP`6bW$wFX6{*%LehH*A@!3wy+LTe3%X!vf{rT@ l@GAeR@GIK&ns@p&e#74=CI6Oxf5e~p7UStJjO0HM{~u;8$|nE- literal 0 HcmV?d00001 diff --git a/target/classes/com/mycompany/qlcb/model/NguoiDung.class b/target/classes/com/mycompany/qlcb/model/NguoiDung.class index bc7c99f952c9ae4bfb189f3fff539cf81b13eb0a..cd7a76135ddc6d0c9b4e3980c9fabe41ef6f270b 100644 GIT binary patch literal 1480 zcmaiyO-~b16o%hhrY$Wah4LjuP(idEkkQ1IC<`Gb#8Neo?x$ta4(Uv>Oi9@JgIs80 zW8%Ue;EyuC=T2>#c8H6)A7}1)&vQP0|M~d~z-#Pfk-$_MhKVFn3Ue3EwPUxOpkcqS zUAXm7A@#}&yzoF_s#vN{V_E?jWHFP5Y2prM6*lW_-}Y~~UOK^z{i#*2*?#-nZP}GZ zx9uHugNDLP=mtmBtu&oWg?xD!=rrtjL1SM;=S<9tV%m4YcTJ}&wgnT5VoO~+-dU$D zrezZ=xT|3JPQ9j}j(I#}K!se{3*1WAueqHwr`Dn+UvAf(R@Lcva_<|Bu<2bXJSzX6 zd|%;Zaguh@ay)4&Rawy!H*B`gKR6x7cSElnfTvRo*`G9mfYN)(oT2y zX$FvXb1pDLn~61A%}4_Gu+E#vZ%|g`KXVtqf|lPA_1zwF)_M<1)~eCNNQ45RKvV-c z#+c)29t+4*XF*4K5h?YfP*W!=@CBW!q+gIJ#FRcs+6M0PJa6zRH-0Pp7WpYWV9lZ$ z*xW@XX?;iLD-Q|kK$l4J9%h&vWVnf~euf9!C34D=?1uG<+EF0$npRkjUJd9|eR|%UjEvGXBa_ri;c+Zeew=ALmgz}6(@58&I+e&| z-NGb&956+_E22b`4A^MzmcGz1+PmFYCJQ@!CC-3CF&u?LpDH|}!OeyT@ H;7|Vo8`{g1 literal 1444 zcmaizUr*Ce7{;G7x{Zx(jK9hdK~&rZ(hI#3v%HS^ zp><)mLxt39$8*9%g_&}tnZYbFX=HPlLr!74?YpLX!}q1--I$+x?Uw2K=XTF*bo#z? z-1j;PbD`}WQ?b#tE)^E*;}EA|;CP(_5iR5}FN$f`3g36FzML)Ou!toE!?oHi1yz&7 zl^j;ZF?DS@XMxYJM+~SiUw1sa(RW*RaAvi7JXx&!ZL8O`0!Q}4LnG`uR|-$+|0h3C zcvYUJoj$2eA61&H<%u13{qv7jV7Yc^2Mk;2*x}jjYAly4(?8SiYQk?N21H_HDR>f9 zj2r$n+GO~pIV@3zAO5Y=`j4Zxx}P-`T>m6{qg>OHr+z%QC zj=?u4fUAV`O)e^&kcn0+{$fLk#iI{6B>L@QGrC}6m z>Qn@;q>~Y*l8hc^^hy#lu)+0$L08ZT{0t7FKt9AK-vVjUMp=GG`YR6-kSwJLpjupp zTP$gm;UTR=PU-B%*~kqA<&)GBh1JMwM4uYc3ty7AjfNL9mMK5Uv>wa!IG!m#$+StP ztvi@xD3q=lnWSF4bFoazlT6#OOi$yPZgoAX(+-)Q-N7V%95F?`+oAJx?}}dte7kp* kSf(;6^peJpd$-PcoUGGxGVR~NBvUqGl9^Jd>fpP70muW!ga7~l diff --git a/target/classes/com/mycompany/qlcb/model/TaiKhoan.class b/target/classes/com/mycompany/qlcb/model/TaiKhoan.class new file mode 100644 index 0000000000000000000000000000000000000000..b02286d2cbb06d5d454cb4db9d27fd9a34a7cd2d GIT binary patch literal 1418 zcmai!+fEZv6o&s@rj(We%Ap7a1O#+CfTKe60_DcUq!By>ehj z2Y$4#Fl3cZ6f$RCbf|IYm&x{$unH3ge&D@nH7Z_s>{jX;p;>k7CvNDA-@P=Vnt!RV zcJSX<@3GZoua#kyrFZ_&i)zi&cW%f>MqbEDBgAGLHqG%}xLou|!YdE|ytblJ{v- z5^XQEp}z5yf@J6P?F>N*y25NHs#`&-3!=gbW7Awj8t!o-Qzp(dm&kN4nJE)zT4b}O zTbM+yK2ugRtzn&4ah-Bs`D5p$9i3JZnKp2rQUB_+*+wqTv`(gtTbN{YeI`>gJxF94 zk26_`Oja_}c${gAOxw3G$r|;U@|vlDQunE!X=R>8`v)fVTG)$iWbAD|+@3euxY4Re z!DRytJmRiC#yFl}8atG1SGV5nRO+uyk$y+;qTX#;y`ubcVMw0@%+O0UY3NiLqKMXm bob3*Chqklygp5D^DQi4S6whX<6gK|?UX8yf literal 0 HcmV?d00001 diff --git a/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$1.class b/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$1.class new file mode 100644 index 0000000000000000000000000000000000000000..fb670ba65164b2dc4c3d3ae85368c207671b4226 GIT binary patch literal 881 zcmb7CU279T6g`vg-LB~xZT*N=ZS#<((ruojg%BzVNhv6K5rxTSXvgl(w7avBzV$B^ z`~V;P0sbiQ&NfvGB4lCj+g93_GlsuGCVb~6J9K>g2Pq;b@ zPNQ%VWHRW7q0W>Uam5csER;FmN<^(LL&Y4)w6#Mwhl^b8xv0UZ!u7BOkD>X2&v?K; znn275J{ajN75yncF(M(7XHrSC%TR1@j$PETT!ru9CK?P+7olZXF_SAXmSPae@K{V4 z*4o2=wXkQq>1~b~y6wdT+B>Czo(hKLp;Tf&izgy^!zU4C8bclOXv`C7<9V`VN6E0W z5KpVyWAI199O>x+Pk1b7Vua$w*W?w&%+QqoqmjXVt+ON)FQo0Tc{Qc$Prhx3M2hxQ z80l21!%JolPwXq!?K2H%ceJ9hQ5Us+k(!q}C2sGPQX&~dJWWN4$Fz1e+Cb*}cJat7 z(7%LRblxU!mrk2;J6oT@I$u$}$ZJ-}R=~)<#VXm=%PQQ#U5cnaM`O50ewm?s?o;u7 zH0H4VIjqz91h(}BH~yfyInq1o>iu8H&TnJ~O*|m5IdYQ-N_a@NfHgeIqdLi2&ogyw L(CJdS6+z!GMpxCc literal 0 HcmV?d00001 diff --git a/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$2.class b/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$2.class new file mode 100644 index 0000000000000000000000000000000000000000..82f280f7bce83ea2348d93a839825d2cdc3627c4 GIT binary patch literal 917 zcmb7CU2oGc6g}=&nk=-Tz<{wb*a~Vpw2ZwLCRNoCNZqJ3=)0SmHYKqkaSMCnFCpT9N!;5zkLVr824@Dkhf59QACMhFHo@`pHY0n<(dCB z3P%1s^t(Zz=29PX$tNNfQV+NkQR9H2q^Dup*r&?=Dy1C@_${(iv@YU`9CWd zoKrPV0`Vj?x4d=nQ0y6}sKb#AB9(@6a^Bs=j(O*bdD9+Emy+Zz-K2aXQvFn=)ZBe0 z$;)2E(^RCmLxWic!xb>kGs8*qnxlUW*Jxd*-65?eFvSgu z>*pxk#0H%RpRthu+7}s$A3OqYqPC>%E@|!dC$QZwxb%nB$(Uwzuh)Mu+rOD@)Nz~0 gmdtf(P{0<&9Lc$xohsNyBg<59k5-4^Mg)Do0JGKMX8-^I literal 0 HcmV?d00001 diff --git a/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$3.class b/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$3.class new file mode 100644 index 0000000000000000000000000000000000000000..5c68eb6be9c71ddc65524aec381d953ee9ec68ca GIT binary patch literal 914 zcmb7C+iuf95IvilW7i}mK+C0}Tmni`RJZD5pi+p6KuSv_P~JDrk~*??!Ct5IjbB3I zBJscn@KK0aHv)tzq*(Io?&!=pJ7?#|&u`xWJi$X71r#lmT$E8^*a=kZ$7dAZa(U*z zi-L)tg?>K>R3`NimwYB-A@zt$5w-RiD*7Z$Tf0;_T&1+e!A*g*|-3!aP1XfQllMT=o${xs8C$-RD{LnTKdd83k8Oc}P? z!(5r4YF{j2L74$Z#T8C$r@(7X^b3{x$nNEr6otM%R)Gn58uDj4d+P>SO$o`~c% zpG1^t3{}9RF;7BsUM5S%Wrp3AbXxm8GWJO56Ez+2gvUaQgjnkQUl)pEL56Ss&k6?T zmCBMpJPXY&Z(TeQJH{zeIFv!8(ooLM)m_{-k6bekI-t=~lH8@6RF6ffpR1I_-4~L) z97H@#MT$E#l~piY0rNaFnKY~g`qyxc)^*w)&}uSHcl$F~_baTAIc9@mg(`sz*D0=_ zqi_Q^=|uRPjT)eRnW6l_Bk(2~OWOXD*6w}++x~(}e^{NI>6GsE{x4?xH?xfGc`P*)gicPg1%qq`QQWq literal 0 HcmV?d00001 diff --git a/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$4.class b/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$4.class new file mode 100644 index 0000000000000000000000000000000000000000..6fb2b20c6c60adcd36ab364c92d5ac2170a24818 GIT binary patch literal 915 zcmb7CU279T6g`vg-LA> zHVy-C7I}j(R5Pg$x#Uxk2&qS0inzVUP|?Rx*50K`f0@$0jT)>fYzHfF7~B&+=U&X^ z)O#MBh)@&rqew=2pP|_4j&0P@sKRw{8BK-<%V;sI=^%a~V#OzeP)ACRMEY8#iI^~K zbo^YJztf(WQ)kqxfgG59zdNqtDnsi+h#zHINRcu;>@3%Ocg#>4s)=A|_>mMxvm_Ad zD;~s@Y5FSU@tCKPIWLkWV>83&($5=HLqMZFFK^zQj*-Io79d(rk|>e#GPl7 zyd1_n%S47dG?q0mTmf@kGnzE51^QQTjn-A#?bB*9c5nMLSnn&UA9KugiWRB^-eZm8 z>NyHGaFb4i&)KK}+Lsy1XD)%)(Ol3D7PMCH6WI0_T>8Um=S*jGuMdAQTfdntv~Ziq g7R)UYC}D$Qf!f*3PjzgeooDK}N2^V6(*%9L0GBJ^qyPW_ literal 0 HcmV?d00001 diff --git a/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$5.class b/target/classes/com/mycompany/qlcb/ui/AccountManagementPanel$5.class new file mode 100644 index 0000000000000000000000000000000000000000..3aab511f842cd8047246cdde62b189d3f218ef4a GIT binary patch literal 912 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 LMt>vwq9OkSd9Bz4 literal 0 HcmV?d00001 diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$1.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$1.class index c59bb9b538c17eb9189132e6f68064d74e631915..d8fc986c0c373e4c6312e81f29ddc62470b1b622 100644 GIT binary patch delta 23 fcmbQvKAnBTOD4vW$*-6~S<4tW7|JKRFb4wwVW0;{ delta 23 fcmbQvKAnBTOD4vm$*-6~SxXo=7)mF*Fb4wwVP*$H diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$10.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$10.class index bb93872d57842bc45c76a84c882d1afc0f1cd672..643fd953b335a2da6dff93cd52caed91342c9333 100644 GIT binary patch delta 23 fcmbQiK7)P3D<;O1lV3B1vYuw(U^p|`l{pvyYmW#_ delta 23 fcmbQiK7)P3D<;O{lV3B1vYuq%U^q3|l{pvyYgGtF diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$11.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$11.class index 4385be92b5ec7573a957ccd7d55876cf4eb02363..13624867f1ca25b4fbadbea7071a6a9db786458b 100644 GIT binary patch delta 23 fcmbQmK8tjX z^U`-m&dhUq!KtqoM2Awz2?eCgKq~SZd-nx$=ERE{y8=#st-~D)1r+nJY;3?5s7&Qt zI=)mB=Xf+F*D&=1PkClvAl+;YEtF8sqhjMMsseY`5);^(KAIV$)!uC+(a|gz zQTSYre6Cdc+LiuLhF-j16*IBXthAmGzfp(HJtT9Y#{(J4fDDDqQsl*e?L!07%0~a`N@@k)RT(R0a?;zSAkbje4wm9baB=7|n zIc_ddxP;5RV|>CUaD~@df$ZxFgKMa+Xb)Dj#r9i>o%cBNi`7b)zVf}k{l;AU$y`Jo iSD9?ZTxWp{wmGJ_o$JZ2gd1oil@e}owiq5a!QT%BG32KJ literal 0 HcmV?d00001 diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$16.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$16.class new file mode 100644 index 0000000000000000000000000000000000000000..cb4affb4bcdf1c618ba2a2b5ce6fac5beb1b13e6 GIT binary patch literal 923 zcmb7CU2hUW6g|T?+Z7PCRt2jq8lcgwKKOz*X$VFW+LCB^AC@cKW_Jd62b4Gel8GOQ z5B>oElOJ~%ViTh#Y_j*x+?+XQ?wR}T$Cs}Fp5Sf~DWvnr*vKL$u5M7v>H(ON{0cB z1-6_0L|eWw4$ZkaX9?-W>rQK!$7O-~Um<-jGNdRJc-UOC{nk(*)74`VDEB=@$FpEW z;Y&I4xl-+GSNcO4dhvc$%*0N!(t1MtNF8?fh|H-T4`e6}S`PQA81L@pu*>a0#MPiAR*DHpTx2u5jMu)dAz;|qM z++3n?4cB?c_=HX12CuUM*>@EN*HB&29ItqQK)V3<7FnK>8$WPS&i delta 23 fcmbQnK8=0D3ns?C$uF5gStl@XFif26%p42=WJCv% diff --git a/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$5.class b/target/classes/com/mycompany/qlcb/ui/EmployeeManagementPanel$5.class index a5533cfba437a589f97a737391dd9b310a82f142..5b89ab22e014ff057ff960f63b07c49f86c4b74e 100644 GIT binary patch delta 23 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 diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$10.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$10.class index 42a03189c5247ffaa9b7c09704ad9f35d4dba88b..57fd94b15d0a5d67566dbeb5a74f7566e0d4604d 100644 GIT binary patch delta 23 fcmbQuKAU~RTPDU+lix9gvYuh!U^qM3gE<%gY?cUK delta 23 fcmbQuKAU~RTPDVnlix9gvYuw(U^p|`gE<%gY+gE<%gZ-@x2 diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$14.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$14.class index 093a428d99a36d130e8594a4e392b744915c5fae..e2ca56040ae1a1ed1eec1a98c5a9ee51fe235ef5 100644 GIT binary patch delta 23 fcmbQqK9haJYbM4Ilix6fvVLOVVE8=QjX4+qa7YNo delta 23 fcmbQqK9haJYbM5blix6fvVLITVE8!MjX4+qa1IE- diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$15.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$15.class index 88871a5625253789307f958625daad6001683890..9c07724f1a33752bfb740926640b51b9e09e1fb5 100644 GIT binary patch delta 23 fcmbQiK7)P3D<;P8lV3B1vi@Y?VE8rJl{pvyaK#AL delta 23 fcmbQiK7)P3D<;OTlV3B1vVLdaVE8fFl{pvyaEl1g diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$16.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$16.class index 24de78922f174d2c27302e3cb60e838d1fded31e..1dc5dd3a31ee93c17c82aafca2754512847c295f 100644 GIT binary patch delta 24 gcmbQqK9haJYbM5jlix6furV?)a4<4Xc4H0(0BNNL@&Et; delta 24 gcmbQqK9haJYbM4&lix6furd5&;9&Sa*^N0E0C!mk>Hq)$ diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$17.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$17.class index df68e014ac3237b3790c541369f6e69c6d174b90..59de0f906aaa9ec38e85a34b438c21c8f087971b 100644 GIT binary patch delta 35 rcmbQkK8t# delta 35 rcmbQuK9haIXAZHFiW0xX+|-SKKQJ;zO@7A|${NGK!5BN)gE<%g`92Jf diff --git a/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$7.class b/target/classes/com/mycompany/qlcb/ui/EngineerManagementPanel$7.class index d44cce794f9f21eeb006f043ecbac9fbeb6f3a33..e8c80ec076fbb08cf0265f5d877c9df16fae0edf 100644 GIT binary patch delta 23 fcmey#_LFVHX(q;Xlg}`PvTk7DVAwcWjX4+qbmRzL delta 23 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
  • %t2$xc)W+Bj?n)0=)k^uNdB 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
  • z4C{RgZs1dKmzak8LMc9{;~n@i+`MN{J>H)W<0iV2%5j^RO*hjVT1yr52zqRwD#FDH zuXWC)U(%WM0nMYoQZ-&Gtf6lZVzFoe7tlf;NQ-zl-a|i`7V~5}i)Yi>JRi}-^XXh( zO6T!13h;GQ$G78x^(X~-BQ^4msfmA%d)7y^l>d%U&Ns+v!Mob354EczB+rbZ6>2=< zxK;E$wTLcKjr4tWDP69vr7P6kbe-Bj*CW<_gZe4msygX5^>?~meNAhPjr5eUgPu0t zrDu)ZwAuI<#f|^bR!6Z*5~-}ILpgFemaL!ado(dRi8v?u2*`ZDKI z`YPup`X=XY+MlzYJvkdWC+8K;&DqIz&MwZ+`HTy4zT#fELiP6Ma38Oq`+ASye%}6k zw0AJ~_a2Y>NFLxF%g1=f^FZ%p9^{?Fh2HsG`s>w{y9r@j2EdXkU%7SMWsZY93jiGGUPk?A9JGFc_IJ_eeLlw8#Y?OYc!2dsZnQq-ChH3hSzq!6)?R$y z$9=2=-0bski_hY)?8|U*|XY8o!^f_xIqd{ds()zko0EAI&%T2l9>n zA$*g6IN$6a%Rlf>;9LAt_*VZ+zRi!fkNlNrui@MMi}?bLVc|2qDm|53ij{|w*j--LPx-{*gg@AtpW5BT5b2mQNH|A-&*|BWB^ z@8L)MU-6Ip`+0pX^CP(yKbo7%59c1mkL4EerBC!wta)r4-i)U$%yOkc=$CMtUpmA#3| zfkfrAL?y%Dn4-S+GxD3{A3VIOLrt#TqNc(P!D>{2nzmI<$Jx9S)!9z_>K;_9P=&QI_g*+l z;h;mc+HufzP#Ay~RE-u$akVh67NbggQQfM}iK~EogE`Z%hJ5gRtS7IyI#i=Hf2R9i zAl03^+LCH*MdOzaknx@l)rLvhC+76a8QsehSIgE=0iLfdP^${mMO)P+>m9TT)an9t z`Bru1!hSh%b*;LOuG5wA-hMd+>V{rkcTyC4^n^DpbkW|bZpG~pj8S*T)ek3{o78>% z@a2&X^*CmJa-!AGDo{_w)ze$mris3OIsMFjJ`K*nadTX4jjN6|)LYP!huhT4aMEk! z#ET5?W)*y%+PjG|<=rgDtFdiK@8(VL-4ef#pN{%974UCpAn&5#{9F9`(C?{)cjLEw zKBRK~6P?L_h86J_SO|Zm)%-Etz<;B=_!Imz$fxu)e@0vQAM_f3PVex)@G}fw(ck#L zv++I+xkkWrz%s!!8vMkPjg@Y@>C!@pVuWf61z ztA7Vw_>jg;o-uYdiV&QMsumAD}Vhfw$E(&crtp<`~?r;RD!unXL+~ zCXM-qs@YU+Jr3ZfVEpOBq!lB_nCfwS5*>i+7r&O_!X=s}&fH9`R-M>42i1}4$h2K} z2pw5-XlMoB9ol?jfup~9HE1ke{5K(bWpTCr^a1N=1L_CxZ}b4%h+p5Tc53YeAFMQC z1HJwVjd2v#UfqPZUZ+RZXz^95pE+Wkp{>^I4OrxH0w#TQzy!Nk1H-;a!T(G* z;VPDbzehLa$s`VD*u9l#gH}n~7(~zG$5;|>|Jfv2mVL=m{m52F(;(HK#;O5SrjDU` zY9O7h22q15q=-5e=J9cKsTu;)cPKrgj;H65(ZlixYfS!vH!5 zvTkSBwtJyhf09WX3=Y^oZeJ(=si_I zzfqO+v6@R?ss*%HRnyn1hW4xZoU0aT5txLiO+DS_>Z>ci4=<75sWhX>{?WC6S zq-m)cWI0-@=V7X;eY6nqq`lN5i`qFWAwYZ=HZ}x^UhN`4e{rNHy8y{?{jt+Q4)IUE zU6wvgmnG+zmB60M`SG67I5!K_KjhTilfm_Wcj5Y%hvNDYdIC}9#D-psdpD`G!1c4i z^>e`WbHVlV!1eQKvZ|vQc;Ta3HBgOeq@W7X64e5(hjHg^rEArNbfb#WJ*u6aP~W4c z)e3q>t)yqwDtbj-l;mz0KinuMkAaBb81*?exCc>fC&q^}h+a)_7d7_`!daC%gZh$p zAJyR0>G=(fm*XQlzs^qbYa_U20`LxZyFjZkRO><<{p!DKDc{*Id$r}Xo~|FgP5qCk zY80M+Gtq;GI^x<7O7&bZb=-*SIZ|^%t`o(8NyJ?Hd6Pj`sY=vUN;m8(Rf)SwDS=lh zb>vklZs_$sffgqTy;ef^YU8Af4t|<8f@K~ZdaXjhmGDxDrB+j(x}5r`D`=>?ibg90 zS=BXk8r%=H>N>FMdbl2Lpa)QYSlvYH)y-hh9kfy1N}JSe6j!&?c6Fy_(=5=dmgeYC ztQVo$RXX9p1C9J6y&V;z?DrbyXf3_TWu55e9ZA;ha9C%Yi&lxcYZyqC@Mvv4h`is> zP#wC3X)wT~^K=Zi{=ekSvh&VMaFQ0{ED#ZawaY!@2IIV}9Dz{1FJ-37!9i*b<*KzH z$2z^7LT6ACxt^|E<&xJpAB#|#M@1m(e7(}<>)Ca_dokaAnD72W&R5rczWT&`d@Ur^ zi}h_tNvb1#qaYJL{KKL>VzHhpDnBWSsJW7ulP-xlDM>_COCrjIB%-P%5v7(yl#V2# z(nS&hG?Cb_o_bI8xz+G*GV&Pv!ssmt0eJ}I|1c?)Iw3$k1gU%kWLZzgs7Gmn zdJGEWacWji&}!7LP*2g->S?-3Jwt2MCi)>9WcR9#P#T+)%3^{mg*nLNxYTHXR2qca zjuAvcfS6Ysl1$x@R2GjqGMbb9ySEY8Wy!lp`rW9XXF%LIdX3IyS=-OE%@~-tg1}tUx?`>E{?z4T z7+jq*lPY+T%6+ z-pNM%n#%+DO_{s#6FRH$(?ZK}r)=U$Mi_k|a7F~CYrFnju0K~A-@}vFs4s4A`af=R z%T~8s?v|IhSXsvRjVq?~Gp;nQHm;?9{|AD*rJMi& literal 21169 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 delta 31 ncmbQlK8bz9Z6?OUlkYG^@*ZUnU^vDg!*GT{k>TuQC*}YEt*8m~ diff --git a/target/classes/com/mycompany/qlcb/ui/LoginDialog.class b/target/classes/com/mycompany/qlcb/ui/LoginDialog.class index 727462c3b504633ada14dfc25c754e265425a4df..811ba0cbb44cc3bab28ff9a66d14a1589ba14943 100644 GIT binary patch delta 1400 zcmZvbT~JhI7{~wr-Gu{(Gbp>`0-4OJ<7DUz!Z749zE?kf8cyURyL zTWL|*hj^eg(=9&hzx@sJ!=N#A#n$E@ZJn!>9@9%v+ z-jm&Ny;1$)R{AP{ZM--1s!x+GER_r+U%;YPtU1>8}U4|A8o z-5U46NjUz8L?}^%+Z{HLdo?y2JXJV*-0@ujcfxS**VtmXi^bjM4z~70iueezxivcx zcFhgX9S!?k;eh^~y((G6M+p?MojB0s|K`$s=4{Z_m7SG{x#8@X%QK%j?&{56b_Ig- znW2O$kWIPOwnWg?ot-jc7Gd-0Pool?o)l+1dp_to9Ei-P$HJns7rbkWd4P{Ad_v=s zEF?B~BcYnmfH$Jwve(ug)aZsLm30MU(MZgv(3>mXZ1B#0uP+)8MxdbseGC}3S%1MOr-vB z{9>`4k)(1_`k&4Q+XZ5ceod>;_m;2Vhk9rE2z&Lv%I{#GetX60?fvpJT(F9Ca)8f> zHmoCj7Sc|!2KgK;Op0A>;Sqp?Vp>oF4PBd|B2;HU+W}W#LecrvJ8P zZM%UeHOn~#1*cJlGfPnRJj%X^dPU-`VA*o!t2rj$mV^o<=7!!;)s~#%_Ug;DPP1{E z59Jq4OBefOVZ?lkmDLWmI(X*{OUAKr@tlKg7tNi=ayzBQPKq7X)9f6F^KM(EZJJ%x zhV(DQOiD}YFpXJ_9!R$(oentlzpK_KC*Z}$h~g6r;xin>B@AN<=a3Tb=VD!vV^=YY zG&1-CU*Svqh-+p;?vk=HDC2894x3S6zBM-%T7x27=j(h!W>AL_zR9=bZlhhRPGEMe~!h=JyXy`8MkS delta 1038 zcmY+C+e=hY6vn@A&WuOLlg>rWiAp0P8y_Sr$iT8vGrL)8rR8NDr)jLb&1jQl+SM)= z)gdT+>LG**LMGI%AQC|@(LYcGQU8QQYag$jhrQQXd+p!;*5y;_^bY5jzi&SRDCWH} z=W~yi%Uue z=nWK{3ABd`%HqLLXDrgu?qmh`8r-LX(>uE(?Xl`uAb7f_I}i-1vjYYXGLLYEL$Up# zXfzNO_aPqES#7WeRpyi@Gua-BM`AjUm_IY}T(wx?WF6~u9yfS`4GCZ7cbom{yu$lh zy16QQCvTa}*?#*lvD}DJCHP2*;2vUU`HgDt{sr0|5_8Bg}m)pGD zFv-+Wq$yv5CH`@ijUsES-De+XrC+W4XJf`BqaySm&I(Aa1Xd2W8O~ih@B$5Zi8j1K z7se!F5^=mnAI33&3EaUOOZp}e&<8iW8HHU*Sx91dHVGu-8e{B{Y89cHy*wxHsKheh zn88M!?ip;+neUX@uJ9~oI-qJE=lQv26pKz(Z-+L?s>OylE$4fA`ooe+Iu=AYL`2{J zO-bPeUYw&A$#peJsqa`@H^HNmJT}j+giNA(aa#7T7F>o(#j>B5r15io?iZIvQ7gzn zUY1?Pn6m@!Z;RtUCBq95dsJbcpZ9DOccX+qN$6C29pWL;+ Ef5)1t9RL6T diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$1.class b/target/classes/com/mycompany/qlcb/ui/MainForm$1.class index a8296b648795e1dc02df68110ce40b8cd5b92a39..24771f5bdb4fb1bf77131b53f08b2d636bd227c6 100644 GIT binary patch delta 23 ecmbQuHk)ljE)!$e@cg3e)S`_y4l^=-nLLLnl=T|}2gCQt-&ai3f&r=^ B5_A9n diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$12.class b/target/classes/com/mycompany/qlcb/ui/MainForm$12.class index c63b9edb08af380c4d5914282564b2e0fe77328a..6b5911ffe595f96d706c1de664c156223ab459c5 100644 GIT binary patch delta 46 zcmX@ic9LzvF(HNAyi(u9yu|cW*Sz%1ywud9jh7BHGX9@DjVXkUk&%Iek!kV=reFZ7 CP!N~^ delta 40 wcmX@fc9?C#F&?Shywc#rlFZ_g%;b$X4l^=-nLLLngpJ`F0|&$R$={fQ0aPLoNdN!< diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$13.class b/target/classes/com/mycompany/qlcb/ui/MainForm$13.class index 9a83c4d3b8a6c67b427aa3714f723c40ea1136f0..92003ed66c4c756e64403d87b790530b1694a40b 100644 GIT binary patch delta 45 zcmX@ac9LzvF(HNAyi(u9yu|cW*W7}f{L0kSjTa9yGIC9x$`s1V!@$AFJNZ3RFaVEm B561ui delta 38 ucmX@fc8G1lF>c8$-_*QP&yv(!(~UO{Gcqzwp2HN%%EG|G$U6BOQ!oG$Kn$P& diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$14.class b/target/classes/com/mycompany/qlcb/ui/MainForm$14.class index e0ea4b6d72ab13a1112fbc040f207cd5f8af7545..3242fa27816729281a43a5f6fc40af80d3057bbd 100644 GIT binary patch literal 835 zcmaiyZEF)j5Xb+M=eu5$G-}nhNn4vrl7gq;yJ(?=7KOAHTJnB#S=%jldwREt^qpTx z@Bw_`2k=9Qvq^kFBt5vD+2Oyx*_oa1KfZng@Ei{vWRNW)=OK>*VLON;Kf31ijnLQr z+b|gVW91(UrH|qyYCd^ND40u?HXjqV`is?F7bQ4FxE_|^5vo^WBK%P33;)&dN(P2m z&y-eXpO9^}2QJE}6jAlCf*PT*m`+%W^!Q8|l^PWs1V+XBR3@+ansP+gZ1tz<#5?25 ziPXlQNe->wZ4ZjLO{o7@(r2R7G9m1=ZYr@oAmn=SND?Z2rRB*u8p`Bc3`368`f(t_ zfk>3y&x1MJK1Sa_=2myPWyjK7#-me_h)5cl@WG1sx74hha4RC;&BqlBV{kP z{Ods<*#Kk7ps)+%(QzI+3Y)5vQEad#Slay-=j7OtHmd zR081^s9Lq7#M71Ge+hTkuClk!)<)dU-X~D!3yL46n!CIf_#|i@_t;;Zsc;`_ykq^8 zMp$P*PsqQovUmfvIrdWL}*&m|z{`>q2U>^+!1y~Zo#RTk!biG l6X+Wy`WXosxqlsj#eCcnmKg?99&hA78%#c!mc>q>#=d<06Y3Vb_mBFTCRQjnG%# z+rS@s6Xo@V(kD?I)}I^@a^_Mc^~Z#r-g0%vK>@`)92YBa36-&!3NH})!h10sOW!c- zsnW_E64H(4z(EP+JSr~MP$g_FrxP~DeW@p>MurDRzEP1rm+@=9r5q8q8@*XJ@y>X1 zDz)+El4I+4nu9!U5^DdI^i*P`mN8+kab1PY0U^_kMv_qODJ{HQe{UVsL-DC7MWbSl_JJy%xG8&zWScKBZm=Bi4zon+-lsmb(tX_iiGMdD`JW=*y ztH0j!k!=7okF_5}iP9JId@lCvdzI|lba@ma%}wLng)^C$=TXAx+*8dh>INc7WP%-@ zq5=pvK$VJ}Bp$95|0}q~cAdRLwl?Cl+MhtJFUWtGX>RkH literal 0 HcmV?d00001 diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$16.class b/target/classes/com/mycompany/qlcb/ui/MainForm$16.class new file mode 100644 index 0000000000000000000000000000000000000000..ca3c6c7242a8115cc02c60f21456643acf8990d6 GIT binary patch literal 589 zcmah`%SyvQ6g`v1rpEZH?^jiH(Yi3W5wz+?EDBY@Ne;;*Z?*xw>=D8!h3*4B0)YWPHGo zDVFLMatsA84BVhi@}8@<``~*GH<9ism#Pv*fej0pR17(AFw9_U5!a=b4PP*r#p@Ji zlwtL6nDwn~3*!v=eoGgLQoM(97~T@tXjLk4mIMtEUG@U`YUpvl&Lf%HUrsY_O3koV z{kLM7#*7k0J=ek{@#GOPZygjSkpTH#|Wy z4a3;MB)y$p0;Vuc7Q@WX=iM$SWxT?=>R`}(hTX?VnTJuvkg@j*$N9oBG25*+hk4Q_ TvAKXk*JELsv`v*pNYnWQO`~{u literal 0 HcmV?d00001 diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$2.class b/target/classes/com/mycompany/qlcb/ui/MainForm$2.class index f89bc5df507c74db7239e494bfb4f3f40524c82d..3f6304470ce7ea4607f127a7f6b62a54a7a0fd63 100644 GIT binary patch delta 23 fcmdnbwx4aoL?*`M$&;8uSyLG}7}6%cVG0HSUAG5X delta 23 fcmdnbwx4aoL?*`Q$&;8uSz{SE7~&?sVG0HST+atW diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$3.class b/target/classes/com/mycompany/qlcb/ui/MainForm$3.class index bd5af8f6fbbf8c796deebad5530338718506fe93..1f835b68f6eb86d215c50afd8c64501bfe070b19 100644 GIT binary patch delta 23 fcmdnXwwG-~KNDlYA}KF$DtvUnK{I diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$5.class b/target/classes/com/mycompany/qlcb/ui/MainForm$5.class index 805a211a2538eb32e0068e86b7076d2f664abeb7..2bbf74bfb0170f959af31a1c3f396b5093048b62 100644 GIT binary patch delta 23 fcmdnXwwG-~KNDlu5!I+1~cVbbJROu+yo*bZ9& diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm$7.class b/target/classes/com/mycompany/qlcb/ui/MainForm$7.class index 15f0eb5c563fa2c0038eed1cfaa5c0d0272386a7..e9feea7dae571be4923c2b073ffc9d4aeff4d91c 100644 GIT binary patch delta 39 vcmX@Wc93ntQ68z1q@v)&lFZ_g%;b$14lyz=nLL>(lyw;c2gCBoZ<&GtI@cg3e)S`_S4ly!bnmm~)l=TV&2gB9LZ<&Gtfp!r` diff --git a/target/classes/com/mycompany/qlcb/ui/MainForm.class b/target/classes/com/mycompany/qlcb/ui/MainForm.class index 1188b38902472db0157c094062271b49b24c57a0..a02a999f19e8f1e775db3b3c77f950f1599dbf5b 100644 GIT binary patch literal 18126 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 literal 16526 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 D%S~SD diff --git a/target/classes/com/mycompany/qlcb/ui/SatisticManagementPanel$1.class b/target/classes/com/mycompany/qlcb/ui/SatisticManagementPanel$1.class index 2337e8cfa577ca11ba70bb9f871beba31b1579bd..ce2c3ceb1e06569ca8369d25cbd430d934d6561a 100644 GIT binary patch delta 23 fcmbQqK9haJYbM53lix6fvaVs^U|2iZjX4+qXj%vK delta 23 fcmbQqK9haJYbM6|lix6fvMyxcU|2NSjX4+qXB!98 diff --git a/target/classes/com/mycompany/qlcb/ui/SatisticManagementPanel$2.class b/target/classes/com/mycompany/qlcb/ui/SatisticManagementPanel$2.class index 2a1c0f4d037bf924975c1cf98aefde006df6c5f6..86699689372854ca55855bb75f55ede2ef83a37d 100644 GIT binary patch delta 23 fcmbQqK9haJYbM5nlix6fvL0sOU^p__jX4+qYV`;? delta 23 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 delta 4897 zcma)Adwf&%75|=lliVb|ZPTXd19_wf14~PJIRvagODUDMAPtWo4AVB2KuNF!&`pUb zB8Uq5^97>7d@v?%7Hojlf>=aBQKq6OiWX&x;)Bi2jXBu)-Gl(TKct_}J?D4sd47K< z=l8q3KmEz^_WfsCb^<7(zctxY%&LZ4MWrRXM+CR&xE&Tk>fFXaFkBt>)z0=b`fB|) zSaFArrMOcpw+!eP!EzmUAwaO#`@@y~dGmbrek<-Km@7J39}d`YFIH+;rQ<%_Pv|Qa z=Qza~OUUwojtB9On5PY~J%Z^PRugjhWhZekN6WM05!B1aZ21Vv#|`qaPRDx8AXqq7 zv9DIc??scEDNg4krP{Fps(d`9<7sRZ{j7s+o227E61uSC9C4l1RBp#6>3EZLyh%FV zBpq+Ub2^&N6;W013(l+yOYv46&r5L<$EyhW0yVy1y@n{EyHUsRPN^KXS;lR~4jnCM z6`F0htxd+=87nA9G<32S+R-NCw#m3{GH#oU+lDHGC-6*)I9bk(l+zIzB-MS027GT+#DxMz>hq%&XF^7NE@j1Q_2kgD3;!7Q0;cbFGtGc!^)X*^A z7xWuReXZjgd_l0)go6|O4Iy8hhVKZ;(s7}0VYqN~C>XZlZv<<#zdq!5Pvjl_7T@bI z;~#`9K^A99dHH3NBz8aO_!s^yRwTLm;Xj0wgp-m`L#WY?)A+BnJHzeNyF6~hIT4W} zjwJOalQ8L*+SwCXbkfKwzBhNDtdX4yz1F~?uz}m5a9qtSe{Fb}m2}=APaxdjclWna zN@6ju==ow6xMH0ym!FCn-*W7;36Dsy|vtK21H z%9(bw?DSZv3nNn5{)D@>eM8V))6u%xO5J#;Jnft3xMv4CT6WE0)XAbzcafUXKefM| za;b+5(~~fux5%|+i1o?ctjDOAPQB?e@k;WrY-6TaYIVy{6ZQa z%?C2Vynypg<&Eav$UdA{2ulF}L`s>Pk?9AJ{LZoEmsl&?41*PZrD5H>0bE!0@ zn*fn@?NmsOI?bc7*yFsitDhF=w2*lG*d|s@D6JUjDIFzCxk-lltyq~ct#%0AtkW%2 z#Myf$j4ZDxuPU?A5Q^w@t062NSzXG)QtA0Noo*+F&N0s)p5$)~2Wou{M!j|%p*wV1 zD(8^KgHHac?eNhuotD#GVzaB4<8B@E=^lcqcll-IR$3`Ob@d!`pX|Ar?av46-8JnS zLOkh7==6Xb^J(*Dh8D&TgHZurL#W2aOb ziS?No1tmc%ZQ#?Ss=j@FaHf0DDsK2ExZx{89W5II-0m$+L7t>mdP=9K*&;jp5B#Go zG16EN=xDvOR=)hBPS1#gnc22y=}#K{S*Pd3sZ4j$7TT)O^Ex$CRCLaonzWsEXw;%p zE4?5VXN|OOp`AMIq8GRB&$^DbUY?V$h?SkMG}G7e4B4HLExzcSVkVwQS-hoLBE5@i z3UYavDtv?{^OH|S<`iTh+n__@l!uzJ<_Ty}9_I$-sccZ5#0KSoZBU+$;%paJ8joOJ z+riMm0;1ibXV>n7Ut(D%OMtF0p&Q3{L+3mk=uYh{)ma}%qdoL8Qw1q;+eKZc43xI% zYz6!ZN$7=PxD2C_cY$5mIXk&GP&lTo+oYQFb_HzL7emkwqtM^5b3+&tnPGW$7!nSBuGES}^g112AIZ3h z-k>)bk-He3gY*}}@7h@2^cMS-$i=kY=B(cl<8!kzZ6J-E@FSAO!gVM!K)EG1d#I@5 zJO?{0ZJ6p+3!->ssvYStc)DYypHFaZI067^eAVN@-5e>5X; zi1%npylREL&Z0dLqdg@1F1^Ri^$v?|P=3Hcvs(^13ES_I+00G?|o@;V(hejQ^O zpZ6J`=@;M=N_2DRr|?YsIXustg9ksx;i+#$GsCmZfM@$p`s4)zjfiZNT`_!KOyILS zhR;i}Mrr?Luw28va4{?ahGiDRGMiy(U|8mGhO@bI=5nvhXYEEzj9?yP6vp*fZ~-pm z+%_K=u#_+?d>h2X3t*{Fz*7HHSUf+2g$IQ(v;ebTTqVqCcx1l&@Fn zmqzJVyd27jn15j=C!~HXlao%$i}^d*O8L@XU-s8Zg_7-Gk=G|mgZlK@LRUoTD&~tF zo#bDXM#p9B>7bIP>`058jZ&4=FkVFHDt@ysN**a<_HdLYJ4VSrw&nFv$C)%d<2Vzg zsg88{7ZV?6wJ1%Gl226)m!o;b>L<>7IwUPu83luNKh z>4~k%AnZ_z(4rKhRVl*@%2>219_&=E#V#d)7nM2Kt%UKC@;kIE5$sWx;$>we_9~Cz z73FEXsyvH*%5yB=$~vvsuk2*~m+_ji53eil;egVCHzLXxcvJa`1>dmKQ`{rpbC4f6 z;Ay<2oWc(NU2i{i)-~)9Sj;O`>P%Y(k1wK;8@w+KFs?Na2 z>h<_UZA6E96OO4j^ZGV?s;eh$`P`UNnXx$%n?p(w-`qc>kNDVD z=qPXchc|UFP_|pY?sNh9_ehb@w~yNjc^W? zQ)Eew`P|9A5gC=~)+lY>PEA{A8|6o-t%(O~0Z-xi+!5fOSjMz~yFk*|=|7b_2K=3D z#Ys5vH6oq(+qfHl?dIb@SVk(A^ZC7+EC!NepkX0W=o7vOnK{fY@e6~KE#-|s<)dRZbuee*mUKi6MR|8v zlQ;y{&@uWnes#!!^$ZF${;wp;%E~C_)8Jo7mBexGDshZ$75ePlHgWR2Z7ehAMUk5L z(eQPbg=FKap8foe!+b*`syQB2-YWTqBHgNV+;IL^`kbkS!{qZvue@vzg+{qd`5)!S k=@9-LIx!-LKmH2oOHRLx=~qloGX2Ix{E_!9of?tzKSTN0r2qf` diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$1.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$1.class index 60163cfb0e2403e6751d1893aefcb4523d2c3758..4644df6cd6105499448e5177e1880e7f6f732b1d 100644 GIT binary patch delta 23 ecmeBX?`Gd{mx-}t@;#Zia8hnbJqxG diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$11.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$11.class index a0dca2acd5a59158a1f345d76dc110c5bae48f24..b7d9fa3ccc8ffb98e3e1fbff47bbef5baf72dd3a 100644 GIT binary patch delta 23 fcmeBY?`PlekcsiqI diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$13.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$13.class index a90863c16fe71fb83e29324634cdaffd7c52dc4e..3026e6d2ca57c6756b142942586329b02203eb9e 100644 GIT binary patch delta 23 fcmeBS?_u9?kBRZ|0 delta 23 fcmeBS?_u9?kBRZYfyWDW)ZYJvz= diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$14.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$14.class index d066a96aa54512e346cec890dc9b52cee1919c9d..2534caada06d5331ee79dc1ed79465dc7ce0dc5c 100644 GIT binary patch delta 23 fcmeBW?`7X`pNa9+rgsM`grK&28Df#kN4Kw&*`hSb5H0eceE9lwOc zLt?=P@HYt7h-)VTges(1^1U-xXU>^>=6?P8`3rytxML!Ryn%v^B1#N9zKY!FjN&UU z&)nCcKXj*o`&`8@MSR31AB#vx-RDw-jlFveC4Cwsja`Pj-V#T<7RoRUSTByZ^=DmxWEl*Xz#J!?N*dH0{VTXad6icCl+%jU?tB1ie}eHY!>my((MjMN zu2Ni`qi_xDv?F}R#&Dh1MTX*Ahrk=CEocuGv}XG~Smz@y{9&~+rtfsGAAd2MznM+c jaf8Sf%ykkdV3T5w+S$r>6>OuCRVuhm*&=w_1bx2%XA9rx literal 0 HcmV?d00001 diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$16.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$16.class new file mode 100644 index 0000000000000000000000000000000000000000..51882b2c7979435e19d8aa2372041fa19eee82b5 GIT binary patch literal 911 zcmb7CU279T6g`vg-LADJwuIy;H>&A%l0 z0Y3Nx{6(T5-rWQhDMA+Z-kHmpbLO78Uw?l70^lL;SjZq-M9x7T1%@48MP779@s!Im z?^WoJylLP)SNf&U2VC-rh=eo)E=5?scb}nPj)SL zBcY%1QAm|)U->*7avdc5MKPCnOghWR(BpK-*8^dW)p)=)kAxALSStKq6S87PesBEG z2?qN}O|>r`1<5Vf&z*;z#3vHyNk3F^ASZKi2iwULmy_r0(p)J?-qJ-%haxtQRZQB> z6G={XLmtN>#!VW@5*RLlxo$F+G^rW-S8#>$Dy{Y?Cl$NZ{s7kcgyOptbCqI&P6FSs zMsanH!ZobZj_@fP!*yEc8S-yk0&k$Ypxs~4TCMkB?T@(dht*D*zSF&a{KahjX0}kn i4I*1G*GM3TO^O+6=T^EaV+-}PQpRn{Ho=o7==%kQz2L6^ literal 0 HcmV?d00001 diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$2.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$2.class index 56bd46fbd52c17548e118beac3b0010a28156870..e58c8a6df69639a37bbf0f3e5f73be001b3dd1cf 100644 GIT binary patch delta 23 ecmeBU?_=NafQhks@;M*hPuht%)tO(tp_jw delta 23 ecmeBU?_=NafQhkU@^hR(^>%)tO)><3W* diff --git a/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$5.class b/target/classes/com/mycompany/qlcb/ui/WorkerManagementPanel$5.class index 0a11c1da1c68797fadee13604feecc8feca95237..150b0b3bc662194046f409fe9440dcb7604f2360 100644 GIT binary patch delta 23 fcmeBT?_%F@hlz3e~qXB&&)jY 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 diff --git a/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$1.class b/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$1.class index 7169be85821a05480dba24b220de5b76ab1c9284..869eea7969061a5787abfe5321d780c591ab58d6 100644 GIT binary patch delta 23 fcmaFJ_KqWv7!oG)F$V(xWM>BR delta 23 fcmaFJ_KqTu7~&`MF$V(xWJ(6` diff --git a/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$2.class b/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$2.class index 6f66d3acfed1d990fd04bf9fcda11313819956d5..a6ab896e34264bcf4f1b494adc9ea5dcf067ca17 100644 GIT binary patch delta 23 fcmaFD_JnQ2HYUcD$=jJiS<@Ie7}6&TG6w?yW*i3> delta 23 fcmaFD_JnQ2HYUd8$=jJiSyLG}7}6#SG6w?yW&Z~h diff --git a/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$3.class b/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$3.class index e415e73839f91ed1a5f0e2efe9d606654e8857ae..ecbd6d90e36aae509385fcbbee4c4d55373c6625 100644 GIT binary patch delta 23 fcmaFD_JnQ2HYUdG$=jJiS#udU81g0yG6w?yX6FYi delta 23 fcmaFD_JnQ2HYUcb$=jJiS#uaT7;+~IG6w?yX37UC diff --git a/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$4.class b/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$4.class index 594664232d67ea7578214d4856e3ed26e772861a..fb63c8aafb187403eea8a2701f13661f0dfdb6b1 100644 GIT binary patch delta 23 fcmaFN_LyzMRwl;E$=jGhS*sa17-}X9Fb4wwXfFp* delta 23 fcmaFN_LyzMRwl-Z$=jGhS*sX07^)`=Fb4wwXc7lb diff --git a/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$5.class b/target/classes/com/mycompany/qlcb/ui/nguoidungPanel$5.class index d3db0e508e350d6afd0229b6dd6d654c5dee6623..fe363c5f6977da26d4c3bad83e61cc4f33e8db3d 100644 GIT binary patch delta 23 fcmaFL_LObIb|%J&lXozMvQB2;V3;ylh&dPlYl8=) delta 23 fcmaFL_LObIb|%INlXozMvQA>)V3<5vh&dPlYi0+a diff --git a/target/classes/com/mycompany/qlcb/ui/nguoidungPanel.class b/target/classes/com/mycompany/qlcb/ui/nguoidungPanel.class index f6c43c14bcfafa9e2b2e048bace147755e521085..05b995e5776b0f07209909e245a662b9e1f760d7 100644 GIT binary patch delta 3548 zcmaJ^3s_ZE7XH_H-g`N~xu7VdhN38sMA0(E1XM&6-=LD_bd@XM0|+s7vbm*Mv)+EHOF_oFT=N}He*=Tys8=xnz6%xidP9*uY!Vtl*t~{;B^B#@dhDs zfxmV{RgJ%_rfOkjDIvC3;jitpQYO2w+j>Ax9QGE$J+dXZI5G-^RkAuJh!Pjv9g?pS`SuZ zuud@|gOvUr@`?;r<5L&K5vZSwIuau06!{m|j;Qd@EA8u|1g^7{n-D9zsFUT3h)d|g ziZQ}h;#_uFzc6vWsN*0PC0chxTxxdXN*9$coRwH!;jh%GJ4Z^>l6cwF(>fK=DLt7| zM5d{P4!>$&Wv#EG(qF?Z^uR^w23H=vsJ~ThOm-#H6$TBUE3Mr| zS?4}9$e=9hPjD4Y%q=J^7@O~*WV*_rA(U-Rj2s!2OG9-UX3%iTCiJvgB762GMEgoh zhgF3`=KHEWluIKF%BPWBuh885>Z(eAWi27w8Xwi((!B}Rw#aC2mWM{sXq^fT8bf0V zJ=kGKYnK^mY0)>hM$veopJ3IQV_29ZJQi6e&7l#aXtEHd5OPBPZi-3sh@d3~T}{)h zJ&}VWa_JgjJcBUGn&9nfZHi9od@ZLM+T!zkm1P-|%ByN>h1E>qYnGL3=0&>6PqTF@ zGpL*@ted=ZT)8yYpm{XkI_<6GVpSPbP1jiiy@UJuX@NntR6)=u<`w1^6l>AJ?@v9D_FB4?HR%KYPf3l=P@sws8RcZ6=dBic1ymf+Rg zyATNp&<8f=Cyu6EvkA}J*p~Vf76#E=;>Ay9KXY~yUa|3-P{!=Cv4@$ZK|EU$6O_%U z3kFML-sCxJYuAo}y$)#E#h_&|`<%HI7tgJTdB>T{4C37q({08z;e8tiIUH+RN>ZEf zk&RDS%()1_n&SfSg#ZMeLh(fi)|?QCla7lS?8dP1l^9~i+4zPTp^I~LaWQ8cU0o30 zmZaJ^7xR-%)I_>X9){J$Qj|@m;DY33zZ7dzI~MPbrS={hgP2_tOC793-8w1pqAso7 z;+0DTb4gNsptG~kjTaYTV=P_jOxFK?O`&&Qj&<=gChqiS+KndQ`2lpOH12A z88%(Mg$A-Xn5BUsDMLs$1Xyv(=_z zp*9UcHcjP;g%|AB{1IdsL(Bp}j!A$`^UQIA97UYt!=~x7m$rEWTZ&aVAVoP3l8y%L#3R#ZLl|_@xbbHeYj!dfpf) z!&s`ucv_ALvVTrUB0citnmKv~J+KyYKH*l-;A#Rh7VWo5)f0H$=lH;*D zASdB=c@XO4;kZMdguCVGxJUNkUQTe0JRfW2THGh!fcxdY-~o9B9+dye{3@)IZ^uLO zUHF%LFZ1j0u>1(t%THi~{2VsQTk(jz1CPqPQ7^y6{6Rb>x8QO4IQ}i4!Y289JfRR8 z6b}NM6)&Dt+Tn4f12!mKu|?^Q^-3BVmHv22$->i0Hf&`Cnv`*PMwy0Zl^HD0#B)jo zf=Uhkqx=QWD>t*e0$Y_;ctQCmwkZ$cMP)t9k7B#hfR_{-&C2t5S!u>A$_|!yVTZC0 zuPO%ucuhHi*Og<~seHkTlWcGnZz$(D@Od<V6B>qd)49CrxxICbqwB7i?Cn47VoO1cu$>=_tjb)P!}=393QB+^4#q>sIJ8! zHLxBZs*mHa+JF}I85~hxz(?wK=J(*Jx|j6_@UeOXpQy+1sd^Tlsps&CCgGUo#&InY zpKG!BLQB92tuyo8@uilAlUi?{8-TC0AvmQC#c6FczSbt<8?Bi6nK+~QSw9zNwMFv?Y0dmau#-sJ&HR3nv_m9opOd1UCRIDb zd@E_XO1d6HEh2ysuR-9=}t!u0E}>CAW2F5tgdbfH9~P!jr3cMPE($fjO= zep31T^yc%Dfl}&&8tRMNC=>snez=eNV*_1*Cujh+(jfkx$-y4F3UAU7?4xWPq1?tx zFWXMV!#PAAhZw;j@;Ssv4lxP?Xf*Pu5F={` iB}-j%;`#2I%*USi3Ysh>fu!y{CM!gKsi%~Z6aPPFx9!^i delta 3486 zcmaJ^3s_WT8h*cXn_=bvhanA26i@*{L@|@n5K#n-Bo$Or%Mm8QbTkAnyY7zFldZM2 zY{w_fve>oU(9{Gwl(UtVmT6^{nQ30|Qd(Aa(XQ%#{~Q!AJv;yN%>P~9@AALjf95%} z`pzX2UwqObJF&$)?T8O-C4?2U1Rsg7d2^-TiEXS7-+ceH_?cDyN+;eW==oJG!6&QO zzgk${XUpcgmf*wQ`0~n@;6evJAb6&DXL&QcvuiSjR88~wXI4%3yRZWv>QM0!K}{(v z>^|Cs{`gqOZhS&8X8LMwtM=XHGZ#6#(x>JKcZ$2W3wy9ngnVY6boSB?=s1W&W@1=> zIxGNTnJ%MP+VbAoH2j$iPr1Hb9`9cRtwUHM7h;5-*55Ta6wLWlADYBEYk7WEf>KSGjD zGAU*|ch?w=2^ie6VfBo7eh49U7Vt$M{vMN;he0GlOhT3DJ8x+HAAa> zQ!9EqDaw4t9TOAHg>Dtm@pp5QhT8b@Ee$t0shzpQ9Yfce$K9QcSe`^lWo>zUWtGqG zpzFk;^}a6Zz!Xp?!nNkQj@Poa=M$kz1g(~`Myj6Z*b-s57AwA`>s2<@0Qz8nL5^}kXcIJ5_ zJ<>(lG)5E|ODJe9GA%OAlSQ|Sd^ZUHco8+htdGoPqVCjbB6-aO&j5EhRXE6}(_J*# zyfJEuGmENpnnHJ*tD^iȭ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%0A}D5XE`Pu%9_VhTh5&c9A$SZ9u3Ib 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�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 delta 93428 zcmY&<1ymeOur9W^2MzA-?gV#tw_w2~I2#D=zIY(GySux)I|O$N_V~%U@1DEo>`YBb zcXfA7PtP}97c~Sa3HV4#vXD^lVE_Hf)cRtP$dO9b`qZLC(YBo4Ss}54CfxKla_&v( zGHlK=oz=dFd5OY~(WA2}Ar4{XnlhY|ln4Tl0-^$<28;%bVE+vlwjazL(5tv^1{W zzGxAx={Kx2uT3}SzB!*|r18Z|4_4^v13SVxyvExO_%__eA73|)1hot}s zcS#I?_8?H{L6B(%&j%IfWNYc(ZYRxoa#L*ba-oOk?!)hb5*Xcj7%KVEWsgGDh|y*H zAd8azsBbBiQV>#0A67ZYiW6fU$w`=;V*1rf@yDsO%}Y_Q5*ER_#5uMYeAdDX`+htW zw;U$C@s>yEu2k4{+{cWFO^r0bSHcJMdN_ga^DJHv>tUEX^{kauBriD#RLM?KQZX!C z2LuhY+-UjmW9@{IT_$%f#!XAqCGMtLx^8ryh(z>KBMCAobX)qxJ564oHlurLQfG4& zh|sjDMqi?iQ(K+zrR=MbqJK-Xjj!xYp0plIKK+8$Z_T}gAf$kn9AnCsaj5~!@ZVd4 zYh1aRW%cld$eH=pfI!#F9kIaN6&?x;o6cHk>F1xD$(j#`k;uNQ_2|^ps@lel6c6CX zAYgaNPgo`XDt~E0D^uumWgR1zL4kzS-^$7~yq5{ja}J@}cjc9bt$yVN-Z7yH4~iJS zFiA~dmFv(!aVxk9Z_#N|;$a2$gtJlXr*B#E7s-x|PC97l&{(&PEPuLm%}y#j`+_un zX@X@QuUc4F*VGa&BSU$s;TM0}TxC9*WRyXsG{fKF==;Jd!nBI6Rq5gwk5m;78c*wB zS8C|SN$2Wl5}aI|oUNp1md|i2!#>#Z2Crzk32(j?i{@8J+Xo#Domm2lwG|yD1oo|x z&-)&Q&VY8wbNB*e@GbMt2C~5gd@>T!QdqL$I5|qcY7J zU}UFCjZ?6(O+A9Z3rLt%3}*0W{!lbk7D|tJ%Q-8~8 zHEOrbQ*=FtWPRTqL~jufFV4HXldUDq)iJa12h*=yiM5F_)3Qt{tQ5BN@NCM|is@5U zn(~{B&y6ccCb!;Wijk%0vNnyoCvt9|wW-%ZRxJ84CR*0VVK5l@iN%AOeR{;%=7s4g zZl`lqi_Ae;C3+eOFbq+GeyM<`M&_az+Ii$oo-ZiF^*LnVFKjX5!sldDq%=cz@)^px zj4-j12}N=dfyh|1;h#`fdsc-5yiDcLU1b!JWF(xjpL5~#MIqIr^i9sM4ZOen7ENue zvf;T8H?ZlYq-C@MK31lKku@+W`{NSrj^ed8D$CrGGhpxb%TMDiKM#)?JZG30CZAk$ z*?Fh*n*?A=Ut==88ca(qSUeDNwadWoAd>f;8my9tV-_L}SJ>I?ST{DX59u4MGNiai z_~88d)Ho3CRh6M3+Yw*KMkYZ!?Jm3toW(cJ;=lk+6);F0Cu4_s zRf<}h!F>0)l;;=w6nmydb(CX8YxNU@#X*Y2Hj=Y&OAyJ+X@H2vU0Kn&0lirlel1e6 zburxMrYcEEx+@Tc)&cDWHLxkKQW9o8Pw&a;GYGxW5Pmg!pv@fu=CnmlHNz4VXUA|z z-3WFs&Gn!UWNN3v%%bTrY#km5@Mru315vj|dt~+yEqwj_HR&L0ZMOW|!lx8+by`M; z!APRmP^+~0boEOy3rg9aff-ht&zt;viTktG?lMN(!mzM?N89{3%lZNhRLs9w&}V+G zWiWV}q(oRmP)A-mP&e}@gbcb}=a9`2X8S1)yDEHd2S%jXk=d41d`i}1h4swkOIcHr zVRQRVp_+jxu>(EgVu@p%!Vx)?;sCcR4MgRRX43ff8?01O5b0WzopSjShP0a`s1r~8j;X?lf zXzZGJK=dJ6S&Zbd<-1CeP>AX_=zTY^7@X{RoGOGUW^kN9)R^_B8`kJc0*4J_JSVDQ*v05+#)-moG?N_?ci2sN)6v|ycI=p;*q+u z1`MriCniPXp+8M3+11Pc<9g{%n<5j?oO+|?)yl!sO(Egci=&(yS|vx>g|`lhC+U>7mK*W3clbrKOeo!}H>m_&wlH1S&y zBa%~6<*!YHkuCRn=2&Ju;Y-LC@WsHb$Ww)50q-tNl_8QX`5O;@9f7*`wG=(A!mC z2Cc&iRc&L^t{S;`dL7rh}xEQ*`Pwe|;&SEGn8jcZWUGD~lALTV?7Lfjl zmbj!{22`RFG2|!D+a(+B9FFc6L{gp5=Ly{sWhV6ftEi#z=#4opz3I27s!~*Hu1}gZ zVxzosCvfU=tuQ*GlnmeYp_>Z-QmY~h6v6GY6`%|~TADzAi|dlcy+ksR>y9s7-2;*l z?+Q@-657}0(CwPnzT@r{{C;)8{tL)>>&WffU9dphDYRK&1IX;E$=x=)WTf-v>Nvf& z>Y`F&9@%nJBkT>~A9ebh5p@NLu{RU})MBrMR>n`BW8e+s+$v$PX=SV1*IuMDImq z3h_+cLz7D*LC|lE)*pWWmAhEpgX8M%?2#a7(>-y4|F!uNHFIEMD<;^Su<+ysf~in+ zJ-A|9+#@X__)_+nY$fN}lL5#-P$kl%f<(pq^1Ahp@wbD+l3l2u1_h&$&j0fh4I*zC7SuFWi${`>lluat)-3+<5 zTp9bVka5z_3R7AJZin9+G>7<-)J9H$aDm&z8xjQ@@H`{u#OiyotpYMln2m8>3uxl$ zr?BZ|VAVJag?A$X0~+<86WcX?HnNuo9B?)oz*GmWp%iI}RHd~=81r`ZBt+?{-ej&y zMaZ7QmpbB17cP9*@?(ISm`(B|+{Ktb#>s8^e`8i`s&|`1eU+u&i$6fYOvqIhG8Liu z#YS!u;6El2agv84T7(6E6k6l&FGR|eoPE>oD0?~(vruRml;%Dp5hu=!h>YjQQcSSJ z%IbIh*?{Xu{2MjsC>v5+?M&Aj40|oqYZzq3*CUkMnBtt_ee4!y=V4i zlE@Ciy%ck#-M9ya@hkV;Dsj2< zN*F0>Mxw_vaIgX{=)`#O_jFnFSkgl`0g`LpezfjzuWTO?-lb@3CvkK{x{b1LlJ%rk ztznN_QSRkqa??#i^RKg8*+%r7_|Rf)_gZc%9R&Rro7D+C+(R6nUa(g=m4AR2b@=?K zE=K9V0z`9$qhZ=R!9+ZzJIr9pacfW4>WF(T7eUa?NGDGPvHC|yjP`y5KV!Ze-l>9k z{l4rcLgRH_4JzV&v=G{cWhdIT1K799%vOha9(E zUVNh8wt;urX^uI(v)pVLF=SWYwv!{~h7bmUKe)IJMq1xkl824Rj|t{4>oOK?sd~J? zL7w4&{P=vd9Ixmd(&qa_Em1J?2PWwvv|$+)od7G@Fp26UDIH1dHb2;AWTI_Z?x5qq zPh8BxtJM9bHPn6bCcO2`&cF!=ef~&myD--kHDkunv=JM2QIeH&&dTUomC8bdwZC{umCKGX%Q`SnY2VK z5mU!xlFr1#2ab^?*@0i>&$&AbcZ*5_ZA8Vkd7GoYdBhyL5h+^Tdxj#K1SUW}^aE!r zj_3KJWsFZ3Oj?72>WOs?Q!g7|hRf31B8#3gb{(-(7a6-w;XM#Sb4;4OL#eT87U;xy z_RbhAI^Nf~cdu(Mce-*GhJ(vzAgn06Bt~CPMr?cMsTa)SahBw*P5mV(ZFQ6W+10Zb zAxp-`;(aguIYLxZAAO#0?L9!LQg{3!ZH1DDW1a|7-y;n{R(%-4PMzEOS7Oe=hHrB# zuKSC(N47OQ_2O-7Chcp*>vn839r^3^sitn9UAGpPmgc-NHl+Qi3OQcN+kRq!e$K{2 zCdL&1@c!|qkOV7gTeJAb>WE%Z(8jv*X~iYpvjS#J@MKB*{jdgifFvStr==(9yZwRV zhT<^6?iCo%dG3TyOwm1K{`v-a5RnP^BZFR-OCzM$q-cjHS=-X7JJh|>5m#k&O?%I} zZ~oR3^&xoqrXWHK+n>5Td*|3=#%HPpitw?6Qj=@0Lle~qIqWnOo90D~oH3K@j!{|C zp9A(|0efIU_gAWKSFGT`XSfC52(%L{j2nH)n<+DWsog^PJ$kRPl=>h)nK^?U#hc90 zPT+Vo2joMCDz*ucqy5`hJSXG(<1z8|^yjuHzae`Hwjt(xAIKP%@vs2n^#H#gc^g&}`mI>* zgd&%!dR_J+#PdQN+A4*aK6j?v_@YC-jt{O~a?!IY!dTx|sB{_I5{yaL?p9<_DB4pG zd_y*j)EkuE5v)QUr%%a9GlSLVxh==hW+8v!P-%t~$9!W3PZ!9Afp* zC$x;(__IPddk;hb_?v~`1v`d6f@%5W_(ySjm>8EC0x0)%7CmW?gqGbBI%%H<>+@hw zkS(;Q{1%Zg5j%3d`|M15gDtj<(7PC(;GEEENGf7T4$1*0{N?}JDn>IAcOZM@`z%09 z@hSW58|e+V{)-_|c6U_uTIwjLpffC{2m9J9?8`VRTJtYhpHZ?V~xqkqH&? zBY3;dlxTmkV(&Ov?vVFdCD+eCWuM24cqROW{@SWYQxSLYwELH~!#5^WDb}7i!7AiB zUbt{1sQSel_(D%Q%K$GI@I4jQCkC;G>T1$rXfhc_1mwuzi7nV6e*)gKJ%BCL_Tv~LNa`2;s?y z3TEi)!x+}ks)e8X4|pa1B%T;{`6ldeUHah7^bafw0{iadB^KImYUN&tDW@8jMRvX; zL`pKSx7%i4+9E_&EKa&th?!;tQW?K-?AE}DMpLsJKV)4Zl;CJSLm?BHq~^xpl(IV( z`WnY`tNl>pmRl|^GszitGFQ_ckDwh%QU1zvs*VMoC}B4lw0fvPL-A5lztH`a84uLu z=g1>~2L#Q){57^W-$(Icd%`psZh)RFyJ!L}?UB@*Rw-{?F>b5WSD<2_R})0(stvhf z$5P2M7EojK)c789BS)j+j5}~739=C5--IfRW)1KL|7{j-bYxi*({is2@;ovhs*mNb zuLfd2p*W7ucnisxy(HOI{NNUks5EXKqirHo112X?ER4XnFsYsAgXd~JE}D^@T`O7>EJbeL74Grf{n-bjOY)N;?p^^2$qrbJSoNee*F*J&n_gVO9A(+!4VV3&{R559f0fxs=Nx-G> zjf-Y;hlbsjSX6mNX-_g>gJK*ZapUnmV*_m+)HHE@6~3RZkDUchCV-7dY7_TCiTo6?l79$N z5s9yj!GNesN*nv?JhZ?5^*#vYSh8;U@7lIxS^d0D-NTfQ4jp@z(eV#9b>G7W$pNC# zLQ`PfP6Qh*`Y-3RwFAGZ%*5jlXchp>2) zsA$QKll(UI=5kbPo^Een==R{m=9i;R%dlZNIL@O;X)DR>zj7z)CGp2N2ge%#_x%zM zZ(4@bfYaac=|KE{mZO;5GHTf@d503>T^>(5zAom@^G1E02qg(>MDFQim&3MHXzD5J z8F&~?9j}@fO;H0LXC)5lG+9ONbP8|srEm55(`TGiczOPF8 zb?j4w1Bk0xIqRK~$uth8m;~+aoEBfl(&u(kGC6E`ye|{wGx98N+<8`{8$hQH(H%xv zjsAFJ-8KZyh~&(gMrXUl5J9f9GLi1{<7jklaz+|W=PjkrQvJtOt>1wJ*9geb?%(rW zRT(V^k87_D5U)|gOiAK+v2e8_C?IY>A;AU^92XWiH7E{@L4+5Jxi1n_sd35=p8{lb5p5Fpchs8MVkD~~&xMTAioWO`*>FvgxLOz0s7vQGhC7~dsX8@} z2sf-!bsvtYu%q1LEQacmLK^qN}!{ceU}}VO3^f z-6HR=l9>bh!?IECaUa0Wu#+Wr1jw}gd44rCj-_AOhSA}qcuv28Lp~YDarf-U^xYK5 z*+-uuRfF#321XFL)qi`ok*hoDqWC4a$N&m+!Xz+YpfU-EkYl9sx@T0hzu{cx`hPwi z4N5YL@dYXk)(8Qwt`F~1c$TCIaciBv)*}E)ykXRvlGyN; zTDe9`M}Gm2P>nfN?W}$}THspH#Db^(Kx$sc2YGHbr`w(=Y097s97UA z60)96Dds|j<*|#E#K(ArN7(4Q;c?tI*F$J&rV%#aDXTDJBIcQnFcmK>f5(22>DAf- z`?;xv=W49p@Upoq)F?IC0K=64_3}xx!TLzb65|M-3(S=(TI=T?MMs$dEA0S7vIQCC z%8Z_~7)+=hA^Q3hnu){)5Yt~<62Dn4d68I`^bP`dQbD9p$hHN9 zS4B&-pHd7m!E|R*#1I|$kcYwM{(y;^6Xre zS0D9ft@&;X7W;E6ddnH~E#+163s=MpaWZk)71B^CQoXlKW%h+l42{AmFUcyIC_B}h zJ0rV{&$fvBoF!8PU4IlfmeDM~Q`U;@Vw|lzo1D0d>|kw$hYXc@L22lTF{~{!Om-Up zN2u>$$w{g5zG1V_De;2;EJ=v%kEVnTX*ISef>ul2J zA;yBIXq4dAZn&xG9&byK*>k=Wbw#rxw9WcDsxg4zE;+QJd@AGsFtzES1#g+^JaB<- z%uMB)h8Hq;_|=O~zXLN$JK9HSpnKjA^j?hy;B?EkexdKpnRSm?dPNuF&Fn-!TN@mt z-)F38d_qi|JgsdE!=4_v;Qo|hrW2)Vm~(smz}hZ?a`b0MvnlfsljGrYX2K#`9XON- zX*b6PF-9i*=GKaPDrdX&5RDvB4)yOHG=hmg$=Rk!QGvW`eI1T};Exu|$_R3lfwt+$ z0a5KNe|a1of2D>Gt8ZNm84cZB)(_u^_N54W=mf$Ust(k^KX5#7w*Ne*q2)(O**J%B zcthD>8s;9=XM7vq{3(oWywUbsysMpo-k9940`rF=b0kcA=Hw?G+>5 zPEZc|f0xfvB1~XH-3;t--txx4W-0$QadfFa$5eUF=zn$4{x;j28t_7}sFaroY9tjk`>hj;qAs8CMGuclC{}7N1dZ`mx>T-{r&!74PO$eD5lb&e z7-0poR2<=QE8Cx6{+|OOfmy;x+hzV}vG5XNv^Z!*Mq;_|7furCI9_LO;{kx)5$T|F z_Hi_ApJZureG{)Z#idtdVCS#Je%#51glC4i_OY7HUpAs)aD2o-#6_80y8?5VGM8y5 z?4;pe%nm43?eTH?i@}75zp;ZInH2p5R$HQyL80DBgi=DvhQthrbQ z%7MB$;19!=@<(;4+uHIea~6!F5+o6=-- z^;@j4MUa{&HBJO@+j!kKJ6MqzUnfUB*y871_gjQ;q&+Z3y()T1a2$VxZ@{?SiRkM@ z@tsH9eIDub{DmHrVjZfS^_}xAm_0VuweJrOt}$y~Dg340*)OjsTO?n7Iz;BI>sEHa z{asphgi*(_PJoB!7VUR5lL&fvI%|89;mqFI zOdel#9(QZM&Nxp$zkh14@p+B>LX2;Q)AgDAG~W1`Y}$Bbnj8w1?LgJl5M=r3!&OzN z2n&yfR5LOa69HFIRgmdjKfGh_RBjLRWW*!9zLi_6g}47k`k~wn{%C%%mqeM(IB*!- zlQT7w#|EpE;Z@7HJ*_4kiSb^>tNxgp{_I5Nu^b!O+>7>;kGy5qic9Thtq{(@Kvx&{ zKYHuKDIVV@*#y3=I=TND;Z;pc!@0StXPefn>xu00m-7H{=>+ugjim)6b=>QFWMLEkNV+-)D)Cm6KqEh+Z6>duNIn6;Zj+c?S z5+9qkcAPy6)v>fElc+&}mr+Ga;~;2YEh6!>$E8AKB_t23+D17h&Y~$GN8fY)n z1|JqsubCND)@l~h8-}GJo%8}3p~pte@-rBT%?uX^n}*h)?_iDVT;>_H{M*<3Z`XM3 z=(76_YfahD30Z?{H1I_m*M7hm=&(hiU^xf)WE(lAITtt3RBQ^=vr3yGYAq^;#nxb1 z#dEgl*K-XUbg>asWI4EH;5?s`yH-xY2P!+xB+(sLE=cSH8+1(5?w$xF{7a}g?PvcGt$@m6*Xc(W zL;tg-tY%!9d>#gAR~c4GYkTVV_^YQH>Wny~+a@X+kBUUcFRZ_P^8tQtI|}}-sBwD7 zC+8^hZ3~@Gy?Obu@FZeD-v+K z7N6EE4LMhr8GJD^a{}0>qw%_x%k&QB=M~p2FodM%i7|eK)_~1kPD>q3v^yU59545c z?WpFffCkb;Y8g^Vvw}H<`-D&s|_f9t`Dw`exkOQ6NiuP0`7Ut$aARNm#OkS08K8?{aeK2b* zc;4f}^DoZ}wlVIo@u$(2t!q@MVE z-w86Bsj?k=2CaJgVs$YzGWz*>n>4f2+Rmg`i(^6vKS?T@Di^w7Kx;lq+)>o3wxN|< zqi76axPD5N6IVc*l+iWXqfRYM4skGM@7mZ#c_3Q>a0h8FW^QRNcWj?O zz~~ZCF$4ET3UbxaFg3^UC7&HmjH{rRJ=Wl?8M70=)_N1hU6uH4jNoqEK3i2IVLQpg z^gEzYR{Asfh2xeh@P{yZXQWC#KTsYS1JZtq(WiOVW@tbC0?`yal?Gt^~lhY6{rs|=%E?6m^ zwx^#67#`!GgpeoLxGkFe5q#;xe-yt1!@q*!5iAJ)`4H0-ajtIqjn9w0GEojkYwnaS zn+r&)h0bV6!HB9n)09PZ6QI!tz*TP~&Vk1^Q`_>7pw){}4n$yG*62fQ>kXvlnhiim zMY(2Wx=ZpPv6+kxE$N0X8-*5Nu3MWjFw|57PO69v@+~Tur^xh*5fwZwQjF1mS<2N$p(RqI*(e3l8t0g77E$Yjfh~eL+x7!DSC#LEC5W-rf)wm$4~oCg(P|3=6hkHaM5N#j1@=|Dvlc|6f>?PVzDZij4_^Amm{Q!JznTMg zB;zNd|H##`iXWvGinMXs`cgI=IZ~(y@WkuRMTE{7k4C$14qTev<(l!2$fEbt>v=+u zImhIwQOKC#Qry(0dS=hfB9!GDSaRHoloVm>$hQ?bm_1DuJ-wcMVtXD#*%*%B`(Rk5nTD;Y+Aif71_uEj=kX zLh6G8ZIzL63IIXd*H;Ag&oHbuaWYVXxuYAVv^elvF!A~&+J^F%)>O=MYlT{1$zLta z8Z!O4uBKFky|6_OQsIWbnis^~&Sfz9WPH_E+|}`eRRNOhcWu)6Nxlg$_W@2BFD>1^ z5ickKFIdWdm8^($h>$cDw?Bn}DkP&wr`_{3h$>E($=*1~ISl$pGHpZrfFa-spkV>C zJJheye@}OkduP7>xxE?&OUrQtTJ!2<^fYlxq3${Y;N=Dhvo(9|{OyDoh`Nm*g&&m|=fppfqvKRwCc6Yv* zy2%s2uTfk6L7pILOc+dHU$X6gYt(@^s-+gU_ho3pWP;tsq6oEg8mDEI<@9|nlOKDn zd}_Y9jXh_>kS*uEotwP~8LeevaiP+N@R#1-v)D2Ii*XvdT{Poa-qV-iQAE5sQQrQJ z{kWJ#?>ju#8q7Yu!=9Y~!Jg>{{0B`3j{*}-D+}v9K(tQiXCP}ByxI{g?j$N!vR5xY zTbgP<+oHF{8yejqT)@Io)Tu3Mp^fE9Br&Oj*Sw4)Z562__f8af>+5V+?mO%mY6k3n zhdtxDx0j>h_(b#B%ykvIab+8kF*Tx-XLTl6yvDUKlzUxpp!c(MvRDqI*rOw^Q#dm& z_j8KOfY&jJKpEW>8|Rk8lo#{)YJg#rmAP9Fxj`sXs?BPsl8s)aE z%@ihH7_sF^?n2Mz0BMI&m|-nUysI_9kJ$prYlp6-u^%A03Qjk-iWxu~=BXwz*;&V` z;S`Svt?@gQ8d1j}_@=#lb;@Nhu>^^I2Mb)_n+IQ0y2fW-a;|giN&b;bq;=~}NG&=g z@pt4C=(jgR=>oJl^3d2KfRce84wj7v|`i;ag;@5jN&97L_!lYK?Dy{#+~&urV|0haq9X zg08&Y0ng#D2K5KpZvlQ!PRq99-az1VXTk2-->hH9PBV&l4-pAta7QZ!n8XBBPOSLRD%Z<23#3si2CW8<*jVwhrm*c?dQbXv`nsR2FSfc=NeZvpbH5gRScc@q%qFvQQuT z56@F+wh)%ajs2H6Rw!y*4}qUkOp`2@#f2F`d3KzWp~(IR*g~$(?N6!wkP%W1e5ukp zD>l-dtG{=(7&dfy6B~I!0=I|u||Db}v5WQ;x>aOD;3R)I=rv{Pwl?=XM|jVK4R~yf>PmNS>bFC9iJA?_!;{YYMef8yz0MRCt%NRAGW| zx_=rpgTbDDP4!D;0?e z1bp zZ(?sUUC_1m*FzUvc-4RM9=?li^cSj`yF^@9xoS{*LTQaGu@R*OYb)GwCPZ-u=h&&O zPEG<5`{ikMMNb1cPHfH9&Ud4uS{%uO9!Z#^(i|X0E>Z3JK~us)pPTOCGvy%Nv`5zt zN`9PW^>IA&`@o{GO~M83k>7GGcLY>ymfU0o3HnAJ;~FUYNnRA1NvZ*0)xww;yyL0) zvHpWT(>dG4hqToU^QcRAzzG!pB$t@BM;*KRI`3?7{{?bdFP0TI%j7JR6TlMqXg<0M zxc&!z4ytEw4;e|{n(2!FO?-R@KNUj%13%;8pW(e>6t}!+F*AcA&hH^t-+J!DFYvL- z6W+#m$T}5FHtLF{jW^KaaHKEl@E-!KSRXv~qQ8l6jwpk_W1l~mBmwWZCs;c^W+%$P zE&c=0*e+Z8f}_tx5YF>jns{nqLh6A0uMVNl8kaLMVY^xacH7KBUptLQ*R^)PbL%ME z3zBb%yP@!SMP=J)fz4YG*QHw`HWSS{)Af*sB`IYw)#XM6&b-Psr;b(jp2l=5a)XJ$ z8|NnSYshM}JdPPZ+d8d|=ZEJz`lZNm_7pFdJ zuNrGWLGj*oc4;VSZ=LkD>Zc+-lYlU)0!kG}PqE?L0hGsXp=~tH!W(zLVDcGJT^AtX z3tO(l8N^^7ve`&+-!qb=F6CH^Ox*qdg`EmR`6! zJ4jXoS>k;B>khx*@A?K`yzg$cXxw*o*(-T-x_dtA2yhm>zD_O^yk>c(n`lk4FxX+Z zqK7Qs$@t+R{V+kXHG-M>8)Mva=$@p{&BxE4g<;J^qF&siy6;9WoK-D6B^m31CG%Pv z3wYUK~_+K+$qRO6$a)wC;!(S|xXN zkw-v@>a#VD@hX9a0w|GFemW|y4$-2f@z<#%D^*dm`stm6a7+}oGt`zy6!9Io^KFx%K)eX zjI$C~64n?H3l+pX%3MEk-(>FCQY0|v7P!TRSdmtLXwMwr{Fp)g8xgn13VTJseuDOl z6X=rDc$oUs9Z4321_*_U!}%(e!K_Yy=7BgYJFvEG+r|8=B=cn6XQ4K2&-<21m?w-S zhzB_r9h=o*rZne{_H<<5%y$osjDeO5|ODnRua zEZwzw##P&L-P+$8UroO^ej9$AGU>HXnZ4^fDk4k3mB@&ye6txgv#V?+H(aPQ`va8u z8p3r`PNm1kZ99dWk-reNLL5Ru!}dlZH}7NDT70RX^uz!5wH&Yu&lz=lKA<`oY>zk< zTVJsGTBZ5prA^epwcz;kb}S8r%sp_yFadVdB$hGHTg2!}XSz|2E%Mc+nMLgZ@lJ4& zahe;Sp3(|W3ZK^qpm|8t!%-Rsf&z-+ph^Fxg$WVRR8^e4EKV)Q!~!A5Ea|)kO`&j? zjQe)4>PAShDehnK`3L-DMi7I^rC!C+-ocQ`(@rhdfo5YLHw}Z3hq1z-R+EcBU2r6m zvPS-9Hr4e7i)#oz_Kn?ci_;M_XbO@2OAJ+6NznHk4E}7|Ai&}Nj~6P2-Xq}u#e!1M)dK3wd24aa`6*xbkv1@v6I=06<10fKa8jeex%=X; zIl*R#LyCGH^?gKLt=FYVwHn6oZ1Ga4ItgAKPtCKDEZBQ8q8e3z3){_mSDr(}lQ>G${IrCE{4W`?ChS`%;Df+&WQ6%3B;7+%kpD9o z8f%T*em7Zzh~J3gt-%Sog7{EC3h(`=IU5&`{K2u#UV!*8q4m}upg;fvBSrvq!hlnO zPVrz+Yl3n)5kAy9D!!0^s0A_S%(cIl-1P3u0vE^#9|pQcc6RVz@mLGy&>!l+HJpET zsef=j5-S_(V8Eq6+-?9z0N4D;rfkst0)9{YpMHb73Ao!o>BLv?(vMa(_dlhtBU(dY^e@Ft91)|J7-D z*LnFjJc^4@Hvjx=KZC0I7wLc}RA3K07+5sFS>;Zs(U7+)QQf3Vt49pdT5&}&C+T?^mYJhPDT!Me- zJ-Gmo|5+fq0q+0tpgjPJ|9DznfPF-`|8@tG1#7X7gHC<{ctAfw01Ut~x0YMGFOS-k z?c}}}Fb_Eq&bq(*3*pjE%-p_b9;BpX*l%=r0~~%lF~U>xQa>&Vr;voWpp(m1ALuds znmFHIKcf$i!cwRN4V-d>pGV-zKnh?Y>Sn8%uq#rM z3T(wE^WQ2-@)KUG?cXQXB;2QDH)JZ6EKmVnEvCe)vR*mgGkTqB@H21|JINLhv>pCSFEC~M0tFX&;^HD2s zVv>7{jgTCuC-09v6&ix1ER-aZsvqQ3z;~rIkoq$yI^2?V)leqFc&(LV!nGC~uV^lN z(BP0B(=@0|!7}g>?^6iw)=%fb%F3s;*qi??b{Be zztMeDa#vD{=~e0r9nVWWL2xb|5In;WEyISyS1Q+02HP{_Lv8XXc2>FnMPt2Ayyd~@ zwEA1T)Nc!2D@U20?9?LkRlPLct;g=$kZ0@q9Zcmq756#)K759HH<(4E%t1d7{DK2P z<$RdDk42;3zW+D-uD!eUpSHl>Ktr`mp9hg4@0ZB&7wLoFf%3nLHuEEwe$Res;I-Q+ zznz_`=O2}rzK8t3qx`x!FER~M*anb-I@18ypmISNSdip802w$_SQb5792t}Qr`|Ub zLneeew{9}-ye5q$rJ7IGjVkt;z6<7|i-`F5n^Y?w676phtUFfcgG}eMK<@3ZXmQd6o-LW)u@|49>XgCK zrU6vMBnUSFwM`)Jg?DMUMPbG@E{aKce^>a0o>)-fFDZ&KaM7wcLeD~zu`go-yhn&A zAav73#7JID{#1Mk32Rr&(kkNT7X*wZrG&zO)}15}rKb);Kn3_GT2)O`-CFlyB4jBCgTf7W!$X~%Upg#Eqa z=Drc=CeZC=YRWN^N)4g&7=&xa$x!Hs+Vsgsr|tr-N!id5pP_kmLbrD9q4_#`v>wrr zI>VuBx<&9vkF8dmjeNB(-A)GIwPKsVy|N^#c+VI^dgK4T()j1b8QWG|F`bs11+30O z>X49W;Su2QfT+@Wn#N9}&ureKnsUiuMr?FP9KK=8+=kag`_?$^czMyoNO!7b zMcgJ-KbJ`n)la!fpPFNM`ubw~vF?Gjdv^p_KX- z0kCw{VBtdrAnRK9(<>@afW?}aS5*VLm=*8Jo;LZ+x&OGt_wdXDn zfbZY?{bOfKQD>ZT@;p%HL_^$17Kf~0xCoU6+pDh*_??s$Sb3$3&piLnY+=h}u6On$ zX%T>(4XQAbKZmqS%Spyy>AbbIUnFo>m%U<9haf38{|-vJ$ZBI>b8gbT;3&H?gzgL= z{CmT)$5j&xr8}+V<(<44AD?KtFzo!iIK+=ho`SFDTbVzKB*p_j1HPnMjnR`umI=m+ z9Wyg4#u&o23Cx-%g?n3u?2JFGoI4fZ^+GJ%_Z4_hvws}aCzsebl)e+eAr)4@gPP=@ zgW4i5fAuJif39xp+tv=k4?v8AMy8cbP%f7<^17atU1Z8?|RA?VbGHmOR36zc92w$TBoN zfY?5uGW;pHKJ5!i@_N9{c}boShg}gRdEiDdp0}MF~sZIAAMh2Aq)eI?HhZ4Jd0?QN?>>n`PfAq7_jf7 z2xJ#jab=PRe3mgBCbCeRUC57-WQo0g>D39fPZgHUMkM7A6CIXjw6;}6=CL$H9qTAr{IqLwh z?_(LG>VwbirvYOSV#9f2yAHtctl38KSvYG3_I*e8c7TvWKZ(7L*p~61Pw&ym}C1Hxbk|M^@P zfD}SXjL@>nKaHuyB}sY>#1 zI@yv=CgkDh(iHS^z`)U}+KAFjqb3r}SR-iG4JN1+21a1R02Wvh*u#FZ9w5E7K|@q1 zkbaZM>_n67^OqE}VCpZz_U7Z-Ppo-BE&LuIYV08(@SWcp(7UZ1KjGqr(NyP=md`cY zGKX4D0MXaUhDwZ7qMXZIQfV24^MiH*TPv7&7A8EAGWR9(&!FJp*%vaLp1|86rs5kO zv}3l@Whz#+18cT$dRtUOzpUdF6q#$JjgUgg908O%Z{)!!;)Mhiv9P8Hr!)qUOoEBe zudcWOz6M=cfJpLa8>420<%mj*s`=61;9BNw&+zW#ub`UCk-g3pcIX;9XGOnNbQZ}N zl>XQn*(Z!+H6wyOB6CVt#Prn0!FPXYrD9#CU*(uqUnTa2{;}To3LT5%)i7D@EAI3< zQZn{=XO|Je*ACAa+TIkE{94!3Xq#{wxe5cXK$#r_l8`ryj5Xu-^?!~U*?{+s4q)|B z`ltF3mI3R;iv6q*5`R{+^jRhw*q6XmXDfmkHKWZcm~u67VIp#L6sikc%Xxe43kV<7 zlu3~wXRl4rN2>l)6!e5o)Tw*~ljGc$7M5Lp@7L(v#O|UgO4TG0bwMzqNttvb`(~7S zlgXSk_~fb?w?86TT!z>Ua#(sVa&89L1nTuQe63D8 zvSGGZw7Pr$Ek4BQ7HAAGLEPhET)dm`0nyLDFrtz%lb?8N{#2}43Hq`2*)O*STc&Hk_Q*U&%T4@ zvAS(-&#G@d`{lFJNySh>?WCOW_LWPO__}&Km6-4z`7(F+v75)rFzs|(7_CwBagFJS zWWoI#WbM7A+Qw6+jTx;PXtrta>EI-d?KY3bW(Rs6@QN@Pbn>MK{pUvTS>DbJWBD+p zfHG|!pb(bvP-L|qV;XGnK3#V)-$5wtoa6ji3jTo)@kYwq|9?)G^;b%a75q=1;6>6V zS0M1x9Mgao1;z?+NPrKtFPi$b<9t@e`NUKp9vRYvBc%`&5fPGdk|TI>02x^D51tIy zq`(om?2Hgoek3<1evNjGD-E$Zbi@>p$S9oYdGRIvg=lp4^|tC}f{I?4KNZh+cr5|G zU9Yyu53Q{R9o~24$LjO2HTY|Hc%QNvdKHk2RC}s}LD51|_5jrs3+1buGVwJW9&f-u z?vjM6#LG8#>Imv**<-YjJzz4tFrSaL+xkvz8{22gQAZenO2Zdp zE+Q;Nr3vMt4ge|9!xeNAk@#=OG_37myk=^oi}k4%nwNThu7_hTOIFnq1~P*9&o?|M z={3%pUl)uHh43Mm8`2go%5(Q%T1H>@Inh~=!v-dCOdQYY3J2#8zwXHXnGail4(=I5 zMVK|_iV>O;Q8&1O?Ty$@CQ2yjr3xV%9KUOYs-Z(8as|Nuuo9Hf;V@6t_`($Sn7gp- zYiCiqXPgJYeXH|4V}6$*9ABdltOw>-UDEjEj_9{Bng9*vWhH8JGhZ#|p>K2Jz|Iv) z6iTo7WX+ld<yO{2Pl*RsH?mpy#DcO zkLb`pP@(7Rq2#gI6F;eOb;WLvOe<(XsPi-jR!Wmcer;Y=-@g@CC=Jv>KX$$Bb`IHH z93}x64wtg0Z&0K)O=~IjMKeSljQ0+k9vk2v2lm$>-#PaU?XED0>I6iteCq=rk4$zP zv8?T6S|Cf&^d z5Qz+z6hFV|u`3d-o8^!{U>9(r-YguByG0S=l!H{s+755_tL3*5O4NcO?<5#XO%D&? zeRL@>K#*t)%4_D2vp%h8i}FFvf|CP}$RZO!kptbKV@7fk{t*{9+p+#O8P}~D-ky`Q zPty);JRS;rKtG1myfe9>EOvp4RVvPwNTFF2r9(2@XG?&jmG9XOB?o692XSnN_~E3s zWi4R@Zlj#Y_6@C8y(J+umN#;;RX5e2-2lNrXJT!Pt>wrSb-Qo3FyQY`Ks zP~-n>DijRd;&olbmNX&hb3dBGgX9f0o;<$P!?Q){%U#$Ck-a*M7r#~I z-W#2CkmlwI{w5VHQn9!jgWw#4!2IMdA1>Iqv$A{ThQDsaq99!yLzmJ6_`L;SM0WId za|@VDn)Hs6d$U;5a3v@MSMXH5zKcV+==CwHQYSVnt3x5KYDRTUF6lbC6euhY(b>0V zvAYDt7ckTM+=IcX)+R#HpdKDiI;D*!9&)(*-jIVa$>;+4$AEE&UExuTa4b&bk2-#r}DDO9yC_c{;H(1ZYfWRBs)nDDoc`T@jCwQ#zOu?C>M=a zDCd_NUNBAMV|g0um%h}w%UMrm!)PLi|FZLm=TqcyZ-BBX*k=j149i$#U1eOFeXw98 z=Qeam#JtV^!1R%NMB#Km`h4i*g^6pfnOk~XU!usE8BfXen(wA#jPc`QC}Ql+{Fj2j z7CUCSpOS7_XORkckr^~`=l8>^+3B$vyXVZ3Lrzk4WwDDASgRbhV>K{ghn{fS8e=*_ z_ok$Z!snlo*~#AR813x*i%{o?%g}ZsS9rc_>#Blk@vYNDm$0nqwC! z8m1+oud(x22cn~HvbnG=>u|=4{l=|dVm+SZvnzJ^=#s1_Dx%B1T-WSnl`Loe>{Yd$ z-&y{4nVJkvR;N1y+-t}?n?O6vXK~4iMwv;v(G%Vm6bESW;H1v(qjml9EQ~^5%XRyK zifLLL_7%;}l|O%O+eo2tV{O>fCB|Bj%0HToFI+YAx4teei=W$Eh??GSJBwnjD?N)a zk}WGri^1LeWj>1KA0ot+ucxV$`ZO9IS)r;qhZd?8XZOQp02*(pHQte#Y^`8gtre=m z^3&>B?h@3X9E%{D=hk00Y?Qz2Cw_Iqy224)30YHsH_qU?p61kVcE?D zHQW4MtsS3yiDjti>a0Ag;=1}ys2GUqMiQZ3cP`20oQF(NF1_1@2XNimp&g1lj!d4n zo(vSL;?qPKDm~rbDhp;>p!%W|BXWmgHVSsCniEr&0QgK)Y`Ri`i3>KKRj1#$PRNGM zJR)bqGP&2zc-8|`G>b-#Mq^-cS}wPu#D>z-3J8}wq-*MLnH7F*dSIxIG=J2>I_aGTR zEY@0?=!IyI9kTdIQ01%augshQkqk&35e#?qUyy!ym)W}*JkVZeBpQDQU>dyS$aQ1* zN)Pb!bjH*W#l#U(hNpyT_{45av(w+Uu7>TA05EGq-)3y{4!7N&p6NhHtA`QM10dS6xWq%t<@uWPSYMe;tPv;;)>>i za~`8hD4)1t>)YOtZWd=t+3d2fwguJHvTsL?`!Eva8)}!zl_8IREF|)eI8}ii8l%v$ zld@E|rGAPf&O;_dWjW@Ov%!I{Qaof37=V==jVZQ2oOQ@mryiSK<&96RST8vKk`kDP z`+{$u-~r!~>EBQ`!B7*vTuI^swm(;Hv->vY^FZLwT-9oK!9S57=$SS;nYoG$75)*g z`kKMxhx840_f#KNXWoEv4l0Y`v{$$rLX+qV+EeT3QFMAxIc%)#)r65AJeM|?+cY2; z_CP_A$@#r+F|ze=W3H*0nuu{Mi_IM4SAeLW_$R$p-c zPJJY+28%=r7T0OT+k>DkMyYaLsiW;n1yXx$-;yi!xAub5@0nOqlz{f1ovwak#fust z$2tVn2OAFwB+b~d?s{SKToe@a^eP`2ewHt*0l6@Ywev_^iN^JqRL@m z*?O9^^Jy-;1Wq!8m?;lU3b;a*%Xk9fOSL!IKPwN&7W~1l`nth*N6&Rq5tR z(VqmbEVa22@ibJ4C>DIaf>k|-A+*MN+3$%3BABvZUU6hRQF`k}%2ktuOfdSwz?+$v zh>i@j0H%gE_T>Bk%M~q3VoI29{z zp*XI0cZ+%Z>^vgJPkjKtVAmQLG{PlrbysACpHtV}11oSzqO;er>t+>#9%du03%pvi zwykR;s10bNCl6^3O*AT3@U%yDzJOW(3G^n_NIO#!%3UL~p&+9#jEq3!BEb2D-?o3m zBrb7UUDDUY=CwAB%;4a~(>+^7n}a|&%=bi*L0hUbh2HQ6^PLvJe%w1$kMoo%Rb+P3 z=tj0etbZg$hOmj;Qyy{33wx_p2a<2N&?|a~+mUo!TQ1-PFf#t#4bwsJ0Q1IDdV`~F zyMpG`Givd>N6ktV^zAFuYrLrFH96w|&oz3Bz;QDofgwD0TK#xs?BrE#7{Xz%_0ZL+ z>*H6P9;L{h+`tn+Ah> z=iSE5z$t!&mb!s+@tsag+BJ7f^Nc;HFZ%TjJtYKh0nmg!EU^mhZFx5xM+QS3OLG$v z!za%du!+U~Su%!XL1*^{8|22M=i41+Kl%*H3c9d&<5(_0?Fy>5dxs*IEk5*FtF4rT zp@WS4DBY->L?xFy|C9O^n$_-=vNS0<3mgbM*r&#zcZMMEpm+CCTfwl0@q7IWzYXhn z?Xz$VAKX>@pNica^=np*zcgO5=R1jXJ2%)ix|)_5w+JoT@XuLS1hvl=G<<62?SC#q zR^20Nte|=WGVBa1auB>MUN9dEm)=&a0S(KXmG|fsuLIVI8Fq?7Z}ogabwTT^V3Mhm zhxh@7ec$5zVO)K%l1k;9oN&Y7p0O{%l93Fa`JvRFb70&L<$L9W$)qTMKX-q6&Vj}* z$n88%D!qj6;&yvK4577heoGZ>#fH#44eh-1Yoq`tYDR%1liE$%_W ztIi(a0Os+k4KV6ec%*|>4wReKYLYiV$KGOJ(ra|nl(a&0B7|8mtb{249j*}_7;*TZd{JVHBXdl+8xu%% zu&NxlTtQ=8;bXb5o>0;Z5z%K7DOPfk4yZ^8K+^a?$__{5*Zou6qV|3o*&q}f_7QJ* zVTj;Ys$123p->g{QN+HbAtDeZ@*lS+GiD^eNl7gH1nx#28`v8bIFqv-mJpg$9uSV# z8}ZNM+&BkX5&K&al^>9g1zPb5qJ{Hfg!}5wXY0;c>(1?uJEhjre)i>Jg=(5kb<~{; z0FEhCA8J;FAMR=6iwpX4=UgDmja^yj(0#%Z&p2)U8VCH~OJY(9 z^Uim7W~oj0hAerW9_2>4o}4@=2|Y?;0BM8|Y^E2ZMIlAE_~`_LaM0LV+}@A~2&A~r z>j+R_*dtKdD8`16U_oZAy;zZsv~8tKaeEZ#R_l=%O!}W^Rj<&XecP}pHD|mP}MxEqt4r&fSuAAO{18k5uUT&Yz5%y#k0KT@HtY1z}!G zwIl+n1-V<_id>(hlP5gccz5bfV}|Nj2_`2zO_mV!6y7wiH6|;c`xb?2@>r>2h^-Oa z7sY}qO;*{RQM=B>B0J?XsJu?VR`6^wrZW3vZ+$S@%6!>U6F3M`5Sh}`zpr6lNx9($1nvDMmlmGePKD3;gR8^ zgx`}4iXV3BPyJ<4eaP@6Ax7ss;@J4d5WzF+NMRTFpB_9M{TY4$z3qfIl;fE#x|jTk zKPa_BDdOkwr<(HnC93Wp0LLE}tPL|}3Vb&y|6lJ=r2Z+%dFeq&`WmrCh0?*Ea850} zGF(4d6~{UjS0Ly~_PCDS+xRKmrFGIor6-IDQo0ov=+5HeRu(L(#r#_d?(JL`dmfFI z6WejnrF}$JF8N#fUy~-AJ0ow6*`ylQB#pVc*`lP1RogQqp?j>*IDQ4FQuosY zuzm~a9jqtL`@H@6Qkb|hOxuxryqL%uf&7yTHCG;FyeKmG>&=!qS8~vWi42y^CM;Fx zg%Jo|U}$NNb~;S7BLFEhZb>OF*@!t81f7d8b<-q@gufOo*pZ<++`JiNqVHwPcNIqc z@pJPPJJTg-X%FK!1jIneFPoUJ--OLXlZS)9nh5BTVe}1b^J&qh_I)P-ON+GGbiVRw z7O@Sh7^ruQ^#rd*cj$}VCR!!)56iNnS+&Q7^H}_`rLdy5Xa;z}4YA7;sy`#*lSRI9 zxi`2>^20i@_^QyDau2Z#OrDby%qh@Ho}%X}jO(@wv}3 z?(!r3v*u6O?f`&7SZwNnyg%3!eSrmA0VQ182+(-Zy{vl$ee8cze4Kk@@97MkJPqG+ zf$YUZp!7YG3I_nVSTzF+3_ zfp730Z$e6bdfWLzwn+2rPyFYw8P4CiGCU6-cQauJgX^?8_SvHcfUmoWIaKJ_Uk4h; zlN)Rrr%AQr1v-6&`FxK7Gt~CQ#W%uzDDBYkPejxXRyiOlC^IQQWO|G8J0}H|-=^eu z!c$F%0@aa_hm@^FQSA6uXBr9`*18fFOdo1kW@+u95gGJiDgrt6&x^WNWbNvgao09- zn!im5_nc2F^rEpx9v}m-AfG`q9ZiF+IwgKDT^5M0H-b6dFCSJFeN)^Z8DaP7Q#l{EnHO51sw}u6IcXXJQ&+Q_l`- zVphU9F*W$6QQEUOHGW{3k8XOR$e+4rk|g`PR{8wa=PD3PYvI!hcH`EcIG7nDGOgoS zW+*0xHoSEH^bAF8ViD2(0~!e2OL7NP@zHw$Fb51;$fUxhEEhZLg zP80xg+nSU_PD_!}YB>S@d&(%9NC>9#JFL{`f~nIponJ1D8k#tlZIU;eWKX9*QT`Tk zs0g4Et^7~FAAkD}ey%EU0Y(nLM&S_o{2feJXbVs15KdtDu>jNKA!7|Kj%jb0`raZ@qeb*K<9yh0w`i%a;6g%b zuSInrK#loJ$?z(Pmo$2x%0NVp$y^egq*e^FM;}-{tN4gxQIwNa6g%peR*c~c9R)IA ziF$S(j-5_n?-_dU2C4@uTL(RRs@ z(dR|=DK#hjjP6&laH=q7--Y!E)mz{)mxWcg0q=5q zyTyu%=q1y|D;FRy?^@6;FREsTauo>dYq`dg(9ylIQ{iqB*Gx@0BpBLJi{B-3Kn;6( zN+q7Y2}19KEQit;DI+FH@QdNxFm&Yec*cDFgQgcCis8C(AJvw6QMf`Fk z6#(_vs=q`Mki==k%^kwrQul>601WXveliTLaU{g+@3@5TMA+EDg?hA9jaH!K+z+Fr zkM$xLOh>2W^+heARBj4GZYu7{=i<*molf4hrx|5bsubxVmWnAIf!~&>IJZPX)T3QB zwkY2o#|E_z=k+8#v^@NztCez&7F`s-Y8o_5nj(NmN)Krrgm?|*NjaNV{Z>aHvMD0;Flk+t1l$P zP8$>QM(|Q|-u6^ia*-(GD8rHQ*v_# zhh#ACz{N;EI3HN#epub?1_0UZnfFVdJ#k_+b97A{saWpr`Uz5uQ6gp1utTgCg@N?v z0~MRc_Y!j%N&_6$GU|K0>(R1;B)?~FTZR2^H$~La0Nae@lm2~IMDC7=ep;efjXQMd zKZa%shRNLcWG>HP<43$KB^M*v{zNX%k>f{58MDYNC531suu-dLXn^muj=@p^K4OfE zWUkGIWWB)!l(v}CP8O_vuH_t;ePDHSt_=@E;}E^m`cRU;_NTe(k6@$BIV6o>o@8TK zLt>}(TVn4+Dju`whx*!_)5SD1>t&lkWQLM3%fEsCsyQJtA26Ie^U@zJ;ABtGM zI=<#3;Z$a)OoFjKi9PEtV&^g^kFz2w8==b=vk~4FD5{D^1jzcH$NzK?v?| zTGdgs2c+g#c$-Xgd)F-q8#R|S)tWvSa3WLx{1pQNTYVsMddV~sd1BqIy_L5y=Cws)_MtGBMBp6 z2?D}JvOUp>z@%c)#suE{C%6UvMIJsJ|0RlzLDeAy$5jOROYYb;58krKvY%j&6xHay zB0Vu{@?n%I?WfQtxFDXsx&zNtz@=w`%< z#e8W4Ug(u*RTfy4mUGx}BY$Buy0U?@4;Za;7{iMyceuCn6)_kx6ii!AE!|9~{8202 z3&U%XalKKweJfq%7aB4UMvI)R%*a@+rXFH#w`rYjaUb#d!mz>YW<+B3ZA;R;_6Of#D+f*ITILpz8zVvT<=>s%t9ED4n zPE$++=Iyu*j`a^X9yJRN{5b-@8_7tI5@B(*;a&uf^K74q*XR4!9m-GP%{v7F1;I)2 z>?zm?A~|3q*g1^NJg^3XTV&~D-)cz8LZrg=uB6CBGEA$*R@(vHN*t^i>?2SRwBR48 z@CPZ}2PB2B!GWZ3!RFDfT1Z$ap$z#i;tx{Tr_`hmND5ON1K>P9s6vjKUkULA8C)>2 zAN>EM+h6|Q#;Ea$7BvDq6zm|u-`-=z6fzCS|HEJp|KbD z9p{#uCZm@Nr!CB{mV}*3EQVZwLKnbH%NL{YFEY)>rvLE&x*z<1W@`A7)bsyhA2M~8 zjx#{4$K^u+AowTD8UY{*Ry7aK3h+gLDeP~X{YFA#X3WUyF~NV}ukZW*2fQ1Epqc91 z;kR8=aPzPZDN12yg?n_(gPs#E9B@|b+j%h>;u+HFN3nl}xw>IVl~p#L=>sR+tme4z z!2?eY(ExE^?7SNw4vf-{l@kfXfl+}tun`ak7DZIAEk_6;zZK;^RW$jmCU+#*P z9~qk!X$+D0mCcI9VE@zwGNKN0MEhu{dLqwHEh_{(&4aafno?A(q$yI^1Wl5tfC6Iu7MM?$UTagdp(HCT!{8cjfC^C!Ul3X zFd7wmu+qFb-vH4lC?QS_EOk`+&7qPVA~gV zZu00kw&Xk*wGle){Y_Jug&p(1z;EW26rMwk0sd1hMRfVGK3g(B!T%`3AKTIsraF5% z4J7&B+wvj~96HUb0s;;&t7ckJrjAQ2JzeGZ7xcHa=}CGRv5+e{omgCxZV;5c1oZ`~ zJ9N(u{}Z_1+uIdtfZwW%ve2~f$PmgXTw9_-&~DJFY&ApB4KQ$3Y`D3Pz(xOG;NHzc zN*pCDHfJnAvATyJ5gqUW1&{r;cLss>j`XFi>xaD)Uz7xdf)~%>fbz~ZP~Jgz3wwe6 zkauhfJxLHqNE>-Dj$m^rOvY>H5vo`K=AW4h12$1uh9^5Frh3%Feszh6WMJoujn*z0 z)ILrm;(fYfFEDQ{&?B%{jt;K$_LVd-gOZ2T z?Y*pE|IRemoTSfgxgQ4Wceiz;FRqm^>@DLCju)=G{s-spu^#9q2;}^k7e-Q{L4CD) zfbtGG3~n>X;%pKS{*HXkJ~5iubKeL$YajahSL=`&@qPJ6>xh&upx#RTN9&+DH(K#7 z|DsJ`LHhqI!o1T}K4}VR;H3X-+YK(@wtZd#Qo-nAgyKzX%ix6|e-*SC>Hb9xAnF+p z_F>Zj2dWIFw#F_lUsZJ#RfUn>!VDCwU{iuTL2ADJ3?JLt)}2p_s*{c;V<&@GTydul z&pz*Q`3a-=oXnP(o__dY2w0{;_?AZUk7VRzqfAcj(S(IuTknC4>3#?UIOWq<jJvwbP`9|IY`xWR&C9BWPtV*v^!Nn7<)bj6 z6g<}iQt|b%w`d5t(kaIE?9@P!hY(;wdcW3}kuscqlS=Qn{+*J_kDWpN>%a*fHY7y= zz?;aN|L8#vt4-V>V~ViVl|@8W!S~s|XhO&**k4z|ooT#?z+KFdh-70?)N%$7*4T$n zz_(yk{0D6V(Re(G(Uhi7fx{pZCrj~E!ZX$Bd2~c!LkyQ=E2Z1K#j-K8Z4UMor5X zbp>ej3#JXRk!%qQ#ldHFEE|!|;*=OV2kae!jYK%Xa_G0Gf={7AUaF#s2n${vJx#_QbECs#Ri6#Y-|6mRVIP(=!rW5@uT2rsvV%Z6ho;LRRS90G&Si zpKGvEbSBWXnbh(cZLz$my$I(lBVgzC0$+uWRRf#46(o8==@6gPJ=wS7UeH~lSMnHb zboiEk++i??Fr08}^@y%>E>fF-${i-k`^6+Rj%p2r-KA_TVGIXdK0yAzUg5)5-Nux( zI|3dtSwQoW189V&rN;o#!oO{U(E9&Tq_eB~$swP<3yCm-r4)T`lHvm=DWF1^vciQ< zd5Enq(p|Etgwv3* z*BvfQ2sSsx=g9Y^*zdgx$>pKkVLieL^RH}R!51l?#?z)MND*BcG*^Rq&?F(X&Ggt; zl6G*Oa*KtzRSK&Kno2|M)i6zPjBXlCbWw1^Ab!im)F^ZhD~_Q%pt?^OobhzmQ?j^vvlg za373;96(2ULl=?0=3foG9Vm(=#?<~g$$;E~Dbc=ZS-LZ>RIDhlF@t1h9ha2A`?EJXwP^rgR+MC-3}?KS>y zem9I6p3)!ZR$)v%Y~6=)n$4QVdgE8mdh8Cd68-q@?o zk;_Z$LCk5H&BJZ~{Pm?& zMke)&s<%mA%)}z|=hwOU>Lv1`%qnAK@)Va+t>zdSV54Fd;&wB^cOX67UVnhaIR%Pf z2%bM_+AC3?mr&6(xSz4Rc#~jI>7mnySB-KEfIn(WH2y`r<>WH*?f?&cWY1(F(!z*5 zqzdQk#$AWexSING$qiLu6z@ft$>3XEAZN`Q@hRnBFF8_incrEGs_-TM zTzFf67r7E=g2!L?*h#W}C-OrRg%VffH9%_dW+`cMWXyG=&b84TMQk9GqJA=s8y7}` zZgVUBo~N%Ujx4#D@;V;u2(DJv&r4&|Mq-H$SP-j@{7K7lkG7(lCv?U*>?dVXJ(lxT zZc4yDqLU-Om&g8dWUBPKLu4+o*}7(bX?|sPS{Q@Zs@D()1Pq9su=~oW!XYWpb8bxUW7Z-tu>S^6HNW*YM2$#Go1^eI2hj>_uX){ z=zM>ChVLd_1(qyqP;FT5UFa7Dti>McjhaxN#*N2`{#+k-#g^P8791#YJ#4A(k|NSw zPL}}*3#~2^6+zWC!HJ4(X=B=s= zj1GA=6n!?R{0@B8$KU1GyF)DWl0Dbg5a&G7up1))Nueq8)spI2c--X>$u)}4-Z({- zMe$vPrwqRRh0w7!7k;D^n95j$)9Ci3gxPM;iouH^C)9qlBLVkyU0RCT3*=D;SP-@M z=vCjM>Uq+7Zx!rXZ;Acz~XJ`@AEHBTlb3G@PK_Vq4aAvFi!bf8n8Y9h%uFi?pSwuqUqdcZuM8Cs!;3;61`=b zb3{~NdN&mRdo^_2jwKv}01u6f|ELdDyTB7eH+mNMmd?a|5(VyxPUE_c$2^T4=C9*q zC4DU!abjIq8A36_;-kf1Npfr%8V|p^$UH&*+HO~5^wkkC@Z;HI**AWa8{-dzhFu_@ z0a+9r39JcC%0h{?C*t|21UGLwrKSh+oATK$7jSdqnks{kB9R$z-)Bhk&8Avi;sHu? z;r=trBgukQ$m7tUkoQ==vyUKkx2shh&gy_yEr!KHQWZzI$PjFgg zB;B#8V}H_PFvM3dQ$}Q9FKUY~8!-Hskq(w!){;mWR2T8eWpMYC|u8!86}EmA!@X~T%P{T$a2t2Q zAa{YCIq34Q1XHjnhkFjg`;2C&@_O9D_CH2UX>B$J=jmv6aCEebV{oy_%!&T|XMy+_ zGsPc(cK!NT5_W0bhd>AJuilz94}ky}{BolEkMd~MDFJ-k8fd8*0WGz^%3}r4QUj!J z!U9F+&3Kf9pa0Az+Uh6yCdW^GU*7g;13>v4m4)Yl69kB3IN{2AB3{auu!@^aI~>U# z5eQZGG?|D$3A6&38A|)s;y zI^#oH|0Q5lBI+q%k0ASt!FkqSi&_%DuDHANJSKiV?_Q5k)-xo&X4or z*=eD>ptY<5*s}H|--WdHAyZ!pMps9XH#XgLjbgWJdM6HTXVC5Oz9V_6sU-BP4U{ny zWfH=;l%oiHtEr55wvDe)5TAH=(QRZc;cB8 zFlX|%$sR)!)&t({J#Uh=J%8s*I7>Xn0iPE}&eiq4If8P6_$=1~9p)(mr&vwB^G(pj zH%h%{@x7&RaPs;;|J-eY^$W_je#R~p0%b>v^X<+%w&}(XW&J<(w2!2Phnq1c)7lTg zMLymmKuCi-0`B|xL=kA@P&@jDT|akLdEm|U@SIFV>^*rC{BH};U;odfB0Ph2V=tTa zVC8|)5ae_-HyULWfd;6kn?sr8KpbILF}485PUKE#<7P}Ms%0U=_s!d?i7@5}%_!2A zS^3rqX6s&3bB@&K-JrKT1u4=ecQ~Q36D}sZMxji|C=4gsAV7Ol^^9YQF?Ei)_cx*Uj>NDsMC@tJvaI#W?Ax3dc3z3 ztiz+`9*_*#W%l7yHPRxur`J%Yz=FQ|BO4y* zrhKohwiXd<)fDE=!vIddj8)PKT5{a1KC!0>=?N%#xRITG7%{1YCFZ`dGo-WAc7 zH40z6f*3Hny1&`+t|f-^05tv;-nxhdoK2!KqvFtN#2RpCB8a&c)vLu|bMWNf?bpZ? zS%^VT5cipET*Tq&S!lfjcV-K+j2T=!4{YiNKC>ExHyxISh{&nptdtq!zvCkX#>a=K z5v2g!_2Z=-Yn1<_SBTK`_BXu}Z92fm==TmW_ysung;W2CZzPv#$omu+-*4}$5YYb@ zU&%*&8Nm2ZKH{U#?EhDMY%>AC_y*CVs+XPUmm(Hco}qrfz#Vi9=zVXL!PK!~Pp!ple6Xz?mmtIDw;Ii&% zs7jfvOV9+fvB2S${Gk{0DDcQV<&N_3-Qq*9dFs}zxh=+a4ON`a^_)?Cf!o`@auO}! z5-175%u(GcKSonM8Xo-Ix81LNff@e`zh}7O8V{t+@KY#MLIo1t^=%! z$%ZeG9d@x|q+AKrgkr7+^7#rufa+KjQS)L6*2R8|tNErf3F<&H#H(2JyVB%v5|znd zDQ2@{m8hvp4CM1EajBWUjKVy7(1c&d9;`o$oZ#UWq_8V)m+c=JwM~mM ziTTI+KnHUM4Nyj90EqkFT^)>lF5Fdw@HI#KkWoRwuXURpwh1?ht1zO(3Qg$5ZE=&v z&1U{{qVTc81gFJJyZ*YUf4hLc&bqt<&_(r2{_CQK%wXt@Y9d(CSZ~gVDt)Jc`Al7w zAk^ZJt=?*Mfw2O8{4VS$u`RmYjkqaEY|*3)0-azovU4@w{$SyL{}Nxb@d>iOQ;lpMoHtaZutd3 zY)jeA@`ok}i53c4mvKN&Y+D|A1baaYl=au%v{p6-i|JQMnTqWMC41nTQggLB;{5&Q zY)}svGvu~tg}WqH>aCGch9k_zCG+pPnEWU1?%^TfRp8+bME@UI?;IR?*X?gll8H63 zZQGdGww+9Dt7F@?ZA>z;Z5xw`ZM{AB{hafAPQCx7l1?gB>$`jJUTa_1r`BpHp>FLc zV&8&0VHK81igWHyrUt2SJk{%WM9&8RFEk=LiY2}?l;O)Tt0@=Flg=j#GLgG&i6$)p z4b882#2cUS9D4D{S}gIqx4h-E|%U5ul;X@NXMiH5Y~|7+DFm1!yC9 zHTj>@Ky$YgwO$V-kX@JZbjAKhZNcdDyCci#_rDDyJYL6t+t{FEaDqjNgj}Wf@W8pn zIwv*+3UF?r0c>OY)I4bb=N7`iA=HKuWhP2GTP`wNR^YS-c+pq3XdNTMPcF{z{U?=#GOWII3`n7 ztB}>?vyxXyK8HbPtXVkdU8~I2+yQx<(A7X#cADA2UrCaOXeRH~gqrd;|ANs!$WjyQ6_5 zW?^s^yZDe6{q^s->6JAMjd9}(aNJ}F45ppw4$DN%^GJHX5^B z{_gyHAnevf5haU;DU#b{|F^6tQ({ju|Lz?B4UiW(oB;uHN^m79>9~ad0OY}haT`kI ze*toP-G6$2zUatF<6s0m;zUF1P~Sj{G;S>29(2si{&URRi-|@aL#L)sQ9!#2V7*RI z*3*}CIr$Y6SkDpNnGZuEnshErCM+d!EL=`$dkLj-?~v3AxMW$>4_kLr2(;;SsE1R} zb0GdP7g-GR>u4VZhE@7|gi4Vc_*nMEh#(#fIyOCh0hPTQ5sN?DyV~~>Mv^sH=cEeZ zF})H^Ar$}U7`x6xob%Zzsx2-PjWeKkDtH|96cGHRSR<)OepT0K@Vpr>U>YYUVKDe( zpqCX(`9UZKU>w8x&Kh?uVW#Mi14$!V3XV@}wy<^F82Hxshk3HCA80J0-@z@Or_G~K zGz1z;dVdK8(1lQk&GRbl@*nRz?-^D8ds2{NQW{_nrfIXX8`*v zy&x<0AW$-q@&r67#MERs(4~jXuYY`*wRnX(&FPOc=r{s*f6 z;PSsZzkgS;F#lY18_)@uCH5~&pnZ1UrQ{^9tSIFIgJh@0v(nS6(US5DMNGJqe8sYeP?PyJT>2@)_zR$y;o|}hj zHHBA1?cDzSy+HiH>4FB7W#hAhjl31k$bOt6EromBf|-s z&vMK@eOX<7jiwTZ#23luNf-v0VY}_@OY3YLOO3m6Dq3@5P5bgAQB?vKX_=5eJcONG zo;>I45hbH$pw5WZMH~bSRpM91*f4)ZXn-@VLyByGCJFa5kF zc5{!hQG4LNiWlQ&oZU}VAubU+kK;iL5bS{ zNyR*`-v~Q{RrSCz6-O8Yz?lcb3qw1bhdsh=!88V{FHvh!N#jCqSIuw5B;Q7;M~y-f z+WyLV)vu(4=)kb(Gr{iw!;A~J;Rhj@5@aI=9h9Bh+l;-y6p8RP=l8Xj5cwN2{0WvV zg?rcVVa*NWojkVAm_ndr@wmFG;lzz2d`%c5)m;bgAw3q1x`jO(AT(f7RZ-CF$4oP} z&M;Tut&zL{2X7pTxE`9~A2gVaZ`WUh->6dC?u&_Hw~zczcgf*x*&8O6GL*|m4;^W46dmF{FqI|3~#Em4{n|?f&ctgd2hr>RK%S@+)W*fn{o!7 zwPjoEZ*PVwl^uR~z(uGk6iFgu)!Z*>s=7v5qq*c|eXh+f301w+pAA(1;^th;$c?(= zLaVc1bLZzw=!kF&5f#z~AsZ(4=RrT#iV-yEoQ{RDdEuN-~K3(?%W+OvvL-&c<_gmRIP7)InN%6)ahAHt-)4j6A)+>8kC6;r?`BcVhVeo>#&zIDBN7 z+%ORf=h=Dm^l;ksdn{)BtnAg_71laQ8Q_nxyr6Ih8cHx$z+c$eH*$b=`0SZoqWfBL-v2xVS|{~XM3V!Rtmp> zX@gJcwz3B@ZvyFr#g#U4V>9Lc zsi*{>%=AFu7b~KUlx#~s=_Q8>Q3E%LBPklE9%o8eN1!n~j1W_rD2j(kJ&d8dM&o@Asc0QkK>cC*N&=xOk!8CN8R=D#Oep-w>-`R3Vu4cpOKChd7 zXUP~w@(LdM<~aY%!wJ?2mlI~%Fj0m)+l<`T*oDm~C*+w^^e65#{fXnOM~AGaY~i)E zhj_MP|EoQ@D>Y}~rZ4lFKln;6U=*@kqGOV%`ZUz3BA;+6CZchaGx)V-fts^*voPnP zhigTD(4(oXl|S#U%s?%8TX(!k(=(U?)s7f#x_BUAxyfsP4o)A9jR<^vjcx)HlHR~@ zN}RLO#t;sRI!cs85p@fh!F=Pl(p7 zl-OBktRTFw#`vo^AM17@gZ2p`rj3za^f`g%j_Eo2lMLiieQ`=_<_#_6Qe&oWh+iSs zFQrbsaCK*@Vi6S>ahm~GD~TPKKJQ84>RsG@vvY(4tbv15hIJBO9K zG;9zvxSiE!S(2gcp~vS0F_n!Qg+l8G48FnT^BUrG9=NHiiU}pR(68VD`%3!F( zT~fcVrBk{?f?YE#KB}*c!9nun!*fWWFK?R>X^urt^p+ET##_~;c6b9>c)P)(&M2t{#J;rXw7kqo+ijLQhkv6B)L>;*T@OT1NC_Me}bK@tLno}vN z9DQ~|EMvh{>^#=qn`Xb;l`fT>v#~9wzNVR%d$T(HwQDF}48$LtHCCu8Ks1Ae7wm#!ZC=b87q>T9u7owZGfiks~waoGYTW za4zmJ`t%KgHTTh{ItKYUoZ%{0|FhJ_cUYM{069Pkh$ zYy@K{xtMWZb3JN1^D#36dptv4VqwIM=p$uXMNS=wZWKap79pfbnl|l{K1x(buN+sT zbKuuopb==v6xo!udgC>BGhx6aj^ZQ=fF=_fTcNkB%bPnw{NquRwcJEGEFj|(yqFV@3$E*D?dcUx@e1pp%U=k%Pxwz z9pQz=UT!Cgkw?N{?M})uO>#Xbz9X)eK*4Z`x^+QPAH$7f7-QQ-M@#awj6Ssm7<+uT zAex$iUA1?n*-a#LxuvWqsP?Edj2FOyjU{UW#nEh2?K7i^rS9y^jby-XwfI8NN7?wc zf#0Esjla=no62hIWU4{|BfV6RJlVIrkE=^0yAZ)W_p=j=m_d5aPf{q_1pr-bRQ+cQ zv%P&PHJ26*3l&MX6f8`d%^|%Fko6WOvPgB?rkn4?mrs2HE=;daxk9^#Y)6kmLa(n= z9$q=Hn52pBQpfkeJFkPaDAm`|R<41ZU`^8dQz|>*t=`jrNj`&I zaTDjhdfr(p^bKE%&1e0}GYC~HK&#w+2<=MKx>ix)a&D~Z3A9E!3%LLdpz*TA=3sO$ zO_GR{8nqh4ZjvK`%Y&`DLA83C^&+`crsaJ?4C_m`qdR$`7m0`(sRQ)EIQm)M z;Aq2R6-KZw)Uv^fw-B5Gn0s%+AQEl9qg`_fO)niWuvsrHYDHKtO=x-lL4S-@i=vt2 ztsT~#)PEuEzKH^QDQFgPx#{|1Y0s64v zkmUG|^Am=c6!onDEzw~e+Jumn9vyjM@4qM2GGSB(v=6E&#L4WEM`jRJzI}-k>~8Hn zUqE?_U5R>daql6sv}Rl*n0(M|^qI1D8%Y@-AA0>^_8PtV zfyU3e7F{=L?v{Bz+;HgFd<~@0nb$7NctEDu*HU*(3*YAe*55hSFDD+n8s8_a0qpDg zQS4}OpSq-ZZ6QF8y|j?$4yOgoUIR19aN6GtT9~?7SGf&d81d!wowo7Y@|+!k!XFMi z+8xqjSMm^DiGi9KoS*TY9g(MhD#_C$P6y$KW_}fb>4^p2wp#RK=K=BSKdpE#^BV8U z$$X4$v}AmM#-fP?{;Hyh4E}~KM za?l4qQVx9>VdyQmP6=zOX-L8^qI#4oBTaAD7B+GMc-4b6IBKN4sdhDTCvXv$@Onb)V3;kiNEOb?B@J{pRM&jJ+8-0%rbB5`!e?`@JHfe9UP)x z0#gWO>MI6ZF!#xFzkM63*tbo}0vu=#0rm~h(%yH*HH8t(j5~=mDqB>J_%W5I#5TBw3$le5H0y$qE*(m(@jq*A0iizi7atmr0#&aFF59ISpVpy>Wjx_O z0qb&I=y>OaX>hp%5VjF6-C;!DXo0>sr}z;>Z{Gs(V_aefeu^6>;6;ww6OVy_w~rUX zo6|WJ7)kP(Laz0fF-?S*8_JY!ncZ4RZ7fe7lN=0JOY+;w5>S1&mA`TDda=0KhlO8h z2GB0%thqqCA{sM5A8WH)Lq5Rn3wY}Gdyqz@Z*ayB;aGrnNExV8m`U$+LEx&g(?*r@ zTt_kHG=otDGo|jzWnm8;BNzHl8r#Hbe{{x0ejKhS$(zmst%&Go>nLCt)Kz{QA;3mmB?o z`l4JPEk!`G3OEG}NcX#Q zJz`(Ml>C%Z!n5p6AyjASYewD;CA9`f5Rk9pUwj)nop>O(jBVNxi_=bDKTlX^qSzv; z_Nf9$!H za+T=UqFI1v31(9%GH(J9M(~ZhQc;z?JEY7%USLIYJxaW`m3xp(s-p6*(mas(G|=n{ z6OXhs`*GqRYFR?^9q8vJCGr>+1pUwjMU>d#8JdV<{4)@HJi;2XX+QxP79URoWo&Qp z891knfL+i@UtsGRfXN95aXrtUm}@S8>8%&f`bmh@vbT(+ZUg{$3CRtQ#_m>rMiJr0 zD3l`Xi~GiWz3VQ(aUAzP6MAnnpXbPtgXD7lnkmpR*SHI}Hu$@blrq4{07RyQM1uZ_ zF!rJP*`7|upU3>P3%jJ(m=Ui<0ED#%ZUvHMSC=vdxRi%{u#fIYIxT}n)?h;e;0s37q~+Y1a<~?ni0N%zLVYS#^}nntw;x%9|1dq5eCNOVR1a?>?~Bs`T@X-a%APnVPia^Cro6$|hkx>&vgA z>EQ8NrmmW+d0gx6g(jB>c-A0xsaj+_3H-CIjhPk!>>%^jiHw^m(wEA!7Ma1>HV48j z%x9K7xmyf!vI7u4KRTBY#=98rrS%xmVc0Kh*Pu``AnygxIk3wiFNGDO?93}%UhrsHaJ`#8HaJj-KCMJQd_Crp zR=5#{lBE6T-StUH(;p={nNw0T`iSz>q2UJgH?=mSya)bmvbsaW4Z57_*09Cc4^G|Z zte0&=e@Dz8l-+wWs=Y#s{wykM7ZrT<8t0*nfCZVXYO{S@7uH|7;ZBQ^8U?=%%eBI8 z7m%}Rr%JnUrd2UeHez8HxM`JB_l54UdF6j$O{?1#epq%2=n7vAUkkaA&@1KkM=qq! z7GD&9_|mF>2Znc3sg>y$)Zq6Gp2%yIe}t&I`r~)trLM4@xCw1;;Z>do&R7w|uszKF z0W`{sbo;>2H)HG#K4{+Qg@C*o!L3;_nsj4YosZW~`SQ^>Zil3T&Of);%!D394Y&kvbIWbpHmI+#LFZ`cHF8;}wY3Qx1hZ*u zYlKHf6w|CC!5!LLk0z0OYu(WA{&wzzbdDGCfFSNAJFC~Xs34Qo>--0@69?BF(Rs)# zAF(D#rV~+Y|DDkv*^a*^M97;^Zlj>AO;pigS!4hWwr4C=hBFTYG4;GB7rtJc6L38u z_ZECua^bLQgT0GN*rBhWuHYu3p@AR3+9jD^Lu{vnZJ@Y{uuC~*Bxg8FL@T#@L3DC~ zYGF7_HojsXc2U_QceDs^un$)8XK;rctQ*lypYi9rkpe%ZH%)p}BWoBD>&VRY68=&Z zeM%i>3rrSmh;o#3#Jp?7EKZSz9Dr$wYHEdQin}$GjdlthvHx2k%hXc;3F?t^efpV) z(hz0)(GA)L#2=+B(=8;^!EGco196$)Q=&meF}y6P3NI)XZ_KQ=l&E@ykhw7q2!cRd zZ`_i7h=LUfnj>;8ERKHU4N&!XyUhsgUH%P-*d3r*rt$z`1Eh9`-W~C=2k>JBYI{fT z2}EC*r%P@huSaDg*5ZlWwYRnIdzTHS8-3XoSQa&Y0oSSl0x!c-L?$6PdoOW)i~;%z z$nD_d9#WlAhR1kPUr0k!lt-JXjQEUPHd1a|86=D&}UvSg8Df0E<_upNAmRtS zKl$8!IMS;`ln$~S@KE#8uqXV0UID{{2N)%HW2ru87Tw4eopeOe7@c0Seti}#Ewo4H z5fNt|{B6EAO6seYpbU`CaYaxJppwn-|J|D6YSP4D9}$dtp3-da%s^V;uQ}T}!%Kk| zW8Xg0Ifrj|Y&Z%7yG;FO2umcQkV9H5*^Jqetvd@+e8+qt1>}z`_e;FBN7~J}e3HIz z$(v))&A8$iL${LebM(!)gN8&1r@TfFT~$*@OK&l1q8lt4J~F`7J;8NtIvn9DVrE1r zdxwD-{)2jM*J>6mCTz=I<<3uERGyRG(-3lYxb9U1hK|D_4mi}qwB69w-dS$rEfBp8 zL!Tr`Y2#&POAw!1OP7eb{;bUbpmK}NjiiJv&oKXB8iQh>@Ql97ny_-OuZZDNm>k6$ zA-EK9jHil8_X1>*MXJGD-ahV$b$ zB7{Q=G>F24OQh5(iO5$V4iPLL0o66>H*(-k_k_dCm?{#Ub8m}AP_!B#b=Q*dmnFtv zkK|n;zu6^YVzX2t$g-h@qN>9c3-_y+u#QPb)r$!M_P>x4`)W87T_M+*C`}VT5cVmT zjkDr&qOmQ0Z7BATvoNkmh)enmYIY3feu)rQNYWv);?a5Ag_)$)8=icb2H#+T73ky^ zhZShi02whu_p`1Cjhm$XvN{18N2m0qK@?U15it_oFG4I0-6BQeG8D1^oRB0w0?Q;m zJ&qbCKNCPnT#4Fmzyy0UV4X(yTOd14T6})hzJoFt%?N*k0lg1wPscs(LDfnW%Nq3v zYb{p}dz1xMkbUkXTTB32A{b{-jimj7NZL_y1Qam?efQuem1Vr_9P#X4+odOZq_kkJq|PnSf5U`Y+2Vbu2)Vz zs5R;uwpck7yB}xawm~uj{lD>c{$h-iMZo($uwZ}l>u^&UM1k3OUr8Za|IMK5B7+bFMf!WCpmS{8)C%fv z9^;oUB&i@g5ICu{Vvw+{?355LQ1E|WA;bm_S_k}75UJO^5L5uBe{UZ~C;Ssu5b`Ox zQRKSG3a=m+tdyW;L2c-Xr&10hN|?Uo*LOdpxmKOEx#Ws`UmwRQp>y?x7uCoWMKJzb zZ-U!!@0vBe4t8FJ({j5^-S%#gVAl=_Iv5qWq1m zQ^+#I>Ily;7gnfs*hHkI?M!P{;|HZgn#rze*SF=O;iZd(}M z|No7!#$wy@QD9lA|0!$gmKY=?AUZ+U4rrMO(QnnAH_3+uhlq-1TFP%pWV~xJpHm4D zfH9s^xZGTD&QZcaZZ-Z68;%$b>-*(9jKiKPBauirP&45>?Zof>FC2vL>Yb$Upa5MT zMBVRdMDFbSMB^31{c(C4vS(S5IL%*?#G!Hi3$nWR*T( zQ4NZs7bHNp4dR=Tv~(;UW+>)kD*W~s8Cro6J6D<%MUGIc$&=LXW9t}!*)_9}>MJFi z%5^adx7cG3Pa6@zRWM6E+Z}~tqU#c<=9rS#`1<#z*cPO5X}hFVGV7ONIxTeuV7=LT z&Qmt{`tewQSG{wMUwVICe~+T+R`l<1ml<_t*nQLIBsg6mlmU0ko+d9w;9jf`w)s(B zc+5HBG56nW;NL|YawB3g1gtj2Kh*|dNnK@zAOyP$G;e)lhG+!&Cxx_!9fAP#pC#|& z<1#YxzpwruzWM(?9pl_9Pb-+lc$PdCyGCxJ!o_g@s6(U*m)Q%ayv6L&8wKxGlHR~I z5B8)OhEf{xbG!R5Nr+IlUl7y~7!eDug4Ke;hcJxM)OB=1%qySBnKi;V zM^c_6opYk-l$&n}kTc!#mbo#n={n7aSoS|MM&cK?A1dXQX~zz>+hd8x?Bk37ONKaB z@?9wmCj|BkGh@SPJApA)4T{|>XGiK8{k0tM%&uy{VXMvXZsI1~Ms=RnoVx|z656qh2Mgq?8VwD?MiLRUT6^ zt84C#T#FuV{T&^xN$hIXxi9h#nM;c_Xcs&525ztqIlK7SENXT`jywdtuHW~E?0~lj zJ(DIHtvDYsrUtp$p_F@lP8%hG@(~wn!*#6_b1j6%oV)*~fc`!ln;u5J75|hQ7~_hU z$|wPemdd~b!2~olUc6BbxTAc9tSHT(B|c-wd*d8MeJnHFt(vF zNI%h19~h`{*WFaKthtxbCOeoZ~+g%AgPkppAH zR@iA0Lr(d{2L|ebX&%xY}e%h-2Mgvaa(7Z(;qc4 zn+*BeZlQDcd;Ti5q=@_e(2@Co977+MdkN&Vj_M%szCPYDbQzt|ry6EjZoR1y@$yXd zs!LN+wvbSageJYF9PP4#97A1WdtAGaoO@Re6#GpvFb+&~_ix?_)M4T|3*`#LhUPga zWHCWfo1Zi#-&(CVhVUSyBb#WN&q4!w?QaO$hU=IEF;Ngp_|b9znAC#+*sMv;Jcaur zq4b=MzV=!-Kqx{ zW+Tn$*wSs%jidIt5X~Y0hDnO^lt1IeBMlQLm}lC)oibKr^1kAUY8{k4Fj}ai>3~Te zOfDTK&_<44Z@Z}RAl-`2U{nb|fH? z0M#1M?kdYJAJd5gIPi$9VUyNk2_ROYv_qI*`x3qp@*)c%_tCa^VDl9T7Gg2oioxpH z%gk}d?61g$HLgNS;;z>_z=a@*x~_daX|h-=lAfc}HJ>BfoMW@VNxkd7j4qlrHxcR1 zi*0}0^txD`Za>aaL3&aX&AD-}as$*vV2Ir=Fv4zhn98cdH zMb~RTQ-eN1^FZS#<7b)4ku_xIH$eJGq4S0vs65IQU8=h zLDIa(*BH2??pg=e#(ayfLu)Yxx?C})t-(C5pnnh3t`k6~xiTW#)(hdjR=0#101RQk zjE^d%*7!y+4mep+Gdv)E8~gVNv)Tyqm>?P7n2Z#eRJ$gD-ekpSe|<&?vSsgA8;K0o zsB$(sK;BdW8@I0%`2O3vrkMCGaa!e=QbPPU2M=n)p+?o!hM57l8a40K%TG!7EYrPq z-8zFlu}n7eODL^;IR>@%HYxa|e1Hz)Jbu&TV3m2=(zlJhY40j2JWZQC=HNF^yd)Ec z48r;q0n)YfqUNDumr#HBw)tW<7$S{~n!u#Oq}>{4EUjvO7R$BxG7KEuPF08&1Db1m zoONv;$&h-wy^WNM{AP#sn3;n``aUf%mle4Vw-v)-EOR$N2vE7{in+oC1JJ>U7@)<2 z4)f_s{kpg-1HuP!v>HQ@<;ywg-1)&*Z3gdb~sfU@l{ zq^;686-9ZVR<}Z`qJG%E5=q9PvVnNW*JT_&J9A#WgEVeIYbgjQNTRHN!6HgVAZ z&;WnM?&O414xeGd&o6gan#pt53zh>zkNFvfhVB@bp+G#UaDk2)Z8Ajvhe*D5zy&um zg?iZoX+ZC=`4>cASld`RG-YLHsw24&r{*pv9>pROw&x^$B~hLZ9RPxw)HaU*40OA# z%8NTj6C~o`xZw{H9K?&IgJcAA)*v-v$XC;3tRiS+p9!=wp-Gyht@fV`8;65|?h?cO z5cs{4f_m6OVu;W!8ub#q*mXmLnQ=!O#dW6Y7gpEm97VKhwpkthXHD_^DH&|e7*h^4hqAeC8qWFdc66xYSDU#{KPA)&3ZZ{gVa@1 zdAhR}!L;jAiwTg^S2>oaF*;nrx8BZL3zt`WnrDmG4xTm@_B@60?z!8z5d$_1a{DM! zs<|@VUVSZC&c8%A(Q?_Zuy`3pR3B5E64FV*w{)#o`<+Q#$N?C+gGbI;OjjP>{%*ff z57ZZe0(5uvq=O?aYHL@wW||TUp6#IYiZKDRJ*ij7n~dL@W!5dtu;GKN;+zC_7;+#o z5~vKx4V*@P8SRX_C)eyHST)BChX+*1A=A?2U~6MDUS|)Ua(5Z+zz5$vSmYSHGwuyX zHO`+YhfU$QqX00{RI+}V%o3JOYDlv(YRYEH;)O#at*+sPuSFb?fprIr-$^8pVgxJ> zas;nLwqCWw)M7uWzGWC3HdXa(6ppmd>ndk1lQH?scLmqd!0RDdPwM!}q9i)L=yL#- zukP~N(z1cM7gaN#Awr*-0VG(npF*2=w7$|vuPFxWvVgIKQBi>S>d|_@<|n{ZUd#)- z+iK_W>a`OuUDj2!pciEL?~U4H)(?oC2-Ks>TZTagD-;-W(7 zi~#P9FJog9LDy__h>h+b~SoMeQ3`;iZJ1ndd z;>UcCyb5gU<_`!@mGC!xh!31kl9|4$M|G15S%4QwXCzJL&%OAa2To~t#I3_gb+7ZA zbbGe8^?Zh9(#N_MX8Qnjge^{$cbPM4AbcBI*7Tt!PFrc$L;oMofBn z7x%x$HH%sYf0BUR&zh5Ruj#7EW{Z(0iDKahrN>u6C~;Ws_bO1>kZ@_7#q0F`98G44 zR0W8aR8Du^4mHO!eC2FscdY1%(Zlf|-%!=~lbmk!hj~11HGzWC7m=$qvt`vbBp|!u z+|YmVa;o}ei$8O5KPKEZe(q2t_NQAtnh)lE4{p}L_b zF1Sz6TWkczZFO@hQXp_m!+Hc+b4;LxPDX#tFl$B(^ z=I3V7X+6^qW8zk<1|g)`js(2estkqo4%QV-iFzV3r4#hc{c3wxhtYiQ+NvbSr3fWK zu?WOPs@@doVj`;`-D-{*8*tAA+2ad1QO^?KNDzeL)M60sVg;|=)q_)ECev~|4GTa^ zJCO|USW1rr-!47)F!pFauwu|W zB0}*yX5EX*;zcrD!(?0sn!O%@sqw{+5Q|9W{mNfj!Y4^Dzf>%lhkhwB@HnqpjL