From 16cccbf88e4551cf9f7437aa5b943cd24fa4f6c7 Mon Sep 17 00:00:00 2001 From: "Harid Promsri (Bright)" Date: Thu, 12 Oct 2023 09:38:37 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B9=81=E0=B8=9A=E0=B8=9A=E0=B8=9F=E0=B8=AD?= =?UTF-8?q?=E0=B8=A3=E0=B9=8C=E0=B8=A1=E0=B8=A5=E0=B8=B2=E0=B8=AD=E0=B8=AD?= =?UTF-8?q?=E0=B8=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reports/RetireReportRepository.cs | 78 ++++++++++++++++++ .../Controllers/ResignReportController.cs | 47 +++++++++-- .../33-แบบฟอร์มหนังสือขอลาออกจากราชการ-1.trdp | Bin 2258 -> 2244 bytes .../33-แบบฟอร์มหนังสือขอลาออกจากราชการ-2.trdp | Bin 2521 -> 2915 bytes 4 files changed, 117 insertions(+), 8 deletions(-) diff --git a/BMA.EHR.Application/Repositories/Reports/RetireReportRepository.cs b/BMA.EHR.Application/Repositories/Reports/RetireReportRepository.cs index d1deb5a1..9838bb63 100644 --- a/BMA.EHR.Application/Repositories/Reports/RetireReportRepository.cs +++ b/BMA.EHR.Application/Repositories/Reports/RetireReportRepository.cs @@ -311,6 +311,84 @@ namespace BMA.EHR.Application.Repositories.Reports } #endregion + #region แบบฟอร์มหนังสือขอลาออกจากราชการ + public async Task GetResignByUser(Guid id) + { + var data = await _dbContext.Set().AsQueryable() + .Where(x => x.Id == id) + .Select(p => new + { + p.Id, + Prefix = p.Profile.Prefix == null ? null : p.Profile.Prefix.Name, + PrefixId = p.Profile.Prefix == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Profile.Prefix.Id, + p.Profile.FirstName, + p.Profile.LastName, + ProfileId = p.Profile.Id, + p.Location, + p.SendDate, + p.ActiveDate, + p.Reason, + p.Status, + salary = p.AmountOld, + p.ApproveReason, + p.RejectReason, + p.IsActive, + p.CreatedAt, + p.PositionTypeOld, + p.PositionLevelOld, + p.PositionNumberOld, + p.OrganizationPositionOld, + p.OligarchReject, + p.OligarchApproveReason, + p.OligarchRejectReason, + p.OligarchRejectDate, + p.CommanderReject, + p.CommanderApproveReason, + p.CommanderRejectReason, + p.CommanderRejectDate, + p.RemarkHorizontal, + }) + .FirstOrDefaultAsync(); + if (data == null) + return null; + + var _data = new + { + data.Id, + data.ProfileId, + data.Prefix, + data.FirstName, + data.LastName, + data.Location, + FullName = $"{data.Prefix}{data.FirstName} {data.LastName}", + SendDate = string.IsNullOrEmpty(data.SendDate.ToString())? string.Empty : DateTime.Parse(data.SendDate.ToString()).ToThaiFullDate().ToString().ToThaiNumber(), + ActiveDate = string.IsNullOrEmpty(data.ActiveDate.ToString())? string.Empty : DateTime.Parse(data.ActiveDate.ToString()).ToThaiFullDate().ToString().ToThaiNumber(), + data.Reason, + data.Status, + data.salary, + data.PositionTypeOld, + data.PositionLevelOld, + data.PositionNumberOld, + data.OrganizationPositionOld, + data.ApproveReason, + data.RejectReason, + data.IsActive, + data.CreatedAt, + data.OligarchReject, + data.OligarchApproveReason, + data.OligarchRejectReason, + OligarchRejectDate = string.IsNullOrEmpty(data.OligarchRejectDate.ToString()) ? string.Empty : DateTime.Parse(data.OligarchRejectDate.ToString()).ToThaiFullDate().ToString().ToThaiNumber(), + data.CommanderReject, + data.CommanderApproveReason, + data.CommanderRejectReason, + CommanderRejectDate = string.IsNullOrEmpty(data.CommanderRejectDate.ToString()) ? string.Empty : DateTime.Parse(data.CommanderRejectDate.ToString()).ToThaiFullDate().ToString().ToThaiNumber(), + data.RemarkHorizontal, + }; + + return _data; + } + #endregion + #endregion } } diff --git a/BMA.EHR.Report.Service/Controllers/ResignReportController.cs b/BMA.EHR.Report.Service/Controllers/ResignReportController.cs index d5f434dc..c3d9086c 100644 --- a/BMA.EHR.Report.Service/Controllers/ResignReportController.cs +++ b/BMA.EHR.Report.Service/Controllers/ResignReportController.cs @@ -25,7 +25,7 @@ namespace BMA.EHR.Report.Service.Controllers private readonly IWebHostEnvironment _hostingEnvironment; private readonly IConfiguration _configuration; - //private readonly ProbationReportRepository _repository; + private readonly RetireReportRepository _service; private readonly GenericReportGenerator _reportGenerator; @@ -33,12 +33,12 @@ namespace BMA.EHR.Report.Service.Controllers #region " Constuctor and Destructor " - public ResignReportController(IWebHostEnvironment hostingEnvironment, IConfiguration configuration, /*ProbationReportRepository repository,*/ GenericReportGenerator reportGenerator) + public ResignReportController(IWebHostEnvironment hostingEnvironment, IConfiguration configuration, RetireReportRepository service, GenericReportGenerator reportGenerator) { _hostingEnvironment = hostingEnvironment; _configuration = configuration; - //_repository = repository; + _service = service; _reportGenerator = reportGenerator; } @@ -57,11 +57,15 @@ namespace BMA.EHR.Report.Service.Controllers /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpGet("33/{exportType}/{id}")] - public IActionResult GetResign33ConvertReportAsync(Guid id, string exportType = "pdf") + public async Task> GetResign33ConvertReportAsync(string id= "08dbca15-bb57-4b2e-8435-69116599421b", string exportType = "pdf") { try { - + Guid ids = Guid.Parse(id); + var resign = await _service.GetResignByUser(ids); + if (resign == null) + return NotFound(); + var mimeType = ""; switch (exportType.Trim().ToLower()) { @@ -69,11 +73,38 @@ namespace BMA.EHR.Report.Service.Controllers case "docx": mimeType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break; case "xlsx": mimeType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break; } + //var FullName = resign.GetType().GetProperty("FirstName").GetValue(resign); - var rptFile = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"33-แบบฟอร์มหนังสือขอลาออกจากราชการ-1.trdp"); - var contentData = _reportGenerator.GenerateReport(rptFile, exportType); + var rptFile1 = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"33-แบบฟอร์มหนังสือขอลาออกจากราชการ-1.trdp"); + var rptFile2 = System.IO.Path.Combine(_hostingEnvironment.ContentRootPath, "Reports", $"33-แบบฟอร์มหนังสือขอลาออกจากราชการ-2.trdp"); - return File(contentData, mimeType, $"resign.{exportType.Trim().ToLower()}"); + ReportPackager reportPacker = new ReportPackager(); + Telerik.Reporting.Report? report1 = null; + Telerik.Reporting.Report? report2 = null; + + using (var sourceStream1 = System.IO.File.OpenRead(rptFile1)) + using (var sourceStream2 = System.IO.File.OpenRead(rptFile2)) + + { + report1 = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream1); + report2 = (Telerik.Reporting.Report)reportPacker.UnpackageDocument(sourceStream2); + } + + report1.DataSource = resign; + + var reportBook = new ReportBook(); + reportBook.Reports.Add(report1); + reportBook.Reports.Add(report2); + + System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable(); + InstanceReportSource instanceReportSource = new InstanceReportSource() + { + ReportDocument = reportBook, + }; + + ReportProcessor reportProcessor = new ReportProcessor(_configuration); + RenderingResult result = reportProcessor.RenderReport($"{exportType}", instanceReportSource, deviceInfo); + return File(result.DocumentBytes, mimeType, $"แบบฟอร์มหนังสือขอลาออกจากราชการ.{exportType.Trim().ToLower()}"); } catch diff --git a/BMA.EHR.Report.Service/Reports/33-แบบฟอร์มหนังสือขอลาออกจากราชการ-1.trdp b/BMA.EHR.Report.Service/Reports/33-แบบฟอร์มหนังสือขอลาออกจากราชการ-1.trdp index b2a8f4198ac8f92e6130cef9ff5e5bd4e99b564c..d10297c43bc4c10a85d308a93f4c2eb53d75e020 100644 GIT binary patch delta 1901 zcmV-z2a@>G5yTM~P)h>@6aWAK2mrOROIHGJp@jzr005CEkr*<6Z*S8^7=J%$-@)=E z1kz?F&Y!j;0kxnG1dOUF>;>8jFS)kf96NIyRzOG#LJMO|ngnc0nX0uF>I8~JQ*Cp; zjX%onp7S~9i`^QQv_V?cR_F8i?w;TCd;Z*Gm(Fk0P3bmrnucwa<*bsCC1h3YnqjS# z<(9kp$*g?-+=m~3l$KG$c3kNTqvo#Tam8v~mOj_(s4VA-vQ$~OzpGe!<1@#omE{$u zg=7g&Y&FaBy6ZMRRn=y79o6-w;vy3{#y3jUuB#5riC0p!jFwY1B`f2lB&l@SMfD~$ z@x?{t>V{cCRTpnjx`d3ib+;^Qnc)s<{D@!hG?p(AjH+XF2l2p+h{i~L>RJnpNHtr&Ve8ZI`H9C_jPE}F^ zNe>ZzRw*QZ3O_^dQQ7H@Kzb%*1zEL=x{E|1^Kn8-Wa)X+Si=;%fGig|^2y0fxf}9G z$qmKMghJ;PjT1Ut(f6MDgCBiw4|M+k+I`>K0!}=lmmv=pTc$}Qx{n`w;d}dJ1o`!R zZxb%NWIFG__jY}+<9p9Zd(ig1*W}g!kL-kVE!jT(@y}j&)^y9b3!G&0h;wWMpC5u`eYku9+j;}jcgU^56QDhw`X!9% z!EYNx>O*4}8b3k1Pc8{6Tde<0xS?gFH%HB*I9=wE%~ECz?PDg6C`D>1QKBSKgW>!~ zfDeIx_jlhL0AgE=6K!a0f@A3e_!Pj$9I$QB0(+cH9(W;Gt{t=qN%z=hdW>YS4Kj?X z?-e&EUVT$g%gj**O%ORrb1o>w6ndJ8Gic!M-vk!|$1dm7w+Sc#eg6R{d+FHEDT!dc z572i2+~;^6W&-m#R^3K%4s>?9%;4}Skqz;GomC<+l43QW^m-O}kfC$wGK&97;PrX} z26HKch;$R-{GqCwLH9MIRx{BFl2Je_OE2Tln&Hqo4W#M-c>=PX8I2-CcYS)~-WdVF zZ03DMFs~GobFu=Ll4T-vd(Al20ml9F4)!WSI6gaEu+19peD4pk(uZ zx#Ucil8q*FnMgJlu}b3ZUi*U%KpDoBO$O^jX0x>CXTYvMj3@-?12Fde(I`?FADRx22W}#61=y$@Uq7efFP7B@B_p4=(Ds(BpI!>e52vmw^96&BRj?;Ifv1rZZ;c~CG8KF1Ev~(hI=5kz>sojzElt&riQWV8H;&c?hbb7TZ-@f$#se9 zj!hB9Rymps0}9Gqq7R#;zCAJRI)Lc_kl7&&roqPsb-lQdx4bU;S7*^=->`&)!lAT087`xic((Dkivo(8(T* z0kx1K8x%Q5Tn$|yTu7SmLSmIli>*?<2f7U06mJIv5E_2En8H7Zl1|$h{g88~;AgWD zKbuC@DLZ4QmNl!)WfLs)I*ypSQ(d2|fl8u1j>{l}3AyY=)Y+81n|=$Op47-!PtePcC@tx0sDfPb@l;b<(i_ORVpz4ZJfFv~VykU`R&if=NVtGEZCEY4 z)r6s}pDlJxch(GR_@NZ*xDjXw^s^is%(?G^G&r3t*sg2WgKwnNPyl|?lFILwb^#=n zb%b2@2=pwsIG{#UfaR`{Pt$^pX#{Jwu_*2$=A{ZUF_^X!{T}R21F;(txxiY*iXlKR z=;HAzZuBL$ZU(9#6jm3O3-%L=7hE#{N-F)p?%cmnO9KQH000080JXA9lWGUy4z;pN nR|0OKg$D-!0Fft?SqLrzwX#c-iU=D4Pm`tyCI&GG000002ZZ><5z-MDP)h>@6aWAK2mneI8&}ZdliL*s004(8kr*<6ZExE)5dJ=3|3T1z zq5Uw)l3%kXEt(Wvhpt0Wr`u=EW@DkUWZ3eS?$c5fbJumifW8b#hhj-lWM~nfaj;eX zH~J|fkEBe|k|R6H%YYhbA=32m_}p{HJ5r06*4vKqJ?i#s&s|att)ME%ZFo)FU0YK7 z{+-Wi>ZOYxf3$di3w6A%uY7Aa{T3cqX|z@4Ypacx)M7Miewx@&d5=-SOCb+y|^ zs)7Z(y(P8f`<>5qz1L`=w$;;o#W73@{8*F(9jj=6-Cy?B`9jKCiAdp63mPo! zD|81p4AxrpI=DfezOkG>o-G{x6bARh;GZzq34_fr_=7x;9%`9CTyLLhQ&a^Nv66NF zo`Ygtxbv##`s`<`*Oa=|wZ7}SH|y6i`u2~A*remDiXNAw%c2%_hQJh1YFfEgONFJX zl?-!?3;l|JBNOa~!G0np0NT?qcpnCPctCcnv@m#y|NVUkhNZKGA@z`mt(2@3z(NFG zNizlTq8SNJqhA2a9YQqnJj5sfgb!(R2K+dRFTgYp;V%e-Ep91nl!GvM6$XPact)N_ z8)5L4d^N%&2Q$yaKA(QFe&quG@A8FtB@m_GfO4CEpzDT?{{elnDh1>5%C_g2d#peH zJvjRVFv$>_FF@`)P;fxL8a;-XfR%dbZlVGBa< z5Liinne|9u+y>B-|C|VCaT=!EV9zA%>~dxHcwhiE$S}(5H-bz&`<7&wYLa0T0@r27 zUc>R43?@=d&+jg82w9dA#l7BGJ$OZ3iIpt0Oek`upk(TV7(8}4*=X} zASZQW)n?yYv+bz0v*lVv&8(DDvyvK3q*c<(jIvN=6k^eaWnqM#10e7FIl_qyVt!7&>^V`fciU~Eu4B7@ zhI^8?0$!CT)R|4a_E2&FSz+A zzn}08m(H;{i=Vvao9TepI3&SJO)rgq9Q`F9myirvNlIGGSY64Jl*l3jW!4}f*<+mX zD6gx5&&|2Fy&-07CMWQ&K7MqbQ_v~*n@Li zYd+hCYDUS4dgW(&C`twfQG*tWxylbtcg#$~jWmVhskF*Id(&MNo` zD$2||(SzmLnTIpCg@qLEm9;{DR_?*WK`h&nk1_a>=jc8F{s_iA2B+SDF>=Bra zrx<3-Q^IU4<@yk2Glbbg@4C)Hn4QycOnPf@oH@veUNmKJ4hfmqy@`NKyzrk73gMGu zb}aKVM}Tu8<4wy&PFh8OgQ=KW(iC_RNHy&cIhoGRmc1_4oOvb@RregbNp3NG-)l!r zIwfn|q6)E=o-A_3bG$AUx$IbtyJL~8Nky^-6UkaBA^{h+V0zO+1ww<}evn5d%*e)k zzc}U5uT1uon^p&PuiI{O zNxfXc8d+|$*T8*|W3FI_w%xwh@4-;s&nLTKb=Pcn{Bk7kxXl&^PRAA}zVBy3G>p(7 z4Lw?bD3mOAtS{{XK@6aWAK2mn=&OIN=xT(zbN005jikr*(4)mz|t}IYZCs=8Er`De_gTwZbMXq)2tS^^a<^w)$zizBr$H*j}?zgf89e%%_%Zd-eTv zy0frst<*Y(Z8fZR{aa(9wUTbbs&p@DGh^n`rjbq2%@8tw_nB?2bl{TSd~DgZdZTJB z*pvuz*Qzfq+w&)7>Ap38yrQ6B@wE`ZJXdCVYZw?6B9W;*chF+BVY-u=mQ{_Q!hU;rJq3)dlTv+Ett z-DDSn)qJX5l&KNC{xA4Dm1JQPUgWQw!R-;;>LNzMtG@frqmOUV|8C#%-0x8?`F27y zv56^vDK9k3QW$dpPUV15h(GX&~KARw=NVGB;F21x1p0#YdCLx605 z6A*;o;OtOK^G}W3aK$vC!T3stj;Stn$GjvrYVNA(z6?6_EEKv59B3VK)dJdR^Z{a>8H$WvF zp{YIqE;!81V2;YxO#-7iH;(xz;}ZXWbkmwi7PiHy&=!n}4{g!NXy>~N@;8VBmF)FJ zrI0g~(D8^#5!ZIie|$~lXw#r7;dkK^8P;6~d`d*S$bI*h;4JL1KjzsVVDSH(U-)}{V{(@;AMyNh zS9#NNm#|>r0&-W;qDmokst=}7Avd1FP!2X zJ>tK-elrv1_Ga@&fk*!c4~3vok>N1|cuYeEhlKvY$^QiuK@f>gNmlYa@d)z@2bche zOg8utJ|x{mJ!2>(#JlV#_FT(GY$!Qmk&5VJ8mo_)y)NwM6qA0FN)Ho%iP;bytH`bT z84SPnvLOZLt_T^#yFJXX_tliToFU=$oL8t|qtp4ixFsx(C>ds6v!}&C)=Iqi#bqtW z&!v#H8-N!tKJarmzDX|Wa!fp%35y0U09M|R_4AEOBXU!RB+?y|i?1J9P1|b6Sbn`? zt(f#mv!ZjgM4bjsK+9 z=)_fyFL3rF;W=*8q6k+UdU@|e6z2Vk?olZ5Ghm*-L5+kVSpZ($9jXa(Uh14}gQ9Zb z;W7JQ9M`3ab{{>`173EPZ5i9$OO~GT++Fzl!ME09O5`qq-SPr|dzbK^qw2$46ok?8 z$=!m}B-t}|z3(gVzfl(uL-r1J2IV;9c3d% z$faWx<%ugwRrzq8{1nZ6U&MIq$!_41Ok0F)&2pzguY}>n7!{xqAM9G|s zjUr|QVA#NU)NtUp zQYgIv2Z+!H6M_ieNjOw;mqswD)=}{kg;S(o0j6<>KU$%asIw7ymJX!@bBr?31L*OI7aQRJ~Wq@5vPw~))BPm~POtEe!s6gpjFM>U3m~R_IY7p{~SEmz4kL$=2IQv`| z9!jtavpj%*Cj-!*M=)p$4&V`xh^E!$eKLEzvm>zZSQ(t&mBvjAs4>xiCR=>pE(Y6F zt)su2F&M?oa6A_o&RwSynF%)|6v|3Bq?r#A4r({#U&+_HpBZD7BJQ@&2uh2S=roN= zIX9is7%K)>OKH|Ha@`u?K`#N2_{L z3r5DAeo}KWW_aHMU**1|>2$`JTD)3~WMax2t2&w743@@Nl)P$|hKSA2ur#?Cv!HLC z*h-;1o!D#ZK*&e6GFt&(XZJxa&*hcYs|Z44%(A{cLd!FBZ~l7uNE4_m&7v|f9@1P| z`MNKEt$f}GPvsGF_iIa5)w0=Ff*o?dwraKS)thwr+j$B@t-07)pwIlU>LW@(y}8y} z>%dTaj*ER!YcJKC!54w};Llj8XBa*Z`HkSH7$$&wr)Asl#Ur~(`vl07&ZXu3@<#wk zb=k6Pd@6aWAK2mlXF_*Q}gb!!|5001OHkr*(4?OgwF6E_t9ebWAi z(@mP-2b|pH%OxWLwMC2xhAPr+Ki`rgjY#gQ7#59cpRm+CfR;a91C1}gI z{5SWf%zm~LpYKv2?X69hs;X?C{cJz`^Pb=Ha|@T}8+GLetJ$hKc2U((QdKOw>{M!Y zwWzk;+ZS@`Zyc=G!>6PQ3_wVR-*+;oVjATX02Yb$}S#%xpK{_RcGCzs_Q7#A6iAM z!>B-GkrEWlSo7|rGtcLjN1B!)bU584GD!A@bsI9!$BZ+F(sxIaesp-7|wsjz}=6fqpZ3$}P#4qp(8g_BwWxqKgzCtK> zA3%23fg6|~CHHRKQV3Tj>a{A~8D!>o zq8475vRP+^m;=FfxaC#Hb{XxNYf8y%n%}qW>C$z)8)`pUWb4dfLX%Ftw<8k4t`pF= zxHt*6I$~LA)||8Wa^VHZXu;)58G{xK<@y_>MW|?hQF9+|S_!$?q|>ZeO~y^q{Y}TV z$n;&;Y498!Bu(F<6QG#^4k>t^{*pB~Fnf-J)*vfKcYz(`6`qw7NnLWYuq zBqOGUCmUWjzDhH9=R)k9cItPlj!jpQ>?&)1%4yq}bQ*VpQ&a$9X;gB}raNI*>zK*u zOhm7L5nZs-LjbO&QQpXlTZRb^zF~5@CTtl)M0xjjqzr^QNk8|y6lgt^?gA#e08Wbk z9Rg93?LoZAF6K-$O4d08;T$#SApxhFm=kC`$yo7EU~4T?~qEQ_Ese8qSlKJ zq671zyMle9)8B(URUI9uu?%TGG(2`L;DPQwqY~JHOTe5}1sL=?RF8e;x@kjL#C;fl z#41ex9&q`k$Qfb!hs`lSNK!hQ9+%{eTZyEQCMl8FrZQF{r&ft%Q7))Mk|-VAF`^bp z1$4;cLv+Z;9T&Gj7HmPGjKB9E{4%2iK@I7Y;S7X^1j5Ku>==Y+8iWQ)9|A#*p7z;( z$x0B!M>&Nnr?&vUZOC$M+kFJ;m7XAfR``kL1?b5~5|FZ^3#2sC3>ix4F_gwo8VIE{ zN*YE8Opn80+5*IEgBm*MskHvtQ38=M${@;S(h`VbQ?6qWoe2PfLxC_WrYrca8tw(SMz#QTPoZ#slc+-Fm~>qP zG*8-BIke!)1nsSZT%^!irb3I}cf0~ac7^Pez|Ek$w3_S!k% z7kwK=akzV48PfMQ5Syp$D&-@Xl}4ggKQ}Z-&dV%`^h=6wiKi^vwVKEHn)pBFTt>DX z_Cb(9=rc&5p?8_g$`f^96%v65_ldxZdngra6sFCpRkB=v@^HVUOk?%hyk4^_MRfve z>>H+CX_awVQN3!`TlnZQg$G@;+fKU$Re3q@>}#`Gt=au2`n=#9enKTnzz!RNvOzkm zP49F{dFoe;QW=lHsMb*CMHtK9CrQW6P*m!!=V|mViLW2I!hfDtg zP)h>@6aWAK2mlXF_*Rqr3E&P7P54%V19fX02mk;iLX+wWE(8xv_*Rn~3mO7s2$MJq LB?d+b00000s^u9)