From 1e4464ca5e8088b06c1fe6f18573047d7d00fc24 Mon Sep 17 00:00:00 2001 From: liyh Date: Wed, 24 Jul 2024 14:53:46 +0800 Subject: [PATCH] 1212 --- .../版本日志/SGGLDB_WH_V2024-07-24-li.sql | 68 ++++++ .../AttachFile/webuploader.aspx.cs | 7 + .../DataIn/PunchlistFrom导入模板(旧版).xls | Bin 0 -> 25088 bytes .../Excel/DataIn/PunchlistFrom导入模板.xls | Bin 25088 -> 24576 bytes .../FineUIPro.Web/Transfer/PunchlistFrom.aspx | 159 ++++++++++---- .../Transfer/PunchlistFrom.aspx.cs | 115 +++++++--- .../Transfer/PunchlistFrom.aspx.designer.cs | 157 +++++++++----- .../Transfer/PunchlistFromDataIn.aspx.cs | 201 +++++++++++++----- 8 files changed, 528 insertions(+), 179 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_WH_V2024-07-24-li.sql create mode 100644 SGGL/FineUIPro.Web/File/Excel/DataIn/PunchlistFrom导入模板(旧版).xls diff --git a/DataBase/版本日志/SGGLDB_WH_V2024-07-24-li.sql b/DataBase/版本日志/SGGLDB_WH_V2024-07-24-li.sql new file mode 100644 index 00000000..3237026d --- /dev/null +++ b/DataBase/版本日志/SGGLDB_WH_V2024-07-24-li.sql @@ -0,0 +1,68 @@ +ALTER TABLE Transfer_PunchlistFrom ADD Num_NO BigInt NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD System_No NVARCHAR(50) NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD Sub_Sys_No NVARCHAR(50) NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD Cat NVARCHAR(50) NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD Raised_By NVARCHAR(50) NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD Date_Raised datetime NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD Disc NVARCHAR(50) NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD IsEng bit NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD IsMatI bit NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD Punch_Type NVARCHAR(50) NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD Required_Date datetime NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD PIC NVARCHAR(50) NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD PIC_WUH NVARCHAR(50) NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD Correction_Action NVARCHAR(500) NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD Actual_Date datetime NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD Cleared_By NVARCHAR(50) NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD Cleared_Date datetime NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD Confirmed_By NVARCHAR(50) NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD Confirmed_Date datetime NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD Verified_By NVARCHAR(50) NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD Verified_Date datetime NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD [Status] NVARCHAR(50) NULL +GO + +ALTER TABLE Transfer_PunchlistFrom ADD Remark NVARCHAR(500) NULL +GO diff --git a/SGGL/FineUIPro.Web/AttachFile/webuploader.aspx.cs b/SGGL/FineUIPro.Web/AttachFile/webuploader.aspx.cs index 4880d08a..821158c6 100644 --- a/SGGL/FineUIPro.Web/AttachFile/webuploader.aspx.cs +++ b/SGGL/FineUIPro.Web/AttachFile/webuploader.aspx.cs @@ -778,6 +778,13 @@ namespace FineUIPro.Web.AttachFile } #endregion + #region PunchlistFrom附件保存成功后处理事件 + if (MenuId == BLL.Const.PunchlistFromMenuId) + { + PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); + } + #endregion + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); } } diff --git a/SGGL/FineUIPro.Web/File/Excel/DataIn/PunchlistFrom导入模板(旧版).xls b/SGGL/FineUIPro.Web/File/Excel/DataIn/PunchlistFrom导入模板(旧版).xls new file mode 100644 index 0000000000000000000000000000000000000000..1c4a6ca51a5d96c1c5e6d2442701ba1667d7ba06 GIT binary patch literal 25088 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 T-6^HH2a>m4c8}M{Rax*q2GMn# literal 25088 zcmeHv34Baf-~YLjNircJAwm*l5E2rRMF>JRK?q{6*G?u9VvQx1G%2yizE(r+R9n>2 zYN@5Pv4o6oV^c0l1<33%y>?fsEnyKjGiV0)Io-AT*vG zq8ia2k=oo5QG@7&SO&2yqBEikVmZX}h;RYshFAfyBBDEDB}5Oz%7|4EJrTVSy%DP- zRzs|g=!2+5tbte)u@<5)Vr|4ah<=Fvh;TvJi-D4mlb^50pNd4P^sG zJ%)1NYg{WZl^~T*>8r4khUz3v8PB?+=9#E@OEv)40k0y!gvK4^3&>OddDZfXeF`@d ztk;E&WyA0rAlg0wt&k$xgdk&B8t#V^gO%WKs6X}HS1q6Va*;uvlLo!m!Jh4NIpugb zM_>-<{KZVgcBl{I%Gfo;-fSf5CyZpNP)++k6JkXj1_-3XAsDzh?gWe`lt-K6T2Z`i z7b*6O*XH6##MnpOuhfbF1!A9{~ zTVT0OoJFi)VH0;N@G=TEOhw%ras6d-RG29&Z5wEXUTpgoWDVilQClik$U#6%v5Sc?U-W{g96v-&2`>gsSTFsdk#_hOxy zjwQ1`Ru~&&RpM#M7=*H{mBw+^)iLPW)vdGIE?E+ihLuPt6Z$c&LBV>sGuD^j&6qjX zyzWXAHDR5aA{Xb47VoR8dtm8PmltNO7=l|XfN<7CPe2njwO$WiT_s)33$sqg3ywk; zGfI)_H5l855T$y_#aY%)iNaP<4KTJ;VnS~$EKOUfE?TKK7MJGm-mrFcbrX1|mokgd zN31b7gLit%nI)x_OXXNzc05Yf+G4k*fvF%*wgYQ+fff}F(4CTToq%667L6KKVxOQd z07)n#qDWl5GxktVt9r(wwb5G4yjp?_$cykl2}8j)9K(bny)`&VRFeOH87_#sCxe|; z+@7?f7VYqtx&0aXt1{fl3cRircs)fptp_Fho3=ac_mtqJ?UL{2=26z8EK_@lenNXg zC3@N~D#2+FsRSnv6yfI?yf7NuNNyk6YbwEM|7ilp_LI|>!r`~3^`gD1NWa9*ZF$+{ z(7%DGzq<+ipwB@crgjqHw5K(v=WyERa(GG#r*ACM)85yhPk)q)?Jw5{6_MZrqP4-L z^`bqpNRMe))KgtgltcSwb9j9bPJ3x{cz_76Y5@-x;k4&Ar}wc5x0F-Giu{IFo5F z4gG?iFNyHI=Jbx3$Ha0c%gg;l2Iu~)5$U1-WOF&C^8Yfx9elKtHSTOODOwuZvbA6A zt&*jw&$7(mM4-ZRFL!Z|PjjIZ%3!Y#xGt2nt|y#ftcW8P*To71DlZ{hvmo_vSd}J5zhfTBs>kl-OimmOBu>2z#J7| z8U>iz0MqLWOXXS7n1)uP#-M%~1C6=HR;8ymQm|424aUY2va_@0CB(>VLZh@DmRj6z z==qEkBwtb}RW5|O>OU=n#xY5VKI#=Uk^2Naw6$rlg|hnlfWfiUCrk|{`GhG<@(ELz zCT zsf`;qT3E{T@uk61^6o&V1l*IUz4bYQg%E|Bb(1+J9W$umnwA}tG^S3e)I}5qez|sZ zc3}r*?v3BvKW(8M9=DXjtW>d%nGk(}rI38)@G>EO=0fh|moi9hnXh}PCUpG5t7FY3 zASex1szc{Dk`P_W8yc1lfFvP>iEk(*z(h!Bn39mvy5Po2b?E3q(u5zDNlen9F6Ak; zB81McBq6#K!$FA1Ckc54XXA%<E7fUeB7`5NN=#C9 zq&%fogoFbnRY#XXt8FPrLSDfpjld%bDNKArA&pIhgoY^zku;;!N_8Skgz&>bD$(4x)i?4;%t(TSFlM76Cs6(Zzv?nL`Z0uk`S&JzZ$9|Uun`~A>&F@LG?)4 zgdQz2NJF7zOT6$g6_TZq^T(L*pZ*P*(!lNaGX7Z5tHgQVjw$ie*31~PH2yOEiId*zV-E!1oS|P_?Oe^L%h^c#yqnK98(TJ%>juTQRoE+ec z_?Pq(3oVLJl|d1N;YGOM#6Zo2lsRp?&d>!8UZkmRu92#&Ud<#dXK@nGu?5G}6)P;H z+m(lO!f?{^c&1WuZxxvs5>-G*n=zSjs|ED6u%X^ z!&-!qNVS~wsRC&wk@RUPX$>M>J7@VMOQ{|pB@CBZp4Fr_IFx#GaJMdTogz~gY2?ZuLfgRHSt0hbXc$1*Rk* z4}##O7g$zL$}Lto;)N=Z-RomX<_)rYeK?sD^P_@Q3+i{UC|Ib9f(gS(E8+AEXGl%^ z+2zg9_2`wqV)PX5W_8TfP*>Ayn4F4>sDb0Qa!d%t$!%?>#Tls9f^dpq55Y*N6 zBX;VpbCA5=;O=+N#+qAZY zO{D>=28K_YHYIU#o7S;uQ={lm+cs4a?Pt@bM$uumZK@>N-=<9^(Us6mENn_6x!k68 zEo>@{=r!<;jZK@9IJr&h*|e!qbR*j~RT3Rw)22qzjcwahNpzr1n@XZ9u?S0>hAY^# zzJ*O`kH`nTCbn%#;^a0BvT0MJ=%%)9swBFBO`94;H?wV1CDFk)Z7PYb#3C(i+DO5s zAr>~JEi<=ibK5p0adMl6+O(-rbPL-yRT3R$)22qzQMPTWB)XwZn{v^EG#+e_$$ab~ znu#vUG`~78GrjkxocVDaHHt1BMS6tQ#GaIV|0!uzi^$TG!~}thM78{LpyNKL7ZEJ5O%g_lU*i zd&Ly2IrsjLmu_C4+W7R(?ib!`=h8DU-_d2Z?o`ms&q^i-ZuZ`CxlPrt1JjEOD&4xB zS>^cdxfOp-IF`{VtJZ}D(>~sFReNzyz=az31F!b|+;>RxIjwvA^4;UQ*W&L4)G4Ei z_*`AFTBtD(}`$_k2$kjJuG&=gF_J zEC8T$F!pXhtBTa z&|=Q#shz6l*SxHWc|3E~!v}Vr4(?7)K3)ShWEY=)v9#LmTgonQL}Eiaq5 zN!Q%(edpN;0ZWH$9GCRVC06g!s8tg;U;Lob(}v7tM$x8EzCQbTukE{6Ho2&JxApvc zr-y%jWo*f^7wv{N8h`TC)Gfaig&+H6`$xrhE~M0&#dA1 zZhEdyil)qf4<26l<9^@f*HsT-H{966_U(R=0chBm2Qa%u4|1v4Wm_&Z#!exaIYvqRn)EwlF488>zOj5vLX zu>I7%W}iM9*kbX~usr9Tf*dey+XznMy~Z=nmVORpxwi{?L!`Aj-T)9x2+)g*t`7)d0wd%Q_*cio2SV| zu4#40w5f3HuB(y6#wSO(wLyy+FExXgI zdI!gu*A|9`EZ_0>j`#b0w>fiq+4qB%d^plwKY#DW)K3JXq?0n7le2V>9r{05{Yd4;dRq;S_?_-TBd~*DYO^bR~t57qfynljM@wVd& z6P(+Jcl)W{^%ot^MyNkbeY<`{@AJPMOln-aycy?GHifU-+rRH0 z-H)V1zt=aiX<3Ic-;AiSW=P$77u;vGZh7dzK`&v|`LexxbPJg9u)(aVBkSC+;Q4sq zlEX`nESoni)uUEipA`e+bd~GeZur*4DIfOjv3vW_)uSRexoY+{$qo3*?&i#uuJ_8f zE*V`nJF?TT?vwVEeD+a(?}t4Ky^E*qAA74?WKPESTkmhW_S5&*zIvbw+WN5bo;LBf zM<@5~>sRT~g;ldz#O7GtVAYgPOLE@1bFA{M^pjKHTb}>c)LH*kW|&vgJAFG1o$lg& zso-wx3Gcm+7qvR8TblBnoBg7K^yKO7CSE-;blZwv&2AO$_$4slgZj5uR61EaFy!i2 z<4$gkpE=;+XCH^=t1lnQ%xe|#I3|4Lb-Ta^?R;up_;`Pdy+ik(-MTbroNC;X9;#3C z3q#uX+^^Z7yFB`Q_^@K_$ipt%hhF~lZb4h$A!YXjjCyuwnDBklhOOU!?*8S_KTg}< z=-#tz-1V;?b=(!N|G2;2{*c4twI_EMpBUR}V{oysf(nEgiU(lf*f(>R}O zytw%vUjWw#j~D43K28%vl+)&aJLE{P^Njn`zMOhCtJAq7RceoGuyH|LgY{Xg*gre9 zruUEDcYf?x;813tCU?XA#~(C*v2D(i;wAskdaT^)aO7HC)XCK1am^2APdPqq!{*wW zUYR4Oub=eeo__n2&aRI<72>_I&8NXjE0mx4L&yD{x5Xx(J??t0ZTyc72l{4jUO1}X zC7%_mJ&PJ8e)rI$^QFf9x6R*jT)*o`aN+8XhqJc_-i%idZ@eTi?Z&{hTN+&N^5udp zx~=D{pV_nb$wfY8Dz6(V$fisslenB+@cwqtdBY@riuCgJfx%qu%X}5=p8I&pc+H3r z-+ke_u+G()XFfh}mwO}JrBRe`r{C_nYzx!`%@}at-L!qnR~@f7DDxX8^JNi$VH=^;~N`n`+^KW0rx3hmx$coYB{Ms(gKQp`Qlbmf4 z>*sgBQFHyKm}C3Sw0S%>Yt4iAgvnp~emT%}(go(ZENP{F*WVFdvj#Wt@#yoSQ%uGW z)9n4%eN$Le>%Fas>Jz=b_~Pi#=F1B0N51F&LS3ukOuQn}UU4IakI@Yu)357ubhUS^P)W+ui!6PD{?ZzU9L|pWUjv??SzhB)h48AN?sT?t5u@ z<(s!$gX`Yj)b;l2CRaQcr_Zmo;fka02fJI$JG67|DyRNYYvMBcxHtZ0;y~ZinJ3PS zeUei@-Ld=pNljX;Y*}?t_s0cuDt>s*^{b-59V=E=3;)^whuC8qGY%}CSoz%2)YOb+ z!QI|=2+Z0Zy7CvVt|MHZ*ta?x960~z_B-|T&F|!WG@{qwPaceGc0&7mlizPV^}7|e zATR7i`3X+VoK`#;ai?QaJ3-}+BT{MMC^r=lcr>QPwYQU^;kW>0e>5Hq(i>kPI2DsT z(!5Z4HwCew&~BwXq8Gk;VI+dD9&Pc^BAN$M&==8k#c7L^x*89}8G)s}DW`HZ&zUXCxYGqn=(iK)&U;6I-2D)W;rLboU@n< zrN=Meo2!YjD2I;i@t|3t!VCqdOzuS`NCgP+gi`xebFpcaD{E&}SqGd}a4ug9E|nSA z>(Vu_kVj@Kt%@#%ROVIT_j5IGz|zs86lzl&rI@xFZzsw6QU&{1h(t$zRgv5gB$3Jm zyg@bJfF;_Z8fvrlwB@prDPGkl0xili_Z@RP%*831+(QL3-R5fIEGW!6f~EJE7a>)k zxrG?&LpI#QT+BR8CYxu{@fU&F6F>Tg-9Y@eQ-}Zej=`UA=q?HW_|&ls#4#)ke~pS^ zgYeUd|GN$WHjRzLfAYpy;Rv26mN~LM2e7(&RX) z#$-G>PSPAp3k#g2In5|?KALl>JX+Jsac%}2&Fyj=y@gGD^gkRq4v(Bf9Q_wZj-ywb ziH}~qkmKkrX2Ow9{ROJ+G_0p`<8g!kk#@nqNOht=hp?6Kp_L{+L|hc8ZSv5v-SImt zXb>5j+fc>s-~la4ENRH8N=QRH@KYI*uaFG7uf@uiP>tUaVz87uBt+x7O~BbR6V%&; z&xJB9h$cW4&U-=`{)O4!zRQFa_r}f8J?db`V$spM;7bHMhk0~4GBPQL4 zKAW%sG;ypwx{Vf*K8KJlcC{o3&BT2MuC7dwNa!E>8R(^>@xT2+NclhXGhlTg34dVi z$lBtA0&$|WF1YK;y1@l26LK^}4>pVe87PcK2KtZxSjeLz&{*UK;adn}@qc>s$(L1-)b5Jv^Gc?{jDy)W zL664k#2as0zv7N|_#%W3g{O*^p<>g-u`>gHFdhw&hJP*gV~ueL6^3gV(uQcrCTPkK z{6aw`agcTC+Y$p%jLrmZCmtb(g0DW@B?K6$Wz8GkAGo^zae@DK7w9RD`i${ZFr+F& zYG+8*hSc7WIv7$%L#i>P^yUtKiTee<7lZKuKfKj|-*c9$qA`Xdx`C1t8@(JSoC)wB z9sWYAMQ0cRKL98RU2{0PXsQ8-PTB?KQU{4g*Kne2H*{lDpfeK)%R5mLI%6DbhihxV z(3M)kp)(*cjg5qxQ=ib$Ux<~JOE8o}eU~K0p+i#dmAW_nshfcA!50*1_*O?6?vtTw zGW4d8O;C?(fMv-9yj28Mbz;w=F-!|7#;PTPltwr$N}%yc2R7o(w{39BGWy!ZZ^ws|oZs|4}F~4MMqwguobQT5qFpvK)G zzsFH&|TFzQIyfMVnwAXa=l}1w;1)n%l{nopDWu7t_5Pt~5Vu*z*q_ zoNGTYDXO0cuP4F-#Oo9hk^>qk)W$n;jA?~;fH^FlQB^{Isz{wHUh9-n{}SbAa!;@R z@K6#}*W`XJUXyZyR@B$<9T@`+B}MdFsF(^YAMXj|O9D99>}q^w(G6N?SQhF^p}>i1 zs}}Qk6^RwN81r@*!$*}f=GCCPZi2T*lXf$~J3zYv4~YQ;9by4l0HmDD=xl@p%-|ua8c1(itdLB;*C&Vgi)p(D>8#o%a&uQ zA}ktoe~W8c#-c^W15ArlK+f9FMdTp%7|=08PC$+%lQbF~V_-iiXNMel2FIz9qg5== z*&|2o%5x6r&9sW;IY;EES$R%_9IbkJ&Ixle`8m&(L5^0oJXaPuYGIyp#<)nUSDtf$ z6tdXcsxqR!akwvuA{_aB9IYNjO7e%6;tG}H?2w~%GS8`zqvu&XXAeGlNXl~#7)Pm} z@th-a)C+h{gB+dG^3t6!uoca|8GS%3y$o_~Pzz4!jKNP_d#fCvi3>`&1gaY_xIfk! zN7--ePwJ~BD*-`2Eg?IR#i8i!hh=rp{U4S{)KbgztkjRwdXT-)v!S z{Rtuk7tyj(j;B;I55GYYMmkZ(r$Pl*ft*zgyI^$+k!-MlS!94=P~~$-dknm^Y~*tT zjo9tP{BV5iqztNHK9yzbQzD8WGJ!ggW^At&R3{$)zJ141~n6R>{6y=kN=EmC48 zPBwjFmk{Rq;@^5<@5&yaS|IGsA>EuSV9-(eQYYXap)D6gE zr~}j5jlR7~>ooFmT9Z+p)+w~kqE!H`sc5}G>nFnfC;WR@fcBn(11rB$b%B~(Z1ZR3 zyQ|u_J9w=veNhw+a!5~@|M^rbR2qt3mYVCgdb7yPFADm*lCJ|UPelg6MSdHp#8-v- z3dvvde=>b8ek$gW-dYO(5bLei`-my%M1PT|65ZqSG=?~_!!eBI2K_5$pBGSo?+zi@ zB#^rlO?&_MCmmB=KU}C`0e-uF2nK8iA~`zY+aMz3B;i8-@D?JCd8vq`XAUBbcX^03 z#;rh<0*#qFz(nJo8cbAwlEFWc%kxxD3?TIAEuE>Tcot2U;q5Qh$9Is$`;|}P=$pvI zPxL+TFscjFvecQ8q{d5wwfd8Ostczs5-@ui%pSYr5!lMmH;DNI zwb%O|aRg=$(~<6_3WI?5?OUh;{zc(+%l{V@TPo(?x%@4tMKU7I`_v>6hzL2+xKKN_ zL8P^2S43At+M-E8sSilaN<0*#l!Q|m6sRK*-5AQCtjV~LtXxD|hnzR$2}XU2&bPWF zB^>p)cIY7;(NE|+jUH{&6XsZ?)XS1VNt;>=PLP_Qhql5sRy;|f zQ=wS=;?XO@5hFmy)5b^}fxZ!F`{DTqJprLUOXC9lB{3Y=`hbSwq#y(_SWLr3h}iK# I_rEdxKk#+aBme*a diff --git a/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx b/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx index e534c8cc..9b734955 100644 --- a/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx +++ b/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx @@ -4,33 +4,33 @@ - +
- + - + EnableRowDoubleClickEvent="true" EnableTextSelection="true"> - - - - - + + + + + - + @@ -38,60 +38,57 @@ - <%-- - - - - + + + + + + + + + + + + - - + + <%-- - - - - - - - - + - - - - - - - + - - - <%-- + --%> + + <%-- @@ -110,6 +107,84 @@ --%> + + + + + + + + + + + + + + <%----%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%----%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -143,6 +218,10 @@ + + @@ -156,4 +235,4 @@ } - \ No newline at end of file + diff --git a/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.cs b/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.cs index 131484b2..493ce1b1 100644 --- a/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.cs +++ b/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.cs @@ -30,57 +30,60 @@ namespace FineUIPro.Web.Transfer /// public void BindGrid() { - string strSql = @"select*from Transfer_PunchlistFrom + string strSql = @"select * + ,(CASE isnull(IsEng,0) WHEN 1 THEN 'Y' ELSE 'N' END) IsEngStr + ,(CASE isnull(IsMatI,0) WHEN 1 THEN 'Y' ELSE 'N' END) IsMatIStr + from Transfer_PunchlistFrom where ProjectId = @ProjectId"; List listStr = new List(); listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); - if (!string.IsNullOrEmpty(this.txtPunch_No.Text.Trim())) + if (!string.IsNullOrEmpty(this.txtNum_NO.Text.Trim())) { - strSql += " AND Punch_No like @Punch_No"; - listStr.Add(new SqlParameter("@Punch_No", "%" + this.txtPunch_No.Text.Trim() + "%")); + strSql += " AND Num_NO like @Num_NO"; + listStr.Add(new SqlParameter("@Num_NO", "%" + this.txtNum_NO.Text.Trim() + "%")); } - if (!string.IsNullOrEmpty(this.txtSYSTEM.Text.Trim())) + if (!string.IsNullOrEmpty(this.txtSystem_No.Text.Trim())) { - strSql += " AND SystemName like @SystemName"; - listStr.Add(new SqlParameter("@SystemName", "%" + this.txtSYSTEM.Text.Trim() + "%")); + strSql += " AND System_No like @System_No"; + listStr.Add(new SqlParameter("@System_No", "%" + this.txtSystem_No.Text.Trim() + "%")); } - if (!string.IsNullOrEmpty(this.txtSUBSYSTEM.Text.Trim())) + if (!string.IsNullOrEmpty(this.txtSub_Sys_No.Text.Trim())) { - strSql += " AND Subsystem like @Subsystem"; - listStr.Add(new SqlParameter("@Subsystem", "%" + this.txtSUBSYSTEM.Text.Trim() + "%")); + strSql += " AND Sub_Sys_No like @Sub_Sys_No"; + listStr.Add(new SqlParameter("@Sub_Sys_No", "%" + this.txtSub_Sys_No.Text.Trim() + "%")); } - if (!string.IsNullOrEmpty(txtStarTime.Text.Trim())) + if (!string.IsNullOrEmpty(txtStartDate_Raised.Text.Trim())) { - strSql += " AND PUNCH_ITEM_FINISH_DATE >= @InspectionDateA"; - listStr.Add(new SqlParameter("@InspectionDateA", Funs.GetNewDateTime(txtStarTime.Text.Trim()))); + strSql += " AND Date_Raised >= @StartDate_Raised"; + listStr.Add(new SqlParameter("@StartDate_Raised", Funs.GetNewDateTime(txtStartDate_Raised.Text.Trim()))); } - if (!string.IsNullOrEmpty(txtEndTime.Text.Trim())) + if (!string.IsNullOrEmpty(txtEndDate_Raised.Text.Trim())) { - strSql += " AND PUNCH_ITEM_FINISH_DATE <= @InspectionDateZ"; - listStr.Add(new SqlParameter("@InspectionDateZ", Funs.GetNewDateTime(txtEndTime.Text.Trim()))); + strSql += " AND Date_Raised <= @EndDate_Raised"; + listStr.Add(new SqlParameter("@EndDate_Raised", Funs.GetNewDateTime(txtEndDate_Raised.Text.Trim()))); } - if (!string.IsNullOrEmpty(this.txtTestPackage.Text.Trim())) + if (!string.IsNullOrEmpty(txtStartRequired_Date.Text.Trim())) { - strSql += " AND Test_Package like @Test_Package"; - listStr.Add(new SqlParameter("@Test_Package", "%" + this.txtTestPackage.Text.Trim() + "%")); + strSql += " AND Required_Date >= @Required_Date"; + listStr.Add(new SqlParameter("@Required_Date", Funs.GetNewDateTime(txtStartRequired_Date.Text.Trim()))); } - if (!string.IsNullOrEmpty(this.txtDiscipline.Text.Trim())) + if (!string.IsNullOrEmpty(txtEndRequired_Date.Text.Trim())) { - strSql += " AND Discipline like @Discipline"; - listStr.Add(new SqlParameter("@Discipline", "%" + this.txtDiscipline.Text.Trim() + "%")); + strSql += " AND Required_Date <= @Required_Date"; + listStr.Add(new SqlParameter("@Required_Date", Funs.GetNewDateTime(txtEndRequired_Date.Text.Trim()))); } - if (!string.IsNullOrEmpty(this.txtIdentified.Text.Trim())) + if (!string.IsNullOrEmpty(txtStartActual_Date.Text.Trim())) { - strSql += " AND Identified like @Identified"; - listStr.Add(new SqlParameter("@Identified", "%" + this.txtIdentified.Text.Trim() + "%")); + strSql += " AND Actual_Date >= @Actual_Date"; + listStr.Add(new SqlParameter("@Actual_Date", Funs.GetNewDateTime(txtStartActual_Date.Text.Trim()))); } - if (!string.IsNullOrEmpty(this.txtCategory.Text.Trim())) + if (!string.IsNullOrEmpty(txtEndActual_Date.Text.Trim())) { - strSql += " AND Category like @Category"; - listStr.Add(new SqlParameter("@Category", "%" + this.txtCategory.Text.Trim() + "%")); + strSql += " AND Actual_Date <= @Actual_Date"; + listStr.Add(new SqlParameter("@Actual_Date", Funs.GetNewDateTime(txtEndActual_Date.Text.Trim()))); } - strSql += " order by Punch_No "; + strSql += " order by Num_No "; SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); Grid1.RecordCount = tb.Rows.Count; @@ -175,6 +178,56 @@ namespace FineUIPro.Web.Transfer } #endregion + + #region Photoes附件 + /// + /// 右键附件上传功能 + /// + /// + /// + protected void btnMenuAttachA_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length > 0) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../AttachFile/webuploader.aspx?type=0&toKeyId={0}_A&path=FileUpload/Transfer/PunchlistFrom&menuId={1}", Grid1.SelectedRowID, BLL.Const.PunchlistFromMenuId))); + } + } + #endregion + + #region Corrected_Photos附件 + /// + /// 右键附件上传功能 + /// + /// + /// + protected void btnMenuAttachB_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length > 0) + { + PageContext.RegisterStartupScript(WindowAtt.GetShowReference(String.Format("../AttachFile/webuploader.aspx?type=0&toKeyId={0}_B&path=FileUpload/Transfer/PunchlistFrom&menuId={1}", Grid1.SelectedRowID, BLL.Const.PunchlistFromMenuId))); + } + } + #endregion + + /// + /// 获取附件(放于Img中) + /// + /// + /// + protected string ConvertImageUrlByImage(object Id_type) + { + string url = string.Empty; + if (Id_type != null) + { + var registration = BLL.AttachFileService.GetAttachFile(Id_type.ToString(), BLL.Const.PunchlistFromMenuId); + if (registration != null) + { + url = BLL.UploadAttachmentService.ShowImage("../../", registration.AttachUrl); + } + } + return url; + } + #region 导入 /// /// 导入按钮 @@ -205,11 +258,15 @@ namespace FineUIPro.Web.Transfer if (buttonList.Contains(BLL.Const.BtnAdd)) { //this.btnNew.Hidden = false; + btnMenuAttachA.Hidden=false; + btnMenuAttachB.Hidden = false; } if (buttonList.Contains(BLL.Const.BtnModify)) { //this.btnMenuModify.Hidden = false; this.Grid1.EnableRowDoubleClickEvent = true; + btnMenuAttachA.Hidden = false; + btnMenuAttachB.Hidden = false; } else { diff --git a/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.designer.cs b/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.designer.cs index f91c4f96..ff67cd24 100644 --- a/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/Transfer/PunchlistFrom.aspx.designer.cs @@ -7,11 +7,13 @@ // //------------------------------------------------------------------------------ -namespace FineUIPro.Web.Transfer { - - - public partial class PunchlistFrom { - +namespace FineUIPro.Web.Transfer +{ + + + public partial class PunchlistFrom + { + /// /// form1 控件。 /// @@ -20,7 +22,7 @@ namespace FineUIPro.Web.Transfer { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.HtmlControls.HtmlForm form1; - + /// /// PageManager1 控件。 /// @@ -29,7 +31,7 @@ namespace FineUIPro.Web.Transfer { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.PageManager PageManager1; - + /// /// Panel1 控件。 /// @@ -38,7 +40,7 @@ namespace FineUIPro.Web.Transfer { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Panel Panel1; - + /// /// Grid1 控件。 /// @@ -47,7 +49,7 @@ namespace FineUIPro.Web.Transfer { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Grid Grid1; - + /// /// ToolSearch 控件。 /// @@ -56,43 +58,43 @@ namespace FineUIPro.Web.Transfer { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Toolbar ToolSearch; - + /// - /// txtPunch_No 控件。 + /// txtNum_NO 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.TextBox txtPunch_No; - + protected global::FineUIPro.TextBox txtNum_NO; + /// - /// txtSYSTEM 控件。 + /// txtSystem_No 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.TextBox txtSYSTEM; - + protected global::FineUIPro.TextBox txtSystem_No; + /// - /// txtSUBSYSTEM 控件。 + /// txtSub_Sys_No 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.TextBox txtSUBSYSTEM; - + protected global::FineUIPro.TextBox txtSub_Sys_No; + /// - /// txtStarTime 控件。 + /// txtStartDate_Raised 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.DatePicker txtStarTime; - + protected global::FineUIPro.DatePicker txtStartDate_Raised; + /// /// Label1 控件。 /// @@ -101,16 +103,16 @@ namespace FineUIPro.Web.Transfer { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Label Label1; - + /// - /// txtEndTime 控件。 + /// txtEndDate_Raised 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.DatePicker txtEndTime; - + protected global::FineUIPro.DatePicker txtEndDate_Raised; + /// /// btnSearch 控件。 /// @@ -119,16 +121,7 @@ namespace FineUIPro.Web.Transfer { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnSearch; - - /// - /// btnAttach 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.Button btnAttach; - + /// /// btnImport 控件。 /// @@ -137,7 +130,7 @@ namespace FineUIPro.Web.Transfer { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnImport; - + /// /// Toolbar1 控件。 /// @@ -146,43 +139,79 @@ namespace FineUIPro.Web.Transfer { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Toolbar Toolbar1; - + /// - /// txtTestPackage 控件。 + /// txtStartRequired_Date 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.TextBox txtTestPackage; - + protected global::FineUIPro.DatePicker txtStartRequired_Date; + /// - /// txtDiscipline 控件。 + /// Label2 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.TextBox txtDiscipline; - + protected global::FineUIPro.Label Label2; + /// - /// txtIdentified 控件。 + /// txtEndRequired_Date 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.TextBox txtIdentified; - + protected global::FineUIPro.DatePicker txtEndRequired_Date; + /// - /// txtCategory 控件。 + /// txtStartActual_Date 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.TextBox txtCategory; - + protected global::FineUIPro.DatePicker txtStartActual_Date; + + /// + /// Label3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Label Label3; + + /// + /// txtEndActual_Date 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtEndActual_Date; + + /// + /// lbPhotoesImageUrl 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lbPhotoesImageUrl; + + /// + /// labCorrected_Photos 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label labCorrected_Photos; + /// /// ToolbarText1 控件。 /// @@ -191,7 +220,7 @@ namespace FineUIPro.Web.Transfer { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarText ToolbarText1; - + /// /// ddlPageSize 控件。 /// @@ -200,7 +229,7 @@ namespace FineUIPro.Web.Transfer { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList ddlPageSize; - + /// /// WindowAtt 控件。 /// @@ -209,7 +238,7 @@ namespace FineUIPro.Web.Transfer { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window WindowAtt; - + /// /// Window2 控件。 /// @@ -218,7 +247,7 @@ namespace FineUIPro.Web.Transfer { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window2; - + /// /// Menu1 控件。 /// @@ -227,7 +256,7 @@ namespace FineUIPro.Web.Transfer { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Menu Menu1; - + /// /// btnMenuDel 控件。 /// @@ -236,5 +265,23 @@ namespace FineUIPro.Web.Transfer { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.MenuButton btnMenuDel; + + /// + /// btnMenuAttachA 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuAttachA; + + /// + /// btnMenuAttachB 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuAttachB; } } diff --git a/SGGL/FineUIPro.Web/Transfer/PunchlistFromDataIn.aspx.cs b/SGGL/FineUIPro.Web/Transfer/PunchlistFromDataIn.aspx.cs index 39924624..3ef944e4 100644 --- a/SGGL/FineUIPro.Web/Transfer/PunchlistFromDataIn.aspx.cs +++ b/SGGL/FineUIPro.Web/Transfer/PunchlistFromDataIn.aspx.cs @@ -130,7 +130,7 @@ namespace FineUIPro.Web.Transfer oleDBConn.Close(); oleDBConn.Dispose(); - AddDatasetToSQL(ds.Tables[0], 14); + AddDatasetToSQL(ds.Tables[0], 24); hdCheckResult.Text = "1"; } catch (Exception exc) @@ -168,18 +168,99 @@ namespace FineUIPro.Web.Transfer { for (int i = 1; i < ir; i++) { - string row4 = pds.Rows[i][9].ToString(); - if (!string.IsNullOrEmpty(row4)) + string allRowData = string.Empty; + for (int j = 0; j < 24; j++) + { + allRowData += pds.Rows[i][j].ToString(); + } + if (string.IsNullOrWhiteSpace(allRowData)) + continue; + + string row3 = pds.Rows[i][3].ToString(); + if (row3 != "" && row3 != "A" && row3 != "B" && row3 != "C" && row3 != "D") + { + result += (i + 2).ToString() + "," + " Cat. " + "," + "[" + row3 + "]错误!不是ABCD!" + "|"; + } + + string row5 = pds.Rows[i][5].ToString(); + if (!string.IsNullOrEmpty(row5)) { try { - DateTime date = Convert.ToDateTime(row4.Trim()); + DateTime date = Convert.ToDateTime(row5.Trim()); } catch (Exception) { - result += (i + 2).ToString() + "," + "PUNCH ITEM FINISH DATE" + "," + "[" + row4 + "]错误!不是日期格式!" + "|"; + result += (i + 2).ToString() + "," + " Date Raised " + "," + "[" + row5 + "]错误!不是日期格式!" + "|"; } } + + string row10 = pds.Rows[i][10].ToString(); + if (!string.IsNullOrEmpty(row10)) + { + try + { + DateTime date = Convert.ToDateTime(row10.Trim()); + } + catch (Exception) + { + result += (i + 2).ToString() + "," + " Required Date " + "," + "[" + row10 + "]错误!不是日期格式!" + "|"; + } + } + + string row15 = pds.Rows[i][15].ToString(); + if (!string.IsNullOrEmpty(row15)) + { + try + { + DateTime date = Convert.ToDateTime(row15.Trim()); + } + catch (Exception) + { + result += (i + 2).ToString() + "," + " Actual Date " + "," + "[" + row15 + "]错误!不是日期格式!" + "|"; + } + } + + string row17 = pds.Rows[i][17].ToString(); + if (!string.IsNullOrEmpty(row17)) + { + try + { + DateTime date = Convert.ToDateTime(row17.Trim()); + } + catch (Exception) + { + result += (i + 2).ToString() + "," + " Cleared(PIC) Date " + "," + "[" + row17 + "]错误!不是日期格式!" + "|"; + } + } + + string row19 = pds.Rows[i][19].ToString(); + if (!string.IsNullOrEmpty(row19)) + { + try + { + DateTime date = Convert.ToDateTime(row19.Trim()); + } + catch (Exception) + { + result += (i + 2).ToString() + "," + " Confirmed(WUH) Date " + "," + "[" + row19 + "]错误!不是日期格式!" + "|"; + } + } + + string row21 = pds.Rows[i][21].ToString(); + if (!string.IsNullOrEmpty(row21)) + { + try + { + DateTime date = Convert.ToDateTime(row21.Trim()); + } + catch (Exception) + { + result += (i + 2).ToString() + "," + " Verified(BASF) Date " + "," + "[" + row21 + "]错误!不是日期格式!" + "|"; + } + } + + } if (!string.IsNullOrEmpty(result)) { @@ -286,7 +367,7 @@ namespace FineUIPro.Web.Transfer oleDBConn.Close(); oleDBConn.Dispose(); - AddDatasetToSQL2(ds.Tables[0], 14); + AddDatasetToSQL2(ds.Tables[0], 24); } catch (Exception ex) { @@ -312,6 +393,7 @@ namespace FineUIPro.Web.Transfer } string result = string.Empty; ir = pds.Rows.Count; + long? maxNumNO = -1; if (pds != null && ir > 0) { List list = new List(); @@ -320,57 +402,66 @@ namespace FineUIPro.Web.Transfer if (!string.IsNullOrEmpty(pds.Rows[i][1].ToString().Trim())) { //查询第一列,没查到的情况下作导入处理 - var modelOnly = Funs.DB.Transfer_PunchlistFrom.FirstOrDefault(x => x.Punch_No == pds.Rows[i][1].ToString().Trim() - && x.ProjectId == CurrUser.LoginProjectId); - if (modelOnly == null) - { - Model.Transfer_PunchlistFrom model = new Model.Transfer_PunchlistFrom(); - - model.Id = Guid.NewGuid().ToString(); - model.ProjectId = CurrUser.LoginProjectId; - - model.Item_No = pds.Rows[i][0].ToString().Trim(); - model.Punch_No = pds.Rows[i][1].ToString().Trim(); - model.SystemName = pds.Rows[i][2].ToString().Trim(); - model.Subsystem = pds.Rows[i][3].ToString().Trim(); - - model.Test_Package = pds.Rows[i][4].ToString().Trim(); - model.Discipline = pds.Rows[i][5].ToString().Trim(); - model.DESCRIPTION = pds.Rows[i][6].ToString().Trim(); - model.Identified = pds.Rows[i][7].ToString().Trim(); - model.Category = pds.Rows[i][8].ToString().Trim(); - DateTime t1; - if (DateTime.TryParse(pds.Rows[i][9].ToString(), out t1) && !string.IsNullOrEmpty(pds.Rows[i][9].ToString())) - model.PUNCH_ITEM_FINISH_DATE = t1; - - - model.Action_By = pds.Rows[i][10].ToString().Trim(); - model.Required_By = pds.Rows[i][11].ToString().Trim(); - model.PUNCH_ITEM_STATUS = pds.Rows[i][12].ToString().Trim(); - model.Comments = pds.Rows[i][13].ToString().Trim(); - list.Add(model); + if (maxNumNO == -1) { + maxNumNO = Funs.DB.Transfer_PunchlistFrom.Where(x => x.ProjectId == CurrUser.LoginProjectId).Max(p => p.Num_NO); + if (maxNumNO == null) + maxNumNO = 1001; } + + + Model.Transfer_PunchlistFrom model = new Model.Transfer_PunchlistFrom(); + + model.Id = Guid.NewGuid().ToString(); + model.ProjectId = CurrUser.LoginProjectId; + + model.Num_NO = maxNumNO; + model.System_No = pds.Rows[i][0].ToString().Trim(); + model.Sub_Sys_No = pds.Rows[i][1].ToString().Trim(); + model.DESCRIPTION = pds.Rows[i][2].ToString().Trim(); + + model.Cat = pds.Rows[i][3].ToString().Trim(); + model.Raised_By = pds.Rows[i][4].ToString().Trim(); + DateTime t5; + if (DateTime.TryParse(pds.Rows[i][5].ToString(), out t5) && !string.IsNullOrEmpty(pds.Rows[i][5].ToString())) + model.Date_Raised = t5; + + model.Disc = pds.Rows[i][6].ToString().Trim(); + if (pds.Rows[i][7].ToString().Trim().Contains("Y")) + model.IsEng = true; else - { - //修改 - modelOnly.Item_No = pds.Rows[i][0].ToString().Trim(); - modelOnly.Punch_No = pds.Rows[i][1].ToString().Trim(); - modelOnly.SystemName = pds.Rows[i][2].ToString().Trim(); - modelOnly.Subsystem = pds.Rows[i][3].ToString().Trim(); - modelOnly.Test_Package = pds.Rows[i][4].ToString().Trim(); - modelOnly.Discipline = pds.Rows[i][5].ToString().Trim(); - modelOnly.DESCRIPTION = pds.Rows[i][6].ToString().Trim(); - modelOnly.Identified = pds.Rows[i][7].ToString().Trim(); - modelOnly.Category = pds.Rows[i][8].ToString().Trim(); - DateTime t1; - if (DateTime.TryParse(pds.Rows[i][9].ToString(), out t1) && !string.IsNullOrEmpty(pds.Rows[i][9].ToString())) - modelOnly.PUNCH_ITEM_FINISH_DATE = t1; - modelOnly.Action_By = pds.Rows[i][10].ToString().Trim(); - modelOnly.Required_By = pds.Rows[i][11].ToString().Trim(); - modelOnly.PUNCH_ITEM_STATUS = pds.Rows[i][12].ToString().Trim(); - modelOnly.Comments = pds.Rows[i][13].ToString().Trim(); - Funs.DB.SubmitChanges(); - } + model.IsEng = false; + + if (pds.Rows[i][8].ToString().Trim().Contains("Y")) + model.IsMatI = true; + else + model.IsMatI = false; + model.Punch_Type = pds.Rows[i][9].ToString().Trim(); + DateTime t10; + if (DateTime.TryParse(pds.Rows[i][10].ToString(), out t10) && !string.IsNullOrEmpty(pds.Rows[i][10].ToString())) + model.Required_Date = t10; + model.Action_By = pds.Rows[i][11].ToString().Trim(); + model.PIC = pds.Rows[i][12].ToString().Trim(); + model.PIC_WUH = pds.Rows[i][13].ToString().Trim(); + model.Correction_Action = pds.Rows[i][14].ToString().Trim(); + DateTime t15; + if (DateTime.TryParse(pds.Rows[i][15].ToString(), out t15) && !string.IsNullOrEmpty(pds.Rows[i][15].ToString())) + model.PUNCH_ITEM_FINISH_DATE = t15; + model.Cleared_By = pds.Rows[i][16].ToString().Trim(); + DateTime t17; + if (DateTime.TryParse(pds.Rows[i][17].ToString(), out t17) && !string.IsNullOrEmpty(pds.Rows[i][17].ToString())) + model.Cleared_Date = t17; + model.Confirmed_By = pds.Rows[i][18].ToString().Trim(); + DateTime t19; + if (DateTime.TryParse(pds.Rows[i][19].ToString(), out t19) && !string.IsNullOrEmpty(pds.Rows[i][19].ToString())) + model.Confirmed_Date = t19; + model.Verified_By = pds.Rows[i][20].ToString().Trim(); + DateTime t21; + if (DateTime.TryParse(pds.Rows[i][21].ToString(), out t21) && !string.IsNullOrEmpty(pds.Rows[i][21].ToString())) + model.Verified_Date = t21; + model.Status = pds.Rows[i][22].ToString().Trim(); + model.Remark = pds.Rows[i][23].ToString().Trim(); + list.Add(model); + maxNumNO++; } } if (list.Count > 0)