SMRPD02200_실시확정번표등록.xrw 116 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" ytype="text/css" ?>
  3. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  4. <xhtml:head>
  5. <xhtml:title>실시번표등록</xhtml:title>
  6. <model id="model1">
  7. <instance id="instance1">
  8. <root xmlns="">
  9. <main>
  10. <list>
  11. <dutcdlist/>
  12. <dutcdlist/>
  13. </list>
  14. <resn>
  15. <reqresn/>
  16. <dutresn/>
  17. </resn>
  18. <daylist/>
  19. <resltdata>
  20. <dutschelist/>
  21. <dutmancntlist/>
  22. <stndduttablelist/>
  23. <yearnoinfolist/>
  24. <srvapplist/>
  25. <offcntlist/>
  26. </resltdata>
  27. <resnlist/>
  28. <userholiinfo>
  29. <genryearno/>
  30. <useyearno/>
  31. <spreyearno/>
  32. <genrhealholi/>
  33. <usehealholi/>
  34. <sprehealholi/>
  35. <monthhealholiusecnt/>
  36. <monthofcnt/>
  37. <monthuseofcnt/>
  38. <monthunuseofcnt/>
  39. <curmonthofcnt/>
  40. <curmonthuseofcnt/>
  41. <curmonthunuseofcnt/>
  42. <olmtspreyearno/>
  43. </userholiinfo>
  44. <stndduttableitem>
  45. <day/>
  46. <evening/>
  47. <night/>
  48. <total/>
  49. </stndduttableitem>
  50. <authcheck>
  51. <check/>
  52. </authcheck>
  53. <close>
  54. <closeyn>
  55. <cnt/>
  56. <closeyn/>
  57. </closeyn>
  58. </close>
  59. <print>
  60. <printlist/>
  61. <daylist/>
  62. </print>
  63. </main>
  64. <send>
  65. <instcd/>
  66. <dutym/>
  67. <dutunitcd/>
  68. <dutunitnm/>
  69. <appscheexecflag/>
  70. <jobkind/>
  71. <emplno/>
  72. <dutdd/>
  73. <dutschelist/>
  74. <anualcalcyy/>
  75. <resnlist/>
  76. <apryn/>
  77. <deptpryn>Y</deptpryn>
  78. <params>
  79. <instcd/>
  80. <dutym/>
  81. <dutunitcd/>
  82. <appscheexecflag/>
  83. <flag/>
  84. </params>
  85. <dutcdparams>
  86. <instcd/>
  87. <dutunitcd/>
  88. </dutcdparams>
  89. <winparams>
  90. <instcd/>
  91. <dutunitcd/>
  92. <dutym/>
  93. </winparams>
  94. <oldchk/>
  95. </send>
  96. <init/>
  97. <hidden/>
  98. <temp>
  99. </temp>
  100. <codedata>
  101. <popupmenu>
  102. <dutschelist>
  103. </dutschelist>
  104. </popupmenu>
  105. <popuptemp>
  106. <dutschelist>
  107. <item>
  108. <name>사유 및 helper 등록</name>
  109. <func>fOpenPopup</func>
  110. </item>
  111. <item>
  112. <name>개인근무변경신청</name>
  113. <func>fOpenPopupChngApp</func>
  114. </item>
  115. <item>
  116. <name>지우기</name>
  117. <func>fGridCellClear</func>
  118. </item>
  119. <item>
  120. <name>-</name>
  121. <func/>
  122. </item>
  123. </dutschelist>
  124. </popuptemp>
  125. </codedata>
  126. </root>
  127. </instance>
  128. <submission id="TRRPD02201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/resltdata"/>
  129. <submission id="TRRPD02202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/resnlist"/>
  130. <submission id="TRRPD02203" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/dutcdparams" resultref="/root/main/list"/>
  131. <submission id="TRRPD02204" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/authcheck"/>
  132. <submission id="TRRPD02206" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/daylist"/>
  133. <submission id="TRRPD02208" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/close"/>
  134. <submission id="TRRPD02209" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/print"/>
  135. <submission id="TRRPD02200" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/main/temp"/>
  136. <submission id="TXRPD02201" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/resltdata/dutschelist" resultref="/root/temp"/>
  137. <submission id="TXRPD02202" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/params" resultref="/root/temp"/>
  138. <submission id="TXRPD02203" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/params" resultref="/root/temp"/>
  139. <submission id="TXRPD10701" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/temp"/>
  140. </model>
  141. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  142. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  143. <script type="javascript" src="../../../com/commonweb/js/stringHelper.js"/>
  144. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  145. <script type="javascript" src="../../../mis/miscommonweb/js/MIS.js"/>
  146. <script type="javascript" src="../../../mis/dligclaznsmngtweb/js/RPD001.js"/>
  147. <script type="javascript" ev:event="xforms-ready">
  148. <![CDATA[
  149. fInitialize();
  150. ]]>
  151. </script>
  152. <script type="javascript">
  153. <![CDATA[
  154. var arrDayMax = new Array();
  155. var arrEveningMax = new Array();
  156. var arrNightMax = new Array();
  157. var arrTotalMax = new Array();
  158. var DUTCODE_FLAG = false;
  159. var ZOOM_FLAG = false;
  160. var MOUSE_DOWN = false;
  161. var FIRST_CHECK = false;
  162. var iDay1ColIdx = 10;
  163. var iDay4ColIdx = 0;
  164. var iDay31ColIdx = 44;
  165. var bFirst = true;
  166. var sCurYM = "";
  167. // var JOB_RESP_CD = "";
  168. // var DUT_UNIT_CD = "";
  169. // var DUT_UNIT_NM = "";
  170. //
  171. // var DUTY_RESP_YN = ""; // 복무 책임자
  172. // var DUTY_PART_YN = ""; // 인사 복무 담당자
  173. var SELECTED_ROW = -1;
  174. // 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  175. function fInitialize()
  176. {
  177. model.removeNodeset("/root/main/resltdata/dutschelist");
  178. model.removeNodeset("/root/main/resltdata/dutmancntlist");
  179. model.removeNodeset("/root/main/resnlist");
  180. model.removeNodeset("/root/main/list/dutcdlist");
  181. model.resetInstanceNode("/root/main/yearnoinfoitem");
  182. model.resetInstanceNode("/root/main/resn");
  183. misfMsterDetailSet(grd_dutschelist, null, "TRRPD02201", "Y", "free");
  184. misfMsterDetailSet(grd_resnlist, null, "TRRPD02202", "Y", "free");
  185. // misfMsterDetailSet(grd_dutcdlist, null, "TRRPD02203", "N");
  186. // misfComboComCdListMulti("Z0007","cmb_instcd");
  187. misfComboInstCdListMulti("cmb_instcd",getCurrentDate().substr(0, 8),"","N");
  188. misfGetAndSetUserInfo();
  189. misfGetUserAuth();
  190. rpdfSetControlAuth();
  191. rpdfComboCdList(cmb_dutplce); // 권한별 근무부서 세팅
  192. rpdfSetDutUnitCombo();
  193. sCurYM = getCurrentDate().substr(0, 6);
  194. model.setValue("/root/send/appscheexecflag", "2");
  195. model.setValue("/root/send/instcd", getUserInfo("dutplceinstcd"));
  196. model.setValue("/root/send/dutym", getCurrentDate().substr(0, 6));
  197. //model.setValue("/root/send/dutunitcd", DUT_UNIT_CD);
  198. //model.setValue("/root/send/dutunitnm", DUT_UNIT_NM);
  199. model.setValue("/root/send/dutunitcd", DUT_PLCEDEPT_CD);
  200. model.setValue("/root/send/dutunitnm", DUT_PLCEDEPT_NM);
  201. model.setValue("/root/send/dutcdparams/instcd", getUserInfo("dutplceinstcd"));
  202. model.setValue("/root/send/dutcdparams/dutunitcd", DUT_UNIT_CD);
  203. model.setValue("/root/send/oldchk", "N");
  204. //if(DUTY_PART_YN == "Y")
  205. //{
  206. btn_delrow.visible = true;
  207. //}
  208. //화면 권한 설정
  209. btn_save.disabled = !(checkAuth("X"));
  210. // btn_print.disabled =!(checkAuth("P"));
  211. ipt_dutym.dispatch("xforms-value-changed");
  212. model.refresh();
  213. }
  214. function fInitDutManCntList()
  215. {
  216. misfGridInit(grd_dutmancntlist);
  217. for(var i = 2; i <= 5; i++)
  218. {
  219. if( i == 2) {
  220. grd_dutmancntlist.valueMatrix(i, 0) = "Day";
  221. }
  222. else if(i == 3) {
  223. grd_dutmancntlist.valueMatrix(i, 0) = "Evening";
  224. }
  225. else if(i == 4) {
  226. grd_dutmancntlist.valueMatrix(i, 0) = "Night";
  227. }
  228. else if(i == 5) {
  229. grd_dutmancntlist.valueMatrix(i, 0) = "Total";
  230. }
  231. }
  232. }
  233. function fSetMaxCnttoArray()
  234. {
  235. arrDayMax[0] = grd_stndduttablelist.valueMatrix(1, 20);
  236. arrEveningMax[0] = grd_stndduttablelist.valueMatrix(1, 21);
  237. arrNightMax[0] = grd_stndduttablelist.valueMatrix(1, 22);
  238. arrDayMax[1] = grd_stndduttablelist.valueMatrix(1, 2);
  239. arrEveningMax[1] = grd_stndduttablelist.valueMatrix(1, 3);
  240. arrNightMax[1] = grd_stndduttablelist.valueMatrix(1, 4);
  241. arrDayMax[2] = grd_stndduttablelist.valueMatrix(1, 5);
  242. arrEveningMax[2] = grd_stndduttablelist.valueMatrix(1, 6);
  243. arrNightMax[2] = grd_stndduttablelist.valueMatrix(1, 7);
  244. arrDayMax[3] = grd_stndduttablelist.valueMatrix(1, 8);
  245. arrEveningMax[3] = grd_stndduttablelist.valueMatrix(1, 9);
  246. arrNightMax[3] = grd_stndduttablelist.valueMatrix(1, 10);
  247. arrDayMax[4] = grd_stndduttablelist.valueMatrix(1, 11);
  248. arrEveningMax[4] = grd_stndduttablelist.valueMatrix(1, 12);
  249. arrNightMax[4] = grd_stndduttablelist.valueMatrix(1, 13);
  250. arrDayMax[5] = grd_stndduttablelist.valueMatrix(1, 14);
  251. arrEveningMax[5] = grd_stndduttablelist.valueMatrix(1, 15);
  252. arrNightMax[5] = grd_stndduttablelist.valueMatrix(1, 16);
  253. arrDayMax[6] = grd_stndduttablelist.valueMatrix(1, 17);
  254. arrEveningMax[6] = grd_stndduttablelist.valueMatrix(1, 18);
  255. arrNightMax[6] = grd_stndduttablelist.valueMatrix(1, 19);
  256. }
  257. function fCheckStndSche(iDayIdx)
  258. {
  259. model.setValue("/root/main/stndduttableitem/day", arrDayMax[iDayIdx]);
  260. model.setValue("/root/main/stndduttableitem/evening", arrEveningMax[iDayIdx]);
  261. model.setValue("/root/main/stndduttableitem/night", arrNightMax[iDayIdx]);
  262. model.setValue("/root/main/stndduttableitem/total", arrTotalMax[iDayIdx]);
  263. }
  264. //사유팝업을 띄운다.
  265. function fOpenPopup()
  266. {
  267. if(grd_dutschelist.rowStyle(grd_dutschelist.row, "data", "background-color") == "#E5EFFC") return;
  268. model.setValue("/root/send/winparams/instcd", model.getValue("/root/send/instcd"));
  269. model.setValue("/root/send/winparams/dutunitcd", model.getValue("/root/send/dutunitcd"));
  270. model.setValue("/root/send/winparams/dutym", model.getValue("/root/send/dutym"));
  271. rpdfOpenPopUpList("1", grd_dutschelist, "", "", "", "", "/root/send/winparams");
  272. // modal("SPRPD01700", "", "", "", "", "/root/temp/params", "/root/target" );
  273. fSetDutImage();
  274. fSetHelperColor();
  275. }
  276. //사유팝업을 띄운다.
  277. function fOpenPopupChngApp()
  278. {
  279. if(grd_dutschelist.rowStyle(grd_dutschelist.row, "data", "background-color") == "#E5EFFC") return;
  280. model.setValue("/root/send/winparams/instcd", model.getValue("/root/send/instcd"));
  281. model.setValue("/root/send/winparams/dutunitcd", model.getValue("/root/send/dutunitcd"));
  282. model.setValue("/root/send/winparams/dutym", model.getValue("/root/send/dutym"));
  283. // modal("SPRPD10001", "", "", "", "", "/root/temp/params", "/root/target" );
  284. rpdfOpenPopUpList("3", grd_dutschelist, "", "", "", "", "/root/send/winparams");
  285. }
  286. //드래그하여 코드를 선택할시 지우기 메뉴를 선택하였을때 호출되는 함수이다.
  287. //지우기메뉴 -> 셀을 지움
  288. function fGridCellClear()
  289. {
  290. var iEditCnt = 0;
  291. var iPreRowIdx = 0;
  292. for(var i=0; i<grd_dutschelist.selectedCells.length; i++)
  293. {
  294. var iColIdx = grd_dutschelist.selectedCells.item(i).col;
  295. var iRowIdx = grd_dutschelist.selectedCells.item(i).row;
  296. if(grd_dutschelist.colRef("brngfwrdoffqty") <= iColIdx) continue;
  297. if(grd_dutschelist.rowStyle(iRowIdx, "data", "background-color") == "#E5EFFC") continue;
  298. grd_dutschelist.valueMatrix(iRowIdx, iColIdx) = "";
  299. var sDutYM = ipt_dutym.value;
  300. var sDutDD = (iColIdx - iDay1ColIdx).toString();
  301. if(sDutDD.length == 1) sDutDD = '0' + sDutDD;
  302. var sDutYMD = sDutYM + sDutDD;
  303. var sEmplNo = grd_dutschelist.valueMatrix(iRowIdx, grd_dutschelist.colRef("emplno"));
  304. var iExistCnt = 0;
  305. for(var j = 1; j<grd_resnlist.rows ; j++)
  306. {
  307. var sResnListEmplNo = grd_resnlist.valueMatrix(j, grd_resnlist.colRef("emplno"));
  308. var sResnListDutDD = grd_resnlist.valueMatrix(j, grd_resnlist.colRef("dutdd"));
  309. var sExecFlag = grd_resnlist.valueMatrix(j, grd_resnlist.colRef("appscheexecflag"));
  310. if(sResnListEmplNo == sEmplNo && sResnListDutDD == sDutYMD && ((rdo_appscheexecflag.value == "2" && sExecFlag == "2") || (rdo_appscheexecflag.value == "3" && sExecFlag == "3")))
  311. {
  312. grd_resnlist.deleteRow(j,"false");
  313. }
  314. }
  315. grd_dutschelist.cellStyle("background-color", iRowIdx, iColIdx) = "#FFFFFF";
  316. if(iPreRowIdx != iRowIdx)
  317. {
  318. fStatusCheck(iRowIdx);
  319. iPreRowIdx = iRowIdx;
  320. }
  321. fSetMonthPrDayCnt();
  322. fSetYearHoliOffCnt();
  323. }
  324. }
  325. //드래그로 근무코드를 선택했을시 그리드에 Status를 "insert" 나 "update"로 바꾼다.
  326. function fStatusCheck(iRowIdx)
  327. {
  328. if(grd_dutschelist.valueMatrix(iRowIdx, 1) == "" && grd_dutschelist.rowStyle(iRowIdx, "data", "background-color") != "#E5EFFC")
  329. {
  330. grd_dutschelist.valueMatrix(iRowIdx, grd_dutschelist.colRef("dutym")) = model.getValue("/root/send/dutym");
  331. grd_dutschelist.valueMatrix(iRowIdx, grd_dutschelist.colRef("appscheexecflag")) = model.getValue("/root/send/appscheexecflag");
  332. grd_dutschelist.addStatus(iRowIdx, "insert");
  333. }
  334. else
  335. {
  336. if(grd_dutschelist.rowStyle(iRowIdx, "data", "background-color") != "#E5EFFC")
  337. {
  338. grd_dutschelist.addStatus(iRowIdx, "update");
  339. }
  340. }
  341. }
  342. //드래그하여 마우스 오른쪽버튼을 누를시 근무코드 메뉴가 호출되며,
  343. //호출되는 메뉴를 눌렀을시 해당 누른메뉴에 따른 이벤트를 호출하는 함수이다.
  344. function fSetValueGrid2Cell(sCMnuNm)
  345. {
  346. if(sCMnuNm == "fOpenPopup")
  347. {
  348. if(grd_dutschelist.valueMatrix(grd_dutschelist.row, grd_dutschelist.col) == "") return;
  349. fOpenPopup();
  350. }
  351. else if(sCMnuNm == "fOpenPopupChngApp")
  352. {
  353. if(grd_dutschelist.valueMatrix(grd_dutschelist.row, grd_dutschelist.col) == "") return;
  354. fOpenPopupChngApp();
  355. }
  356. else if (sCMnuNm == "fGridCellClear")
  357. {
  358. fGridCellClear();
  359. }
  360. else
  361. {
  362. if(sCMnuNm == "-") return;
  363. fSetScheDutCd(sCMnuNm);
  364. fSetMonthPrDayCnt();
  365. }
  366. }
  367. // 일자별 근무 세팅
  368. function fSetScheDutCd(sDutCd)
  369. {
  370. var iPreRowIdx = 0;
  371. iDay31ColIdx = 11 + parseInt(datagrid1.rows) + 1;
  372. //alert(iDay31ColIdx);
  373. for(var i=0; i<grd_dutschelist.selectedCells.length; i++)
  374. {
  375. var iColIdx = grd_dutschelist.selectedCells.item(i).col;
  376. var iRowIdx = grd_dutschelist.selectedCells.item(i).row;
  377. //alert(iColIdx + "==" + iDay31ColIdx);
  378. if(iColIdx <= iDay1ColIdx || iColIdx >= iDay31ColIdx)
  379. {
  380. continue;
  381. }
  382. if(grd_dutschelist.valueMatrix(iRowIdx, grd_dutschelist.colRef("suppflag")) == "1")
  383. {
  384. continue;
  385. }
  386. if(grd_dutschelist.colRef("brngfwrdoffqty") <= iColIdx) continue;
  387. if(grd_dutschelist.rowStyle(iRowIdx, "data", "background-color") == "#E5EFFC") continue;
  388. grd_dutschelist.valueMatrix(iRowIdx, iColIdx) = sDutCd;
  389. if(iPreRowIdx != iRowIdx)
  390. {
  391. fStatusCheck(iRowIdx);
  392. iPreRowIdx = iRowIdx;
  393. }
  394. // fScheValidCheck_MaxMinDutCnt(iRowIdx, iColIdx);
  395. var iRet = fScheValidCheck_Under1Year(iRowIdx, iColIdx);
  396. if(iRet != 6 && iRet != 100)
  397. {
  398. grd_dutschelist.valueMatrix(iRowIdx, iColIdx) = "";
  399. grd_dutschelist.row = iRowIdx;
  400. grd_dutschelist.col = iColIdx;
  401. return;
  402. }
  403. else if(iRet != 100 && iRet == 6)
  404. {
  405. //grd_dutschelist.valueMatrix(iRowIdx, iColIdx) = "V1";
  406. }
  407. // 신청 OFF, 실시 밤근무 체크
  408. if(fScheValidCheck_DutSet(iRowIdx, iColIdx) != 6)
  409. {
  410. grd_dutschelist.valueMatrix(iRowIdx, iColIdx) = "";
  411. grd_dutschelist.row = iRowIdx;
  412. grd_dutschelist.col = iColIdx;
  413. return;
  414. }
  415. // 5일연속 근무 체크
  416. if(fScheValidCheck_5DayDut(iRowIdx, iColIdx) != 6)
  417. {
  418. grd_dutschelist.valueMatrix(iRowIdx, iColIdx) = "";
  419. grd_dutschelist.row = iRowIdx;
  420. grd_dutschelist.col = iColIdx;
  421. return;
  422. }
  423. //
  424. if(fScheValidCheck_OffCnt(iRowIdx, iColIdx) != 6)
  425. {
  426. grd_dutschelist.valueMatrix(iRowIdx, iColIdx) = "";
  427. grd_dutschelist.row = iRowIdx;
  428. grd_dutschelist.col = iColIdx;
  429. return;
  430. }
  431. // 신청 OFF, 실시 밤근무 체크
  432. fScheValidCheck_NightVacation(iRowIdx, iColIdx);
  433. if(fSetYearHoliOffCntByDutCd(iRowIdx, iColIdx))
  434. {
  435. grd_dutschelist.valueMatrix(iRowIdx, iColIdx) = "";
  436. grd_dutschelist.row = iRowIdx;
  437. grd_dutschelist.col = iColIdx;
  438. }
  439. }
  440. if(grd_dutschelist.col + 1 != iDay31ColIdx - 2)
  441. {
  442. grd_dutschelist.col = grd_dutschelist.col + 1;
  443. }
  444. fSetYearHoliOffCnt();
  445. }
  446. function fSetYearHoliOffCntByDutCd(iRowIdx, iColIdx)
  447. {
  448. var bRet = false;
  449. var sSetDutCd = grd_dutschelist.valueMatrix(iRowIdx, iColIdx);
  450. var sDutCd;
  451. var iCareCount = 0;
  452. var iValiCount = 0;
  453. var nurse1yearyn = "N";
  454. var sEntcoDD = grd_dutschelist.valueMatrix(iRowIdx, grd_dutschelist.colRef("entcodd"));
  455. var iEnterDayCnt = parseInt( Math.floor( Date.parse( misfConvertChar2Date(sEntcoDD, "/")) / 8.64e7));
  456. var iCurntDayCnt = parseInt( Math.floor( Date.parse( misfConvertChar2Date(getCurrentDate(), "/")) / 8.64e7));
  457. if (iCurntDayCnt - iEnterDayCnt <= 365) {
  458. nurse1yearyn = "Y";
  459. }
  460. else {
  461. nurse1yearyn = "N";
  462. }
  463. var sEmplno = grd_dutschelist.valueMatrix(iRowIdx, grd_dutschelist.colRef("emplno"));
  464. var iEmplRowIdx = grd_yearnoinfolist.findRow(sEmplno, 2, grd_yearnoinfolist.colRef("emplno"));
  465. if(iEmplRowIdx != -1) // 년차, 보휴, OFF데이터가 존재할경우
  466. {
  467. if(sSetDutCd == "C") // 보호휴가일경우
  468. {
  469. for(var i=iDay1ColIdx+1; i<iDay31ColIdx; i++)
  470. {
  471. sDutCd = grd_dutschelist.valueMatrix(iRowIdx, i);
  472. if(sDutCd == "C") iCareCount ++;
  473. }
  474. /*
  475. *보휴는 한달에 하나만 사용하도록 수정
  476. * 2009년 11월 25일 김미선 수정. 빈센트 요청
  477. */
  478. /*
  479. if( iCareCount > 1 ) {
  480. messageBox("보호휴가는 한달에 한번 이상 사용", "E001");
  481. bRet = true;
  482. return;
  483. }
  484. */
  485. // 발생수랑 사용수랑 비교
  486. var iGenrHealHoli = parseFloat(model.getValue("/root/main/resltdata/offcntlist[" + iEmplRowIdx + "]/genrhealholi"));
  487. var iUseHealHoli = parseFloat(model.getValue("/root/main/resltdata/offcntlist[" + iEmplRowIdx + "]/usehealholi"));
  488. var iSprehealholi = parseFloat(model.getValue("/root/main/resltdata/offcntlist[" + iEmplRowIdx + "]/sprehealholi"));
  489. var iExistYn = model.getValue("/root/main/resltdata/offcntlist[" + iEmplRowIdx + "]/existyn");
  490. if(iExistYn == "N")
  491. {
  492. iUseHealHoli += iCareCount;
  493. }
  494. if(iGenrHealHoli < iUseHealHoli )
  495. {
  496. /*
  497. messageBox("발생 보호 휴가수보다 더 많이 사용", "E001");
  498. bRet = true;
  499. */
  500. }
  501. }
  502. else if(sSetDutCd == "V" || sSetDutCd == "V1")
  503. {
  504. for(var i=iDay1ColIdx + 1; i<iDay31ColIdx; i++)
  505. {
  506. sDutCd = grd_dutschelist.valueMatrix(iRowIdx, i);
  507. if(sDutCd == "V" || sDutCd == "V1") iValiCount++;
  508. }
  509. // 발생수랑 사용수랑 비교
  510. if (nurse1yearyn == "Y") {
  511. var iGenrYearNo = parseFloat(model.getValue("/root/main/resltdata/offcntlist[" + iEmplRowIdx + "]/genryearno"))
  512. + parseFloat(model.getValue("/root/main/resltdata/offcntlist[" + iEmplRowIdx + "]/olmtspreyearno"));
  513. }
  514. else {
  515. var iGenrYearNo = parseFloat(model.getValue("/root/main/resltdata/offcntlist[" + iEmplRowIdx + "]/genryearno"))
  516. + parseFloat(model.getValue("/root/main/resltdata/offcntlist[" + iEmplRowIdx + "]/olmtspreyearno"));
  517. }
  518. var iUseYearNo = parseFloat(model.getValue("/root/main/resltdata/offcntlist[" + iEmplRowIdx + "]/useyearno"));
  519. var iExistYn = model.getValue("/root/main/resltdata/offcntlist[" + iEmplRowIdx + "]/existyn");
  520. if(iExistYn == "N")
  521. {
  522. iUseYearNo += iValiCount++;
  523. }
  524. if(iGenrYearNo < iUseYearNo)
  525. {
  526. // alert(iGenrYearNo);
  527. /*
  528. messageBox("발생 법정 휴가수보다 더 많이 사용@", "E001");
  529. bRet = true;
  530. */
  531. }
  532. }
  533. }
  534. return bRet;
  535. }
  536. function fScheValidCheck_Under1Year(iRowIdx, iColIdx)
  537. {
  538. var sDutCd = grd_dutschelist.valueMatrix(iRowIdx, iColIdx);
  539. if(sDutCd != "V") return 100;
  540. var sEntcoDD = grd_dutschelist.valueMatrix(iRowIdx, grd_dutschelist.colRef("entcodd"));
  541. var iEnterDayCnt = parseInt(Math.floor(Date.parse(misfConvertChar2Date(sEntcoDD, "/")) / 8.64e7));
  542. var iCurntDayCnt = parseInt(Math.floor(Date.parse(misfConvertChar2Date(getCurrentDate(), "/")) / 8.64e7));
  543. var iPassDayCnt = iCurntDayCnt - iEnterDayCnt;
  544. var dlgResult = 6;
  545. if(iPassDayCnt <= 365)
  546. {
  547. //dlgResult = messageBox("[ 1년 미만 신입간호사 ] 의 휴가는 \n\n만 1년을 채운 후 발생되는 휴가수에서 빠지므로\n\n주의하여 입력 하시기 바랍니다.\n\n", "Q003");
  548. }
  549. else
  550. {
  551. dlgResult = 100;
  552. }
  553. return dlgResult
  554. }
  555. function fScheValidCheck_NightVacation(iRowIdx, iColIdx)
  556. {
  557. var sDutCd = grd_dutschelist.valueMatrix(iRowIdx, iColIdx).substr(0, 1);
  558. var sEmplno = grd_dutschelist.valueMatrix(iRowIdx, grd_dutschelist.colRef("emplno"));
  559. var sDay = (iColIdx - iDay1ColIdx).toString().length == 1 ? "0" + (iColIdx - iDay1ColIdx).toString() : (iColIdx - iDay1ColIdx).toString();
  560. var sDate = ipt_dutym.value + sDay;
  561. var iResnIdx = 1;
  562. if(sDutCd == "N")
  563. {
  564. while(grd_resnlist.findRow(sDate, iResnIdx, grd_resnlist.colRef("dutdd")) > 0)
  565. {
  566. iSelectedRow = grd_resnlist.findRow(sDate, iResnIdx, grd_resnlist.colRef("dutdd"));
  567. if(grd_resnlist.valueMatrix(iSelectedRow, grd_resnlist.colRef("appscheexecflag")) == '1' && grd_resnlist.valueMatrix(iSelectedRow, grd_resnlist.colRef("emplno")) == sEmplno && grd_resnlist.valueMatrix(iSelectedRow, grd_resnlist.colRef("dutcd")).substr(0, 1) == "V")
  568. {
  569. grd_dutschelist.cellStyle("background-color", iRowIdx, iColIdx) = "#FFFCC4";
  570. return;
  571. }
  572. iResnIdx = iSelectedRow + 1;
  573. }
  574. }
  575. else
  576. {
  577. grd_dutschelist.cellStyle("background-color", iRowIdx, iColIdx) = "#FFFFFF";
  578. }
  579. }
  580. function fScheValidCheck_DutSet(iRowIdx, iColIdx)
  581. {
  582. var iMonthMaxDay = instance1.selectSingleNode("/root/main/daylist").length;
  583. var iLeft = iColIdx - 5;
  584. var bEveningDay = false;
  585. var bEveningOffDay = false;
  586. if(iLeft == 1)
  587. {
  588. var sFirstDutCd = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx).substr(0, 1);
  589. var sSecondDutCd = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx + 1).substr(0, 1);
  590. var sThirdDutCd = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx + 2).substr(0, 1);
  591. if(sFirstDutCd == "E" && sSecondDutCd == "D")
  592. {
  593. bEveningDay = true;
  594. }
  595. if(sFirstDutCd == "E" && sSecondDutCd == "O" && sThirdDutCd == "D")
  596. {
  597. bEveningOffDay = true;
  598. }
  599. }
  600. else if(iLeft == 2)
  601. {
  602. var sFirstDutCd = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx - 1).substr(0, 1);
  603. var sSecondDutCd = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx).substr(0, 1);
  604. var sThirdDutCd = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx + 1).substr(0, 1);
  605. var sForthDutCd = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx + 2).substr(0, 1);
  606. if(sFirstDutCd == "E" && sSecondDutCd == "D")
  607. {
  608. bEveningDay = true;
  609. }
  610. if(sSecondDutCd == "E" && sThirdDutCd == "D")
  611. {
  612. bEveningDay = true;
  613. }
  614. if(sFirstDutCd == "E" && sSecondDutCd == "O" && sThirdDutCd == "D")
  615. {
  616. bEveningOffDay = true;
  617. }
  618. if(sSecondDutCd == "E" && sThirdDutCd == "O" && sForthDutCd == "D")
  619. {
  620. bEveningOffDay = true;
  621. }
  622. }
  623. else if(iLeft >= 3 && iLeft <= (iMonthMaxDay - 2))
  624. {
  625. var sFirstDutCd = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx - 2).substr(0, 1);
  626. var sSecondDutCd = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx - 1).substr(0, 1);
  627. var sThirdDutCd = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx).substr(0, 1);
  628. var sForthDutCd = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx + 1).substr(0, 1);
  629. var sFifthDutCd = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx + 2).substr(0, 1);
  630. if(sSecondDutCd == "E" && sThirdDutCd == "D")
  631. {
  632. bEveningDay = true;
  633. }
  634. if(sThirdDutCd == "E" && sForthDutCd == "D")
  635. {
  636. bEveningDay = true;
  637. }
  638. if(sFirstDutCd == "E" && sSecondDutCd == "O" && sThirdDutCd == "D")
  639. {
  640. bEveningOffDay = true;
  641. }
  642. if(sSecondDutCd == "E" && sThirdDutCd == "O" && sForthDutCd == "D")
  643. {
  644. bEveningOffDay = true;
  645. }
  646. if(sThirdDutCd == "E" && sForthDutCd == "O" && sFifthDutCd == "D")
  647. {
  648. bEveningOffDay = true;
  649. }
  650. }
  651. if(iLeft == (iMonthMaxDay - 1))
  652. {
  653. var sFirstDutCd = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx - 2).substr(0, 1);
  654. var sSecondDutCd = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx - 1).substr(0, 1);
  655. var sThirdDutCd = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx).substr(0, 1);
  656. var sForthDutCd = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx + 1).substr(0, 1);
  657. if(sSecondDutCd == "E" && sThirdDutCd == "D")
  658. {
  659. bEveningDay = true;
  660. }
  661. if(sThirdDutCd == "E" && sForthDutCd == "D")
  662. {
  663. bEveningDay = true;
  664. }
  665. if(sFirstDutCd == "E" && sSecondDutCd == "O" && sThirdDutCd == "D")
  666. {
  667. bEveningOffDay = true;
  668. }
  669. if(sSecondDutCd == "E" && sThirdDutCd == "O" && sForthDutCd == "D")
  670. {
  671. bEveningOffDay = true;
  672. }
  673. }
  674. else if(iLeft == iMonthMaxDay)
  675. {
  676. var sFirstDutCd = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx - 2).substr(0, 1);
  677. var sSecondDutCd = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx - 1).substr(0, 1);
  678. var sThirdDutCd = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx).substr(0, 1);
  679. if(sSecondDutCd == "E" && sThirdDutCd == "D")
  680. {
  681. bEveningDay = true;
  682. }
  683. if(sFirstDutCd == "E" && sSecondDutCd == "O" && sThirdDutCd == "D")
  684. {
  685. bEveningOffDay = true;
  686. }
  687. }
  688. var dlgResult = 6;
  689. /*
  690. if(bEveningDay)
  691. {
  692. //dlgResult = messageBox("Evening - Day 근무 배치입니다.\n\n", "Q003");
  693. if(dlgResult != 6) return dlgResult;
  694. }
  695. if(bEveningOffDay)
  696. {
  697. //dlgResult = messageBox("Evening - Off - Day 근무 배치입니다.\n\n", "Q003");
  698. }
  699. */
  700. return dlgResult;
  701. }
  702. function fScheValidCheck_OffCnt(iRowIdx, iColIdx)
  703. {
  704. var sDay = (iColIdx - 5).toString();
  705. if(sDay.length == 1) sDay = '0' + sDay;
  706. var dtSelected = new Date(ipt_dutym.value.substr(0, 4) + "/" + ipt_dutym.value.substr(4, 2) + "/" + sDay);
  707. var iCurDayNum = dtSelected.getDay() == 0 ? 0 : dtSelected.getDay()-1;
  708. var iStartNum = dtSelected.getDay() == 0 ? iCurDayNum - 6 : iCurDayNum - (iCurDayNum * 2);
  709. var iLastNum = dtSelected.getDay() == 0 ? 0 : 6 - (iCurDayNum);
  710. var arrWeekDutCd = new Array();
  711. var iIdx = 0;
  712. var iOffCnt = 0;
  713. var iPillCnt = 0;
  714. for(var i=iStartNum; i<=iLastNum; i++)
  715. {
  716. if((iColIdx + i) < 6 || (iColIdx + i) > 36)
  717. {
  718. arrWeekDutCd[iIdx++] = "BLOCK";
  719. iPillCnt++;
  720. }
  721. else
  722. {
  723. arrWeekDutCd[iIdx++] = grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx + i).substr(0, 1);
  724. if(grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx + i).substr(0, 1) != "")
  725. {
  726. iPillCnt++;
  727. }
  728. if(grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx + i).substr(0, 1) == "O" ||
  729. grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx + i).substr(0, 1) == "V" ||
  730. grd_dutschelist.valueMatrix(grd_dutschelist.row, iColIdx + i).substr(0, 1) == "B")
  731. {
  732. iOffCnt++;
  733. }
  734. }
  735. }
  736. var dlgResult = 6;
  737. if(iOffCnt < 2 && iPillCnt >= 6)
  738. {
  739. //dlgResult = messageBox("주 휴무 2회 미만입니다.\n\n", "Q003");
  740. }
  741. return dlgResult;
  742. }
  743. function fScheValidCheck_5DayDut(iRowIdx, iColIdx)
  744. {
  745. var bShowCaution = false;
  746. var sFirstDutCd = grd_dutschelist.valueMatrix(iRowIdx, iColIdx - 5).substr(0, 1);
  747. var sSecondDutCd = grd_dutschelist.valueMatrix(iRowIdx, iColIdx - 4).substr(0, 1);
  748. var sThirdDutCd = grd_dutschelist.valueMatrix(iRowIdx, iColIdx - 3).substr(0, 1);
  749. var sFourthDutCd = grd_dutschelist.valueMatrix(iRowIdx, iColIdx - 2).substr(0, 1);
  750. var sFifthDutCd = grd_dutschelist.valueMatrix(iRowIdx, iColIdx - 1).substr(0, 1);
  751. var sSixthDutCd = grd_dutschelist.valueMatrix(iRowIdx, iColIdx).substr(0, 1);
  752. var sSeventhDutCd = grd_dutschelist.valueMatrix(iRowIdx, iColIdx + 1).substr(0, 1);
  753. var sEighthDutCd = grd_dutschelist.valueMatrix(iRowIdx, iColIdx + 2).substr(0, 1);
  754. var sNinthDutCd = grd_dutschelist.valueMatrix(iRowIdx, iColIdx + 3).substr(0, 1);
  755. var sTenthDutCd = grd_dutschelist.valueMatrix(iRowIdx, iColIdx + 4).substr(0, 1);
  756. var sEleventhDutCd = grd_dutschelist.valueMatrix(iRowIdx, iColIdx + 5).substr(0, 1);
  757. if( (sFirstDutCd == "D" || sFirstDutCd == "E" || sFirstDutCd == "N" || sFirstDutCd == "R") &&
  758. (sSecondDutCd == "D" || sSecondDutCd == "E" || sSecondDutCd == "N" || sSecondDutCd == "R") &&
  759. (sThirdDutCd == "D" || sThirdDutCd == "E" || sThirdDutCd == "N" || sThirdDutCd == "R") &&
  760. (sFourthDutCd == "D" || sFourthDutCd == "E" || sFourthDutCd == "N" || sFourthDutCd == "R") &&
  761. (sFifthDutCd == "D" || sFifthDutCd == "E" || sFifthDutCd == "N" || sFifthDutCd == "R") &&
  762. (sSixthDutCd == "D" || sSixthDutCd == "E" || sSixthDutCd == "N" || sSixthDutCd == "R") )
  763. {
  764. bShowCaution = true;
  765. }
  766. if( (sSecondDutCd == "D" || sSecondDutCd == "E" || sSecondDutCd == "N" || sSecondDutCd == "R") &&
  767. (sThirdDutCd == "D" || sThirdDutCd == "E" || sThirdDutCd == "N" || sThirdDutCd == "R") &&
  768. (sFourthDutCd == "D" || sFourthDutCd == "E" || sFourthDutCd == "N" || sFourthDutCd == "R") &&
  769. (sFifthDutCd == "D" || sFifthDutCd == "E" || sFifthDutCd == "N" || sFifthDutCd == "R") &&
  770. (sSixthDutCd == "D" || sSixthDutCd == "E" || sSixthDutCd == "N" || sSixthDutCd == "R") &&
  771. (sSeventhDutCd == "D" || sSeventhDutCd == "E" || sSeventhDutCd == "N" || sSeventhDutCd == "R") )
  772. {
  773. bShowCaution = true;
  774. }
  775. if( (sThirdDutCd == "D" || sThirdDutCd == "E" || sThirdDutCd == "N" || sThirdDutCd == "R") &&
  776. (sFourthDutCd == "D" || sFourthDutCd == "E" || sFourthDutCd == "N" || sFourthDutCd == "R") &&
  777. (sFifthDutCd == "D" || sFifthDutCd == "E" || sFifthDutCd == "N" || sFifthDutCd == "R") &&
  778. (sSixthDutCd == "D" || sSixthDutCd == "E" || sSixthDutCd == "N" || sSixthDutCd == "R") &&
  779. (sSeventhDutCd == "D" || sSeventhDutCd == "E" || sSeventhDutCd == "N" || sSeventhDutCd == "R") &&
  780. (sEighthDutCd == "D" || sEighthDutCd == "E" || sEighthDutCd == "N" || sEighthDutCd == "R") )
  781. {
  782. bShowCaution = true;
  783. }
  784. if( (sFourthDutCd == "D" || sFourthDutCd == "E" || sFourthDutCd == "N" || sFourthDutCd == "R") &&
  785. (sFifthDutCd == "D" || sFifthDutCd == "E" || sFifthDutCd == "N" || sFifthDutCd == "R") &&
  786. (sSixthDutCd == "D" || sSixthDutCd == "E" || sSixthDutCd == "N" || sSixthDutCd == "R") &&
  787. (sSeventhDutCd == "D" || sSeventhDutCd == "E" || sSeventhDutCd == "N" || sSeventhDutCd == "R") &&
  788. (sEighthDutCd == "D" || sEighthDutCd == "E" || sEighthDutCd == "N" || sEighthDutCd == "R") &&
  789. (sNinthDutCd == "D" || sNinthDutCd == "E" || sNinthDutCd == "N" || sNinthDutCd == "R") )
  790. {
  791. bShowCaution = true;
  792. }
  793. if( (sFifthDutCd == "D" || sFifthDutCd == "E" || sFifthDutCd == "N" || sFifthDutCd == "R") &&
  794. (sSixthDutCd == "D" || sSixthDutCd == "E" || sSixthDutCd == "N" || sSixthDutCd == "R") &&
  795. (sSeventhDutCd == "D" || sSeventhDutCd == "E" || sSeventhDutCd == "N" || sSeventhDutCd == "R") &&
  796. (sEighthDutCd == "D" || sEighthDutCd == "E" || sEighthDutCd == "N" || sEighthDutCd == "R") &&
  797. (sNinthDutCd == "D" || sNinthDutCd == "E" || sNinthDutCd == "N" || sNinthDutCd == "R") &&
  798. (sTenthDutCd == "D" || sTenthDutCd == "E" || sTenthDutCd == "N" || sTenthDutCd == "R") )
  799. {
  800. bShowCaution = true;
  801. }
  802. if( (sSixthDutCd == "D" || sSixthDutCd == "E" || sSixthDutCd == "N" || sSixthDutCd == "R") &&
  803. (sSeventhDutCd == "D" || sSeventhDutCd == "E" || sSeventhDutCd == "N" || sSeventhDutCd == "R") &&
  804. (sEighthDutCd == "D" || sEighthDutCd == "E" || sEighthDutCd == "N" || sEighthDutCd == "R") &&
  805. (sNinthDutCd == "D" || sNinthDutCd == "E" || sNinthDutCd == "N" || sNinthDutCd == "R") &&
  806. (sTenthDutCd == "D" || sTenthDutCd == "E" || sTenthDutCd == "N" || sTenthDutCd == "R") &&
  807. (sEleventhDutCd == "D" || sEleventhDutCd == "E" || sEleventhDutCd == "N" || sEleventhDutCd == "R") )
  808. {
  809. bShowCaution = true;
  810. }
  811. var dlgResult = 6;
  812. if(bShowCaution)
  813. {
  814. //dlgResult = messageBox("5일 연속 및 초과 근무 입니다\n\n휴무를 지정 하십시오.\n\n", "Q003");
  815. }
  816. return dlgResult;
  817. }
  818. // 년차, 보휴, OFF를 카운트 하고 세팅한다.
  819. function fSetYearHoliOffCnt(sType)
  820. {
  821. var iRowIdx = grd_dutschelist.row;
  822. var sDutCd;
  823. var sExecYn;
  824. var sCnfmYn;
  825. var iDayCount;
  826. var iEveCount;
  827. var iNightCount;
  828. var iOffCount;
  829. var iValiCount;
  830. var iCareCount;
  831. var iTimeDutCount;
  832. var iSickCount;
  833. var iBirthCount;
  834. var sDutKindCd;
  835. var sDutYm = ipt_dutym.value;
  836. var dt = new Date(sDutYm.substr(0, 4), sDutYm.substr(4, 2), 0);
  837. //var iLastDay = dt.getDate();
  838. var iLastDay = datagrid1.rows - 1;
  839. //alert(iLastDay);
  840. var sHoliFlag;
  841. for(var i=2; i<grd_dutschelist.rows; i++)
  842. {
  843. iDayCount = 0;
  844. iEveCount = 0;
  845. iNightCount = 0;
  846. iOffCount = 0;
  847. iValiCount = 0.0;
  848. iCareCount = 0;
  849. iTimeDutCount = 0;
  850. iSickCount = 0;
  851. iBirthCount = 0;
  852. var sEmplno = grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("emplno"));
  853. var sEmplnm = grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("emplnm"));
  854. sExecYn = model.getValue(grd_dutschelist.nodeset + "[" + (i - 1) + "]/execschecloseyn");
  855. sCnfmYn = model.getValue(grd_dutschelist.nodeset + "[" + (i - 1) + "]/deprtmangrdutcnfmyn");
  856. if(sEmplnm == "실 시") continue;
  857. sDutKindCd = model.getValue("/root/main/resltdata/offcntlist[emplno='" + sEmplno + "']/dutkindcd");
  858. for(var j=iDay1ColIdx + 1; j<iDay31ColIdx; j++)
  859. {
  860. if(j <= iLastDay + iDay1ColIdx)
  861. {
  862. sHoliFlag = model.getValue("/root/main/daylist["+ (j - iDay1ColIdx) + "]/holiflag");
  863. sDutCd = grd_dutschelist.valueMatrix(i, j);
  864. if(sDutCd.substr(0, 1) == "D")
  865. {
  866. iDayCount++;
  867. }
  868. else if(sDutCd.substr(0, 1) == "E")
  869. {
  870. iEveCount++;
  871. }
  872. else if(sDutCd.substr(0, 1) == "N")
  873. {
  874. iNightCount++;
  875. }
  876. else if(sDutCd == "OF" || sDutCd == "OFN" || sDutCd == "OFP")
  877. {
  878. iOffCount++;
  879. }
  880. else if(sDutCd == "C")
  881. {
  882. iCareCount++;
  883. }
  884. else if(sDutCd == "V" || sDutCd == "V1")
  885. {
  886. iValiCount++;
  887. }
  888. else if(sDutCd == "1" || sDutCd == "2" || sDutCd == "3" || sDutCd == "4" || sDutCd == "5" || sDutCd == "6" || sDutCd == "7" || sDutCd == "8")
  889. {
  890. iTimeDutCount += parseFloat(sDutCd);
  891. }
  892. else if(sDutCd == "S" || sDutCd == "S1" || sDutCd == "S2" || sDutCd == "S3" || sDutCd == "S4")
  893. {
  894. iSickCount++;
  895. if((sHoliFlag == "0" || sHoliFlag == "4")) iOffCount++;
  896. }
  897. else if(sDutCd == "B")
  898. {
  899. iBirthCount++;
  900. if((sHoliFlag == "0" || sHoliFlag == "4")) iOffCount++;
  901. }
  902. else if(sDutCd == "H1" && ( (sHoliFlag == "0" || sHoliFlag == "4") || sDutKindCd == "C" ))
  903. {
  904. iOffCount++;
  905. }
  906. if(sDutCd == "DVH" || sDutCd == "VDH" || sDutCd == "VPH" || sDutCd == "VFH" || sDutCd == "VF1H" || sDutCd == "EVH" || sDutCd == "VEH")
  907. {
  908. iValiCount += 0.5;
  909. }
  910. if(sDutCd == "VFH" || sDutCd == "DFH" || sDutCd == "EFH" || sDutCd == "FDH" || sDutCd == "FEH" || sDutCd == "FF1H" || sDutCd == "PFH")
  911. {
  912. iOffCount += 0.5;
  913. }
  914. }
  915. }
  916. if(model.getValue("/root/send/appscheexecflag") == "2" && sExecYn == "Y")
  917. {
  918. continue;
  919. }
  920. if(model.getValue("/root/send/appscheexecflag") == "3" && sCnfmYn == "Y")
  921. {
  922. continue;
  923. }
  924. if(iLastDay == (iSickCount + iBirthCount))
  925. {
  926. iCareCount = 1;
  927. iOffCount = model.getValue("/root/main/userholiinfo/curmonthofcnt");
  928. }
  929. var itempDayCount = parseFloat(grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("daysum")) == "" ? 0 : grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("daysum")));
  930. var itempEveCount = parseFloat(grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("eveningsum")) == "" ? 0 : grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("eveningsum")));
  931. var itempNightCount = parseFloat(grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("nigtsum")) == "" ? 0 : grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("nigtsum")));
  932. var itempOffCount = parseFloat(grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("offsum")) == "" ? 0 : grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("offsum")));
  933. var itempValiiCount = parseFloat(grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("useholidayno")) == "" ? 0 : grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("useholidayno")));
  934. var itempCareCount = parseFloat(grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("mensholidayno")) == "" ? 0 : grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("mensholidayno")));
  935. var itempTimeDutCount = parseFloat(grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("surp1_totduttm")) == "" ? 0 : grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("surp1_totduttm")));
  936. if(sType == "retr")
  937. {
  938. if(itempDayCount != iDayCount || itempEveCount != iEveCount || itempNightCount != iNightCount || itempOffCount != iOffCount || itempValiiCount != iValiCount || itempCareCount != iCareCount || itempTimeDutCount != iTimeDutCount)
  939. {
  940. model.setValue(grd_dutschelist.nodeset + "[" + (i - 1) + "]/daysum", iDayCount);
  941. model.setValue(grd_dutschelist.nodeset + "[" + (i - 1) + "]/eveningsum", iEveCount);
  942. model.setValue(grd_dutschelist.nodeset + "[" + (i - 1) + "]/nigtsum", iNightCount);
  943. model.setValue(grd_dutschelist.nodeset + "[" + (i - 1) + "]/offsum", iOffCount);
  944. model.setValue(grd_dutschelist.nodeset + "[" + (i - 1) + "]/useholidayno", iValiCount);
  945. model.setValue(grd_dutschelist.nodeset + "[" + (i - 1) + "]/mensholidayno", iCareCount);
  946. model.setValue(grd_dutschelist.nodeset + "[" + (i - 1) + "]/surp1_totduttm", iTimeDutCount);
  947. // grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("daysum")) = iDayCount;
  948. // grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("eveningsum")) = iEveCount;
  949. // grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("nigtsum")) = iNightCount;
  950. // grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("offsum")) = iOffCount;
  951. // grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("useholidayno")) = iValiCount;
  952. // grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("mensholidayno")) = iCareCount;
  953. // grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("surp1_totduttm")) = iTimeDutCount;
  954. grd_dutschelist.addStatus(i, "update");
  955. }
  956. }
  957. else
  958. {
  959. model.setValue(grd_dutschelist.nodeset + "[" + (i - 1) + "]/daysum", iDayCount);
  960. model.setValue(grd_dutschelist.nodeset + "[" + (i - 1) + "]/eveningsum", iEveCount);
  961. model.setValue(grd_dutschelist.nodeset + "[" + (i - 1) + "]/nigtsum", iNightCount);
  962. model.setValue(grd_dutschelist.nodeset + "[" + (i - 1) + "]/offsum", iOffCount);
  963. model.setValue(grd_dutschelist.nodeset + "[" + (i - 1) + "]/useholidayno", iValiCount);
  964. model.setValue(grd_dutschelist.nodeset + "[" + (i - 1) + "]/mensholidayno", iCareCount);
  965. model.setValue(grd_dutschelist.nodeset + "[" + (i - 1) + "]/surp1_totduttm", iTimeDutCount);
  966. // grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("daysum")) = iDayCount;
  967. // grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("eveningsum")) = iEveCount;
  968. // grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("nigtsum")) = iNightCount;
  969. // grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("offsum")) = iOffCount;
  970. // grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("useholidayno")) = iValiCount;
  971. // grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("mensholidayno")) = iCareCount;
  972. // grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("surp1_totduttm")) = iTimeDutCount;
  973. }
  974. }
  975. fSetEmplDutInfo();
  976. model.refresh();
  977. }
  978. // 일별 Day, Evening, Night, 별 Count
  979. function fSetMonthPrDayCnt()
  980. {
  981. var arrHoliFlag = new Array();
  982. var iDayCnt = 0;
  983. var iEveningCnt = 0;
  984. var iNightCnt = 0;
  985. var iTotalCnt = 0;
  986. for(var i=1; i<=31; i++)
  987. {
  988. iDayCnt = 0;
  989. iEveningCnt = 0;
  990. iNightCnt = 0;
  991. iTotalCnt = 0;
  992. var iColIdx = i + iDay1ColIdx;
  993. for(var j=0; j<grd_dutschelist.rows; j++)
  994. {
  995. var iRowIdx = j + 2;
  996. //확정번표에서 조회시 필요없을듯하여 막음. 2008.11.24 by qudwh08
  997. /* if(rdo_appscheexecflag.value == "3")
  998. {
  999. iRowIdx = iRowIdx + (j + 1);
  1000. }
  1001. */
  1002. var sDutCd = grd_dutschelist.valueMatrix(iRowIdx, iColIdx);
  1003. if(sDutCd == "") continue;
  1004. if(sDutCd.substr(0, 1) == "D" )
  1005. {
  1006. iDayCnt++;
  1007. iTotalCnt++;
  1008. }
  1009. else if(sDutCd.substr(0, 1) == "E" )
  1010. {
  1011. iEveningCnt++;
  1012. iTotalCnt++;
  1013. }
  1014. else if(sDutCd.substr(0, 1) == "N" )
  1015. {
  1016. iNightCnt++;
  1017. iTotalCnt++;
  1018. }
  1019. if(sDutCd.substr(0, 2) == "DE" )
  1020. {
  1021. iEveningCnt++;
  1022. iTotalCnt++;
  1023. }
  1024. if(sDutCd.substr(0, 2) == "EN" )
  1025. {
  1026. iNightCnt++;
  1027. iTotalCnt++;
  1028. }
  1029. }
  1030. /*
  1031. alert(grd_dutmancntlist.nodeset + "[" + 1 + "]/" + grd_dutmancntlist.colAttribute(i, "ref"));
  1032. */
  1033. model.setValue(grd_dutmancntlist.nodeset + "[" + 1 + "]/" + grd_dutmancntlist.colAttribute(i, "ref"), iDayCnt);
  1034. model.setValue(grd_dutmancntlist.nodeset + "[" + 2 + "]/" + grd_dutmancntlist.colAttribute(i, "ref"), iEveningCnt);
  1035. model.setValue(grd_dutmancntlist.nodeset + "[" + 3 + "]/" + grd_dutmancntlist.colAttribute(i, "ref"), iNightCnt);
  1036. model.setValue(grd_dutmancntlist.nodeset + "[" + 4 + "]/" + grd_dutmancntlist.colAttribute(i, "ref"), iTotalCnt);
  1037. // grd_dutmancntlist.valueMatrix(2, i) = iDayCnt;
  1038. // grd_dutmancntlist.valueMatrix(3, i) = iEveningCnt;
  1039. // grd_dutmancntlist.valueMatrix(4, i) = iNightCnt;
  1040. //grd_dutmancntlist.colStyle((i), "all", "color") = "#000000";
  1041. grd_dutmancntlist.colStyle((i), "all", "font-weight") = "";
  1042. var sYM = ipt_dutym.value;
  1043. var sDay = (i).toString();
  1044. (sDay.length == 1) ? sDay = '0' + sDay : sDay;
  1045. var dt = new Date(misfConvertChar2Date(sYM + sDay, "/"));
  1046. var iArrIdx = dt.getDay();
  1047. if(iDayCnt > parseInt(arrDayMax[iArrIdx]))
  1048. {
  1049. grd_dutmancntlist.cellStyle("color", 2, i) = "#FF0000";
  1050. grd_dutmancntlist.cellStyle("font-weight", 2, i) = "bold";
  1051. }
  1052. else if(iDayCnt < parseInt(arrDayMax[iArrIdx]) && iDayCnt != 0)
  1053. {
  1054. grd_dutmancntlist.cellStyle("color", 2, i) = "#0000FF";
  1055. grd_dutmancntlist.cellStyle("font-weight", 2, i) = "bold";
  1056. }
  1057. else if(iDayCnt == 0)
  1058. {
  1059. grd_dutmancntlist.cellStyle("color", 2, i) = "#C0C0C0"
  1060. }
  1061. if(iEveningCnt > parseInt(arrEveningMax[iArrIdx]))
  1062. {
  1063. grd_dutmancntlist.cellStyle("color", 3, i) = "#FF0000";
  1064. grd_dutmancntlist.cellStyle("font-weight", 3, i) = "bold";
  1065. }
  1066. else if(iEveningCnt < parseInt(arrEveningMax[iArrIdx]) && iEveningCnt != 0)
  1067. {
  1068. grd_dutmancntlist.cellStyle("color", 3, i) = "#0000FF";
  1069. grd_dutmancntlist.cellStyle("font-weight", 3, i) = "bold";
  1070. }
  1071. else if(iEveningCnt == 0)
  1072. {
  1073. grd_dutmancntlist.cellStyle("color", 3, i) = "#C0C0C0";
  1074. }
  1075. if(iNightCnt > parseInt(opt_night.value))
  1076. {
  1077. grd_dutmancntlist.cellStyle("color", 4, i) = "#FF0000";
  1078. grd_dutmancntlist.cellStyle("font-weight", 4, i) = "bold";
  1079. }
  1080. else if(iNightCnt < parseInt(arrNightMax[iArrIdx]) && iNightCnt != 0)
  1081. {
  1082. grd_dutmancntlist.cellStyle("color", 4, i) = "#0000FF";
  1083. grd_dutmancntlist.cellStyle("font-weight", 4, i) = "bold";
  1084. }
  1085. else if(iNightCnt == 0)
  1086. {
  1087. grd_dutmancntlist.cellStyle("color", 4, i) = "#C0C0C0"
  1088. }
  1089. if(iTotalCnt == 0)
  1090. {
  1091. grd_dutmancntlist.cellStyle("color", 5, i) = "#C0C0C0"
  1092. }
  1093. }
  1094. }
  1095. //셀 클릭시 사유 세팅..
  1096. function fSetResnValue()
  1097. {
  1098. grd_dutmancntlist.col = grd_dutschelist.col - iDay1ColIdx;
  1099. var dt = new Date(misfConvertChar2Date(model.getValue("/root/main/daylist[" + (grd_dutschelist.col - iDay1ColIdx) + "]/basedd"), "/"));
  1100. fCheckStndSche(dt.getDay());
  1101. if(grd_dutschelist.col < iDay1ColIdx || grd_dutschelist.col > iDay31ColIdx || grd_dutschelist.valueMatrix(grd_dutschelist.row, grd_dutschelist.col) == "" &&
  1102. grd_dutschelist.cellStyle("background-image", grd_dutschelist.row, grd_dutschelist.col, grd_dutschelist.row, grd_dutschelist.col) == "")
  1103. {
  1104. model.setValue("/root/main/resn/reqresn", "");
  1105. model.setValue("/root/main/resn/dutresn", "");
  1106. return;
  1107. }
  1108. else
  1109. {
  1110. model.setValue("/root/main/resn/reqresn", "");
  1111. model.setValue("/root/main/resn/dutresn", "");
  1112. //var sDutYM = model.getValue("/root/send/dutym").substr(0, 6);
  1113. //var sDutDD = (grd_dutschelist.col - iDay1ColIdx).toString();
  1114. //if(sDutDD.length == 1) sDutDD = '0' + sDutDD;
  1115. //var sDutYMD = sDutYM + sDutDD;
  1116. var sDutDD = grd_dutschelist.col - iDay1ColIdx;
  1117. var sDutYMD = model.getValue("/root/main/daylist["+ sDutDD + "]/basedd");
  1118. //alert(grd_dutschelist.col + "==" + iDay1ColIdx + "==" + sDutDD + "==" + sDutYMD);
  1119. var sEmplNo = grd_dutschelist.valueMatrix(grd_dutschelist.row, grd_dutschelist.colRef("emplno"));
  1120. var iExistRowIdx = 0;
  1121. var sResnListEmplNo = "";
  1122. var sResnListDutDD = "";
  1123. var sResnListAppScheExecFlag = "";
  1124. var sReqResn = "";
  1125. var sDutResn = "";
  1126. var sCmt = "";
  1127. if(model.getValue("/root/send/appscheexecflag") == '2')
  1128. {
  1129. for(i = 1; i <grd_resnlist.rows ; i++)
  1130. {
  1131. sResnListEmplNo = grd_resnlist.valueMatrix(i, grd_resnlist.colRef("emplno"));
  1132. sResnListDutDD = grd_resnlist.valueMatrix(i, grd_resnlist.colRef("dutdd"));
  1133. sResnListAppScheExecFlag = grd_resnlist.valueMatrix(i, grd_resnlist.colRef("appscheexecflag"));
  1134. if(sDutYMD == sResnListDutDD && sEmplNo == sResnListEmplNo)
  1135. {
  1136. if(sResnListAppScheExecFlag == '1')
  1137. {
  1138. sReqResn = grd_resnlist.valueMatrix(i, grd_resnlist.colRef("dutresn"));
  1139. sCmt = grd_resnlist.valueMatrix(i, grd_resnlist.colRef("cmt"));
  1140. }
  1141. else if(sResnListAppScheExecFlag == '2')
  1142. {
  1143. sDutResn = grd_resnlist.valueMatrix(i, grd_resnlist.colRef("dutresn"));
  1144. }
  1145. }
  1146. }
  1147. if(grd_dutschelist.cellStyle("background-image", grd_dutschelist.row, grd_dutschelist.col, grd_dutschelist.row, grd_dutschelist.col) == "")
  1148. {
  1149. model.setValue("/root/main/resn/reqresn", "");
  1150. }
  1151. else
  1152. {
  1153. model.setValue("/root/main/resn/reqresn", sReqResn + sCmt)
  1154. }
  1155. model.setValue("/root/main/resn/dutresn", sDutResn);
  1156. }
  1157. else if(model.getValue("/root/send/appscheexecflag") == '3')
  1158. {
  1159. for(i = 1; i <grd_resnlist.rows ; i++)
  1160. {
  1161. sResnListEmplNo = grd_resnlist.valueMatrix(i, grd_resnlist.colRef("emplno"));
  1162. sResnListDutDD = grd_resnlist.valueMatrix(i, grd_resnlist.colRef("dutdd"));
  1163. sResnListAppScheExecFlag = grd_resnlist.valueMatrix(i, grd_resnlist.colRef("appscheexecflag"));
  1164. if(sDutYMD == sResnListDutDD && sEmplNo == sResnListEmplNo)
  1165. {
  1166. if(sResnListAppScheExecFlag == '1')
  1167. {
  1168. sReqResn = grd_resnlist.valueMatrix(i, grd_resnlist.colRef("dutresn"));
  1169. sCmt = grd_resnlist.valueMatrix(i, grd_resnlist.colRef("cmt"));
  1170. }
  1171. else if(sResnListAppScheExecFlag == '2' && grd_dutschelist.valueMatrix(grd_dutschelist.row, grd_dutschelist.colRef("appscheexecflag")) == '2')
  1172. {
  1173. sDutResn = grd_resnlist.valueMatrix(i, grd_resnlist.colRef("dutresn"));
  1174. }
  1175. else if(sResnListAppScheExecFlag == '3')
  1176. {
  1177. sDutResn = grd_resnlist.valueMatrix(i, grd_resnlist.colRef("dutresn"));
  1178. }
  1179. }
  1180. }
  1181. if(grd_dutschelist.cellStyle("background-image", grd_dutschelist.row, grd_dutschelist.col, grd_dutschelist.row, grd_dutschelist.col) == "")
  1182. {
  1183. model.setValue("/root/main/resn/reqresn","");
  1184. }
  1185. else
  1186. {
  1187. model.setValue("/root/main/resn/reqresn", sReqResn + sCmt)
  1188. }
  1189. model.setValue("/root/main/resn/dutresn", sDutResn);
  1190. }
  1191. }
  1192. model.refresh();
  1193. // fSetMonthPrDayCnt();
  1194. }
  1195. // 컨텍스트 메뉴 호출
  1196. function fOpenContextMenuList()
  1197. {
  1198. if(grd_dutschelist.mouseCol > iDay1ColIdx && grd_dutschelist.mouseCol < iDay31ColIdx && grd_dutschelist.isCell(event.target) && grd_dutschelist.mouseRow >= grd_dutschelist.fixedRows)
  1199. {
  1200. if(grd_dutschelist.mouseRow >= grd_dutschelist.fixedrows)
  1201. {
  1202. if(grd_dutschelist.selectedCells.length > 1)
  1203. {
  1204. row2 = grd_dutschelist.mouseRow;
  1205. col2 = grd_dutschelist.mouseCol;
  1206. }
  1207. window.setPopupMenu(true, "/root/codedata/popupmenu/dutschelist/item", "name", "func", true);
  1208. }
  1209. else
  1210. {
  1211. window.setPopupMenu(false);
  1212. }
  1213. }
  1214. else
  1215. {
  1216. window.setPopupMenu(false);
  1217. }
  1218. }
  1219. // 로우 변경시.. 해당 사원의 정보를 조회
  1220. function fSetEmplDutInfo()
  1221. {
  1222. var sEmplNo = grd_dutschelist.valueMatrix(grd_dutschelist.row, grd_dutschelist.colRef("emplno"));
  1223. var iEmplNoIdx = grd_yearnoinfolist.findRow(sEmplNo, 0, grd_yearnoinfolist.colRef("emplno"));
  1224. if(iEmplNoIdx != -1)
  1225. {
  1226. model.copyNode("/root/main/userholiinfo", "/root/main/resltdata/offcntlist[" + iEmplNoIdx + "]");
  1227. var iUseHolidayNo = parseFloat((grd_dutschelist.valueMatrix(grd_dutschelist.row, grd_dutschelist.colRef("useholidayno")) == "") ? 0 : grd_dutschelist.valueMatrix(grd_dutschelist.row, grd_dutschelist.colRef("useholidayno")));
  1228. var iMensHoliDayNo = parseFloat((grd_dutschelist.valueMatrix(grd_dutschelist.row, grd_dutschelist.colRef("mensholidayno")) == "") ? 0 : grd_dutschelist.valueMatrix(grd_dutschelist.row, grd_dutschelist.colRef("mensholidayno")));
  1229. var iOffSum = parseFloat((grd_dutschelist.valueMatrix(grd_dutschelist.row, grd_dutschelist.colRef("offsum")) == "") ? 0 : grd_dutschelist.valueMatrix(grd_dutschelist.row, grd_dutschelist.colRef("offsum")));
  1230. var iUseYearNo = parseFloat(model.getValue("/root/main/resltdata/offcntlist[" + iEmplNoIdx + "]/useyearno"));
  1231. var iSPreYearNo = parseFloat(model.getValue("/root/main/resltdata/offcntlist[" + iEmplNoIdx + "]/spreyearno"));
  1232. var iUseHealHoli = parseFloat(model.getValue("/root/main/resltdata/offcntlist[" + iEmplNoIdx + "]/usehealholi"));
  1233. var iSPreHealHoli = parseFloat(model.getValue("/root/main/resltdata/offcntlist[" + iEmplNoIdx + "]/sprehealholi"));
  1234. var iMonthUseOfCnt = parseFloat(model.getValue("/root/main/resltdata/offcntlist[" + iEmplNoIdx + "]/monthuseofcnt"));
  1235. var iMonthUnUseOfCnt = parseFloat(model.getValue("/root/main/resltdata/offcntlist[" + iEmplNoIdx + "]/monthunuseofcnt"));
  1236. var iMonthHealHoliUseCnt = parseFloat(model.getValue("/root/main/resltdata/offcntlist[" + iEmplNoIdx + "]/monthhealholiusecnt"));
  1237. var iCurMonthOfCnt = parseFloat(model.getValue("/root/main/resltdata/offcntlist[" + iEmplNoIdx + "]/curmonthofcnt"));
  1238. var iCurMonthUseOfCnt = parseFloat(model.getValue("/root/main/resltdata/offcntlist[" + iEmplNoIdx + "]/curmonthuseofcnt"));
  1239. var iCurMonthUnUseOfCnt = parseFloat(model.getValue("/root/main/resltdata/offcntlist[" + iEmplNoIdx + "]/curmonthunuseofcnt"));
  1240. var iExistYn = model.getValue("/root/main/resltdata/offcntlist[" + iEmplNoIdx + "]/existyn")
  1241. if(iExistYn == "N")
  1242. {
  1243. iUseYearNo += iUseHolidayNo;
  1244. iSPreYearNo -= iUseHolidayNo;
  1245. iUseHealHoli += iMensHoliDayNo;
  1246. iSPreHealHoli -= iMensHoliDayNo;
  1247. iMonthUseOfCnt += iOffSum;
  1248. iMonthUnUseOfCnt -= iOffSum;
  1249. iCurMonthUseOfCnt += iOffSum;
  1250. iCurMonthUnUseOfCnt -= iOffSum;
  1251. }
  1252. model.setValue("/root/main/userholiinfo/useyearno", iUseYearNo); //사용법정휴가
  1253. model.setValue("/root/main/userholiinfo/spreyearno", iSPreYearNo); //잔여법정휴가
  1254. model.setValue("/root/main/userholiinfo/usehealholi", iUseHealHoli); //사용보호휴가수
  1255. model.setValue("/root/main/userholiinfo/sprehealholi", iSPreHealHoli); //잔여보호휴가수
  1256. model.setValue("/root/main/userholiinfo/monthuseofcnt", iMonthUseOfCnt);
  1257. model.setValue("/root/main/userholiinfo/monthunuseofcnt", iMonthUnUseOfCnt);
  1258. model.setValue("/root/main/userholiinfo/monthhealholiusecnt", iMonthHealHoliUseCnt);
  1259. model.setValue("/root/main/userholiinfo/curmonthuseofcnt", iCurMonthUseOfCnt);
  1260. model.setValue("/root/main/userholiinfo/curmonthunuseofcnt", iCurMonthUnUseOfCnt);
  1261. }
  1262. else
  1263. {
  1264. model.makeValue("/root/main/userholiinfo/genryearno", 0); //법정휴가
  1265. model.makeValue("/root/main/userholiinfo/olmtspreyearno", 0); //1년미만연차
  1266. model.makeValue("/root/main/userholiinfo/useyearno", 0); //사용법정휴가
  1267. model.makeValue("/root/main/userholiinfo/spreyearno", 0); //잔여법정휴가
  1268. model.makeValue("/root/main/userholiinfo/genrhealholi", 0); //보호휴가수
  1269. model.makeValue("/root/main/userholiinfo/usehealholi", 0); //사용보호휴가수
  1270. model.makeValue("/root/main/userholiinfo/sprehealholi", 0); //잔여보호휴가수
  1271. model.makeValue("/root/main/userholiinfo/monthofcnt", 0);
  1272. model.makeValue("/root/main/userholiinfo/monthuseofcnt", 0);
  1273. model.makeValue("/root/main/userholiinfo/monthunuseofcnt", 0);
  1274. model.makeValue("/root/main/userholiinfo/monthhealholiusecnt", 0);
  1275. model.makeValue("/root/main/userholiinfo/curmonthofcnt", 0);
  1276. model.makeValue("/root/main/userholiinfo/curmonthuseofcnt", 0);
  1277. model.makeValue("/root/main/userholiinfo/curmonthunuseofcnt", 0);
  1278. }
  1279. model.refresh();
  1280. }
  1281. // 조회
  1282. function fRetrieve()
  1283. {
  1284. grd_dutschelist.rebuildStyle();
  1285. // if(model.getValue("/root/send/appscheexecflag") == "")
  1286. // {
  1287. // model.setValue("/root/send/appscheexecflag", '2');
  1288. // }
  1289. submit("TRRPD02204");
  1290. model.setValue("/root/send/apryn", "Y");
  1291. if(model.getValue("/root/send/dutym") == "")
  1292. {
  1293. messageBox("적용년월을", "C002");
  1294. return;
  1295. }
  1296. else if(model.getValue("/root/send/dutunitcd") == "")
  1297. {
  1298. messageBox("근무부서를", "C001");
  1299. return "dutunitval";
  1300. }
  1301. model.setValue("/root/send/emplno", "");
  1302. model.setValue("/root/send/anualcalcyy", ipt_dutym.value.substr(0, 4));
  1303. misfMsterDetailRetrieve();
  1304. submit("TRRPD02203");
  1305. grd_dutcdlist.addRow();
  1306. fSetContextMenu(); // 번표 컨텍스트 메뉴를 추가
  1307. fSetScheFlagRowStyle(); // 실시일때와, 확정일때 로우스타일을 바꾼다.
  1308. fSetCalendarScheList(); // 번표에 달력의 일자를 세팅한다.
  1309. fSetDutImage(); // 1년 미만 및 근무 스케쥴이 등록된 사유가 있으면 Cell 에 별표 표시
  1310. fSetMaxCnttoArray(); // 배열에 일별 Day, Evening, Night 맥스값 넣기
  1311. fSetMonthPrDayCnt(); // 월별 근무 카운트
  1312. fSetSrvAppDutCd();
  1313. fSetHelperColor(); // 헬퍼일자 코드 색칠
  1314. fShowInfoVisible();
  1315. }
  1316. function fSetScheFlagRowStyle()
  1317. {
  1318. for(var i=2 ; i<grd_dutschelist.rows; i++)
  1319. {
  1320. if(model.getValue("/root/send/appscheexecflag") == "3")
  1321. {
  1322. // grd_dutschelist.rowHidden(i) = true;
  1323. //misfSetReadOnlyCol(grd_dutschelist, "part", true, i);
  1324. // grd_dutschelist.rowStyle(i++, "data", "background-color") = "#E5EFFC";
  1325. }
  1326. else
  1327. {
  1328. //misfSetReadOnlyCol(grd_dutschelist, "part", false, i);
  1329. grd_dutschelist.rowStyle(i, "data", "background-color") = "#FFFFFF";
  1330. }
  1331. var sJobKindCd = model.getValue("/root/main/resltdata/dutschelist[" + (i - 1) +"]/jobkindcd");
  1332. if(sJobKindCd == "2820")
  1333. {
  1334. grd_dutschelist.rowStyle(i, "data", "background-color") = "#FEF2FE";
  1335. }
  1336. }
  1337. }
  1338. function fSetCalendarScheList()
  1339. {
  1340. var basedd = new Array();
  1341. var holiflag = new Array();
  1342. var daynm = new Array();
  1343. var baseday = new Array();
  1344. for( var i=1; i<=31; i++)
  1345. {
  1346. basedd[i - 1] = model.getValue("/root/main/daylist["+ i + "]/basedd");
  1347. holiflag[i - 1] = model.getValue("/root/main/daylist["+ i + "]/holiflag");
  1348. daynm[i - 1] = model.getValue("/root/main/daylist["+ i + "]/daynm");
  1349. baseday[i - 1] = model.getValue("/root/main/daylist["+ i + "]/basedd").substr(6, 2);
  1350. if(basedd[i - 1] == "")
  1351. {
  1352. grd_dutschelist.colHidden(i + iDay1ColIdx) = true;
  1353. grd_dutmancntlist.colHidden(i) = true;
  1354. }
  1355. else
  1356. {
  1357. grd_dutschelist.colHidden(i + iDay1ColIdx) = false;
  1358. grd_dutmancntlist.colHidden(i) = false;
  1359. }
  1360. if(holiflag[i - 1] == '4')
  1361. {
  1362. grd_dutschelist.colStyle((i + iDay1ColIdx), "all", "color") = "#0000FF";
  1363. grd_dutmancntlist.colStyle((i + iDay4ColIdx), "all", "color") = "#0000FF";
  1364. }
  1365. else if(holiflag[i - 1] == '0')
  1366. {
  1367. grd_dutschelist.colStyle((i + iDay1ColIdx), "all", "color") = "#FF0000";
  1368. grd_dutmancntlist.colStyle((i + iDay4ColIdx), "all", "color") = "#FF0000";
  1369. }
  1370. else
  1371. {
  1372. grd_dutschelist.colStyle((i + iDay1ColIdx), "all", "color") = "#000000";
  1373. grd_dutmancntlist.colStyle((i + iDay4ColIdx), "all", "color") = "#000000";
  1374. }
  1375. }
  1376. var sche_caption = grd_dutschelist.caption;
  1377. var sche_split = sche_caption.split("^");
  1378. var man_caption = grd_dutmancntlist.caption;
  1379. var man_split = man_caption.split("^");
  1380. sche_caption = "근무년월";
  1381. man_caption = "Duty별 근무자수";
  1382. for(var j=1; j<sche_split.length; j++ )
  1383. {
  1384. if(j > 79 && j < 111)
  1385. {
  1386. sche_caption = sche_caption + "^" + daynm[j - 80];
  1387. }
  1388. else if(j > 9 && j < 41)
  1389. {
  1390. sche_caption = sche_caption + "^" + baseday[j - 10];
  1391. }
  1392. else
  1393. {
  1394. sche_caption = sche_caption + "^" + sche_split[j];
  1395. }
  1396. }
  1397. grd_dutschelist.caption = sche_caption;
  1398. for(var k=1; k<man_split.length; k++)
  1399. {
  1400. if(k > 32)
  1401. {
  1402. man_caption = man_caption + "^" + daynm[k - 33];
  1403. }
  1404. else if(k > 0 && k < 32)
  1405. {
  1406. man_caption = man_caption + "^" + baseday[k - 1];
  1407. }
  1408. else
  1409. {
  1410. man_caption = man_caption + "^" + man_split[k];
  1411. }
  1412. }
  1413. grd_dutmancntlist.caption = man_caption;
  1414. }
  1415. function fSetContextMenu()
  1416. {
  1417. model.removenode("/root/codedata/popupmenu/dutschelist");
  1418. model.copyNode("/root/codedata/popupmenu", "/root/codedata/popuptemp");
  1419. var sPreCode = "";
  1420. var iLineCnt = 0;
  1421. for(i=2 ; i < grd_dutcdlist.rows ; i++)
  1422. {
  1423. model.makeValue("/root/codedata/popupmenu/dutschelist[" + (i + iLineCnt) + "]/item/name", grd_dutcdlist.valueMatrix(i, grd_dutcdlist.colRef("dutcdnm")));
  1424. model.makeValue("/root/codedata/popupmenu/dutschelist[" + (i + iLineCnt) + "]/item/func", grd_dutcdlist.valueMatrix(i, grd_dutcdlist.colRef("dutcd")));
  1425. }
  1426. }
  1427. function fSetDutImage()
  1428. {
  1429. if(model.getValue("/root/send/appscheexecflag") == "2")
  1430. {
  1431. for(var i = 2 ; i < grd_dutschelist.rows; i++)
  1432. {
  1433. for(var j=iDay1ColIdx + 1; j<iDay31ColIdx; j++)
  1434. {
  1435. grd_dutschelist.cellStyle("background-image", i, j) = "";
  1436. }
  1437. var sEmplNo = grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("emplno"));
  1438. var iResnIdx = 0;
  1439. var iSelectedRow = 0;
  1440. while(grd_resnlist.findRow(sEmplNo, iResnIdx, grd_resnlist.colRef("emplno")) > 0)
  1441. {
  1442. iSelectedRow = grd_resnlist.findRow(sEmplNo, iResnIdx, grd_resnlist.colRef("emplno"));
  1443. if(grd_resnlist.valueMatrix(iSelectedRow, grd_resnlist.colRef("appscheexecflag")) == '1')
  1444. {
  1445. //sDutDD = grd_resnlist.valueMatrix(iSelectedRow, grd_resnlist.colRef("dutdd")).substr(6, 2);
  1446. sDutDD = grd_resnlist.valueMatrix(iSelectedRow, grd_resnlist.colRef("dutdd"));
  1447. smm = model.getXPathValue("count(/root/main/daylist[basedd='" + sDutDD + "']/preceding-sibling::daylist) + 1");
  1448. //smm = datagrid1.findRow(sDutDD, 1, 0, false, false);
  1449. //alert(smm + "==" + sDutDD);
  1450. sDutCd = grd_resnlist.valueMatrix(iSelectedRow, grd_resnlist.colRef("dutcd"));
  1451. //iColIdx = parseFloat(sDutDD) + iDay1ColIdx;
  1452. iColIdx = parseFloat(smm) + iDay1ColIdx;
  1453. grd_dutschelist.cellStyle("background-image", i, iColIdx) = "../../../com/commonweb/images/input_essential.gif";
  1454. if(grd_dutschelist.valueMatrix(i, iColIdx).substr(0, 1) == "N" && sDutCd.substr(0, 1) == "V")
  1455. {
  1456. grd_dutschelist.cellStyle("background-color", i, iColIdx) = "#FFFCC4";
  1457. }
  1458. }
  1459. iResnIdx = iSelectedRow + 1;
  1460. }
  1461. }
  1462. }
  1463. }
  1464. function fSetSrvAppDutCd()
  1465. {
  1466. for(var i=2; i<grd_dutschelist.rows; i++)
  1467. {
  1468. if(grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("emplappyn")) == "0")
  1469. {
  1470. model.setValue(grd_dutschelist.nodeset + "[" + (i - 1) + "]/dutym", model.getValue("/root/send/dutym"));
  1471. model.setValue(grd_dutschelist.nodeset + "[" + (i - 1) + "]/appscheexecflag", "2");
  1472. // grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("dutym")) = ipt_dutym.value;
  1473. // grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("appscheexecflag")) = '2';
  1474. grd_dutschelist.addStatus(i, "insert");
  1475. }else{
  1476. if (rdo_appscheexecflag.value == "2"){
  1477. var k = parseFloat(i) - 1;
  1478. //alert(k + "==" + model.getValue("/root/main/resltdata/dutschelist[" + k + "]/prntseq") + "==" + model.getValue("/root/main/resltdata/dutschelist[" + k + "]/prntseq1"));
  1479. if (model.getValue("/root/main/resltdata/dutschelist[" + k + "]/prntseq") != model.getValue("/root/main/resltdata/dutschelist[" + k + "]/prntseq1")){
  1480. grd_dutschelist.addStatus(i, "update");
  1481. }
  1482. }
  1483. }
  1484. }
  1485. }
  1486. function fSetHelperColor()
  1487. {
  1488. for(var i=2; i<grd_dutschelist.rows; i++)
  1489. {
  1490. var sSuppFlag = grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("suppflag"))
  1491. var iCnt = 0;
  1492. for(var j=iDay1ColIdx + 1; j<iDay31ColIdx; j++)
  1493. {
  1494. sBackCol = grd_dutschelist.cellStyle("background-color", i, j);
  1495. if(sSuppFlag == "1" && grd_dutschelist.valueMatrix(i, j) != "")
  1496. {
  1497. iCnt++;
  1498. }
  1499. if(iCnt > 0)
  1500. {
  1501. grd_dutschelist.rowStyle(i, "data", "background-color") == "#CCFFCC"
  1502. }
  1503. }
  1504. if(sSuppFlag == "1")
  1505. {
  1506. //misfSetReadOnlyCol(grd_dutschelist, "part", true, i);
  1507. grd_dutschelist.cellStyle("background-color", i, grd_dutschelist.colRef("emplnm")) = "#CCFFCC";
  1508. }
  1509. }
  1510. for(var i=1; i<grd_resnlist.rows; i++)
  1511. {
  1512. var sSuppDeptCd = grd_resnlist.valueMatrix(i, grd_resnlist.colRef("suppdeptcd"));
  1513. var sDutDD = parseFloat(grd_resnlist.valueMatrix(i, grd_resnlist.colRef("dutdd")).substr(6, 2));
  1514. var sEmplNo = grd_resnlist.valueMatrix(i, grd_resnlist.colRef("emplno"));
  1515. var sScheFlag = grd_resnlist.valueMatrix(i, grd_resnlist.colRef("appscheexecflag"));
  1516. var iRowIdx = grd_dutschelist.findRow(sEmplNo, 2, grd_dutschelist.colRef("emplno"));
  1517. var sSuppFlag = "";
  1518. if(sSuppDeptCd != "" && sScheFlag == rdo_appscheexecflag.value)
  1519. {
  1520. if(iRowIdx < 0) continue;
  1521. // if(rdo_appscheexecflag.value == "3") iRowIdx++;
  1522. sSuppFlag = grd_dutschelist.valueMatrix(iRowIdx, grd_dutschelist.colRef("suppflag"));
  1523. if(sSuppFlag == "1")
  1524. {
  1525. grd_dutschelist.cellStyle("background-color", iRowIdx, sDutDD + iDay1ColIdx ) = "#CCFFCC";
  1526. }
  1527. else
  1528. {
  1529. grd_dutschelist.cellStyle("background-color", iRowIdx, sDutDD + iDay1ColIdx ) = "#FFCC66";
  1530. }
  1531. }
  1532. else
  1533. {
  1534. sSuppFlag = grd_dutschelist.valueMatrix(iRowIdx, grd_dutschelist.colRef("suppflag"));
  1535. if(sSuppFlag != "1")
  1536. {
  1537. // 2008.8.26 수정
  1538. // grd_dutschelist.cellStyle("background-color", iRowIdx, sDutDD + iDay1ColIdx + 1) = "#FFFFFF";
  1539. }
  1540. }
  1541. }
  1542. }
  1543. function fShowInfoVisible()
  1544. {
  1545. model.refresh();
  1546. var bCnfm = false;
  1547. var bExec = false;
  1548. for(var i=1; i<=instance1.selectNodes(grd_dutschelist.nodeset).length; i++)
  1549. {
  1550. if(model.getValue(grd_dutschelist.nodeset + "[" + i + "]/dutplcedeptcd") == model.getValue("/root/send/dutunitcd") &&
  1551. model.getValue(grd_dutschelist.nodeset + "[" + i + "]/execschecloseyn") == "Y")
  1552. {
  1553. bExec = true;
  1554. i = instance1.selectNodes(grd_dutschelist.nodeset).length + 1;
  1555. }
  1556. }
  1557. for(var i=1; i<=instance1.selectNodes(grd_dutschelist.nodeset).length; i++)
  1558. {
  1559. if(model.getValue(grd_dutschelist.nodeset + "[" + i + "]/dutplcedeptcd") == model.getValue("/root/send/dutunitcd") &&
  1560. model.getValue(grd_dutschelist.nodeset + "[" + i + "]/deprtmangrdutcnfmyn") == "Y")
  1561. {
  1562. bCnfm = true;
  1563. i = instance1.selectNodes(grd_dutschelist.nodeset).length + 1;
  1564. }
  1565. }
  1566. if(rdo_appscheexecflag.value == "2")
  1567. {
  1568. if(bExec && !bCnfm)
  1569. {
  1570. cap_caution1.visible = true;
  1571. cap_caution2.visible = false;
  1572. btn_save.disabled = true;
  1573. btn_execclose.disabled = false;
  1574. btn_print.disabled = false;
  1575. btn_execclose.attribute("text") = "실시취소";
  1576. }
  1577. else if(bCnfm)
  1578. {
  1579. cap_caution1.visible = false;
  1580. cap_caution2.visible = true;
  1581. btn_save.disabled = true;
  1582. btn_execclose.disabled = true;
  1583. btn_print.disabled = false;
  1584. }
  1585. else if(!bExec && !bCnfm)
  1586. {
  1587. cap_caution1.visible = false;
  1588. cap_caution2.visible = false;
  1589. btn_save.disabled = false;
  1590. btn_execclose.disabled = false;
  1591. btn_print.disabled = true;
  1592. btn_execclose.attribute("text") = "실시마감";
  1593. }
  1594. // btn_viewscheexec.visible = false;
  1595. btn_cnfmclose.disabled = true;
  1596. btn_cnfmclose.visible = false;
  1597. btn_execclose.visible = true;
  1598. caption20.visible = true;
  1599. bool1.visible = true;
  1600. }
  1601. else if(rdo_appscheexecflag.value == "3")
  1602. {
  1603. if(bCnfm)
  1604. {
  1605. cap_caution1.visible = false;
  1606. cap_caution2.visible = true;
  1607. btn_save.disabled = true;
  1608. btn_clear.disabled = true;
  1609. btn_cnfmclose.disabled = true;
  1610. }
  1611. else
  1612. {
  1613. cap_caution1.visible = false;
  1614. cap_caution2.visible = false;
  1615. btn_save.disabled = false;
  1616. btn_clear.disabled = false;
  1617. if(grd_dutschelist.rows == 2)
  1618. {
  1619. btn_cnfmclose.disabled = true;
  1620. btn_save.disabled = true;
  1621. }
  1622. else
  1623. {
  1624. btn_cnfmclose.disabled = false;
  1625. btn_save.disabled = false;
  1626. }
  1627. }
  1628. btn_save.disabled = true;
  1629. btn_print.disabled = false;
  1630. btn_execclose.visible = false;
  1631. btn_cnfmclose.visible = true;
  1632. caption20.visible = false;
  1633. bool1.visible = false;
  1634. }
  1635. }
  1636. //실시대비확정보기 버튼 이벤트
  1637. function fViewScheExec()
  1638. {
  1639. if(btn_viewscheexec.attribute("text") == "실시대비확정보기")
  1640. {
  1641. for(var i=2; i<grd_dutschelist.rows; i++)
  1642. {
  1643. grd_dutschelist.rowHidden(i) = false;
  1644. i++;
  1645. }
  1646. btn_viewscheexec.attribute("class") = "btn5_letter9";
  1647. btn_viewscheexec.attribute("text") = "실시대비확정숨기기";
  1648. }
  1649. else
  1650. {
  1651. for(var i=2; i<grd_dutschelist.rows; i++)
  1652. {
  1653. grd_dutschelist.rowHidden(i) = true;
  1654. i++;
  1655. }
  1656. btn_viewscheexec.attribute("class") = "btn5_letter8";
  1657. btn_viewscheexec.attribute("text") = "실시대비확정보기";
  1658. }
  1659. btn_viewscheexec.attribute("visibility") = "visible";
  1660. }
  1661. // 근무년월 변경 이벤트
  1662. function fDutYMValueChanged()
  1663. {
  1664. model.removenode("/root/main/close");
  1665. submit("TRRPD02208");
  1666. var iCnt = parseFloat(model.getValue("/root/main/close/closeyn/cnt"));
  1667. var sCloseYn = ( model.getValue("/root/main/close/closeyn/closeyn") != "" ) ? model.getValue("/root/main/close/closeyn/closeyn") : "N";
  1668. if(instance1.selectNodes("/root/main/close/closeyn").length == 0)
  1669. {
  1670. if(!fSetControlAttr())
  1671. {
  1672. model.removeNodeset(grd_dutschelist.nodeset);
  1673. model.refresh();
  1674. return;
  1675. }
  1676. }
  1677. if(sCloseYn == "N")
  1678. {
  1679. if(!fSetControlAttr())
  1680. {
  1681. model.removeNodeset(grd_dutschelist.nodeset);
  1682. model.refresh();
  1683. return;
  1684. }
  1685. if(sCurYM <= model.getValue("/root/send/dutym"))
  1686. {
  1687. rdo_appscheexecflag.value = "2";
  1688. }
  1689. }
  1690. else
  1691. {
  1692. cap_caution3.visible = false;
  1693. if(bFirst)
  1694. {
  1695. rdo_appscheexecflag.value = "3";
  1696. bFirst = false;
  1697. }
  1698. }
  1699. submit("TRRPD02206");
  1700. btn_search.dispatch("DOMActivate");
  1701. }
  1702. function fSetControlAttr()
  1703. {
  1704. var bRetr = true;
  1705. /*
  1706. // UM / JM / 팀장 / 간호부장 / 인사담당자 / 복무책임자 일때
  1707. if(JOB_RESP_CD == "1070" || JOB_RESP_CD == "1080" || JOB_RESP_CD == "1901" || JOB_RESP_CD == "1907" || DUTY_RESP_YN == "Y" || DUTY_PART_YN == "Y")
  1708. {
  1709. cap_caution1.visible = false;
  1710. cap_caution2.visible = false;
  1711. cap_caution3.visible = false;
  1712. btn_search.disabled = false;
  1713. btn_save.disabled = false;
  1714. }
  1715. else if ( JOB_RESP_CD == "2010" ) {
  1716. cap_caution1.visible = false;
  1717. cap_caution2.visible = false;
  1718. cap_caution3.visible = false;
  1719. btn_search.disabled = false;
  1720. cmb_dutplce.disabled = false;
  1721. rdo_appscheexecflag.disabled = false;
  1722. }
  1723. else {
  1724. cap_caution1.visible = false;
  1725. cap_caution2.visible = false;
  1726. cap_caution3.visible = true;
  1727. btn_search.disabled = true;
  1728. btn_save.disabled = true;
  1729. btn_cnfmclose.disabled = true;
  1730. bRetr = false;
  1731. }
  1732. */
  1733. return bRetr;
  1734. }
  1735. // 실시대비확정보기 변경
  1736. function fChangeAppScheExec()
  1737. {
  1738. ipt_dutym.dispatch("xforms-value-changed");
  1739. if(grd_dutschelist.rows == 2 && model.getValue("/root/send/appscheexecflag") == '3')
  1740. {
  1741. cap_caution3.visible = true;
  1742. btn_cnfmclose.disabled = true;
  1743. }
  1744. else if(grd_dutschelist.rows > 2 && model.getValue("/root/send/appscheexecflag") == '3')
  1745. {
  1746. cap_caution3.visible = false;
  1747. btn_cnfmclose.disabled = false;
  1748. }
  1749. }
  1750. // 저장
  1751. function fSave()
  1752. {
  1753. var updtdata1 = getGridUpdateData(grd_dutschelist);
  1754. if (updtdata1 == "")
  1755. {
  1756. messageBox("변경된 데이터가", "I004");
  1757. return;
  1758. }
  1759. if(misfSave("TXRPD02201"))
  1760. {
  1761. messageBox("저장", "I001");
  1762. }
  1763. grd_dutschelist.dispatch("onentercell");
  1764. }
  1765. function fSet1YearNurse()
  1766. {
  1767. var sEntcoDD = "";
  1768. var iEnterDayCnt = 0;
  1769. var iCurntDayCnt = 0;
  1770. for(var i=2; i<grd_dutschelist.rows; i++)
  1771. {
  1772. sEntcoDD = grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("entcodd"));
  1773. iEnterDayCnt = parseInt( Math.floor( Date.parse( misfConvertChar2Date(sEntcoDD, "/")) / 8.64e7));
  1774. iCurntDayCnt = parseInt( Math.floor( Date.parse( misfConvertChar2Date(getCurrentDate(), "/")) / 8.64e7));
  1775. if(iCurntDayCnt - iEnterDayCnt <= 365)
  1776. {
  1777. grd_dutschelist.cellStyle("background-image", i, grd_dutschelist.colRef("emplnm")) = "../../../com/commonweb/images/input_s_essential.gif";
  1778. grd_dutschelist.cellStyle("background-position", i, grd_dutschelist.colRef("emplnm")) = "center left";
  1779. }
  1780. }
  1781. }
  1782. function fCnfmClose()
  1783. {
  1784. submit("TRRPD02200");
  1785. if( model.getValue("/root/main/temp/flag/flag") == 'Y' ) {
  1786. messageBox("이미 확정마감 되었습니다.","I000");
  1787. return;
  1788. }
  1789. for(var i=2; i<grd_dutschelist.rows; i++)
  1790. {
  1791. if(grd_dutschelist.rowStatus(i) == 1 || grd_dutschelist.rowStatus(i) == 2 || grd_dutschelist.rowStatus(i) == 3)
  1792. {
  1793. messageBox("수정중인 데이터가 존재합니다. 저장 후 마감 하세요", "I000");
  1794. return;
  1795. }
  1796. }
  1797. var dlgResult
  1798. dlgResult = messageBox("확정 마감 하시면 번표 수정이 불가능 합니다.\n\n", "Q006");
  1799. model.setValue("/root/send/params/instcd", model.getValue("/root/send/instcd"));
  1800. model.setValue("/root/send/params/dutym", model.getValue("/root/send/dutym"));
  1801. model.setValue("/root/send/params/dutunitcd", model.getValue("/root/send/dutunitcd"));
  1802. model.setValue("/root/send/params/appscheexecflag", model.getValue("/root/send/appscheexecflag"));
  1803. if(dlgResult == 6)
  1804. {
  1805. if(misfSave("TXRPD02202"))
  1806. {
  1807. messageBox("확정 마감", "I001");
  1808. }
  1809. btn_search.dispatch("DOMActivate");
  1810. }
  1811. }
  1812. function fExecClose()
  1813. {
  1814. if(btn_execclose.attribute("text") == "실시마감")
  1815. {
  1816. for(var i=2; i<grd_dutschelist.rows; i++)
  1817. {
  1818. if(grd_dutschelist.rowStatus(i) == 1 || grd_dutschelist.rowStatus(i) == 2 || grd_dutschelist.rowStatus(i) == 3)
  1819. {
  1820. messageBox("수정중인 데이터가 존재합니다. 저장 후 마감 하세요", "I000");
  1821. return;
  1822. }
  1823. }
  1824. var dlgResult
  1825. dlgResult = messageBox("[ 실시 마감 ] 하시면 실시 번표 수정이 불가능 합니다.\n\n마감 하시겠습니까? 예(Yes) / 아니오(No)", "Q000");
  1826. model.setValue("/root/send/params/instcd", model.getValue("/root/send/instcd"));
  1827. model.setValue("/root/send/params/dutym", model.getValue("/root/send/dutym"));
  1828. model.setValue("/root/send/params/dutunitcd", model.getValue("/root/send/dutunitcd"));
  1829. model.setValue("/root/send/params/appscheexecflag", model.getValue("/root/send/appscheexecflag"));
  1830. model.setValue("/root/send/params/flag", "operateclose");
  1831. if(dlgResult == 6)
  1832. {
  1833. if(misfSave("TXRPD02203"))
  1834. {
  1835. messageBox("실시마감", "I001");
  1836. }
  1837. btn_search.dispatch("DOMActivate");
  1838. }
  1839. }
  1840. else if(btn_execclose.attribute("text") == "실시취소")
  1841. {
  1842. var dlgResult
  1843. dlgResult = messageBox("[ 실시 마감 ] ", "Q007");
  1844. model.setValue("/root/send/params/instcd", model.getValue("/root/send/instcd"));
  1845. model.setValue("/root/send/params/dutym", model.getValue("/root/send/dutym"));
  1846. model.setValue("/root/send/params/dutunitcd", model.getValue("/root/send/dutunitcd"));
  1847. model.setValue("/root/send/params/appscheexecflag", model.getValue("/root/send/appscheexecflag"));
  1848. model.setValue("/root/send/params/flag", "cancelclose");
  1849. if(dlgResult == 6)
  1850. {
  1851. misfSave("TXRPD02203");
  1852. btn_search.dispatch("DOMActivate");
  1853. }
  1854. }
  1855. }
  1856. function fPrint()
  1857. {
  1858. submit("TRRPD02209");
  1859. exeReportPreview("RPRPD02201", "XMLSTR");
  1860. model.removeNodeset("/root/main/print/printlist");
  1861. model.refresh();
  1862. }
  1863. ]]>
  1864. </script>
  1865. </xhtml:head>
  1866. <xhtml:body pagewidth="1211" pageheight="784" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  1867. <script type="javascript" ev:event="onmenu">
  1868. <![CDATA[
  1869. var popupParam = event.description;
  1870. fSetValueGrid2Cell(popupParam);
  1871. ]]>
  1872. </script>
  1873. <group id="group1" style="left:0px; top:0px; width:1195px; height:13px; ">
  1874. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:230px; height:14px; ">실시확정번표등록</caption>
  1875. <caption id="caption4" class="patient_text_black" style="left:922px; top:0px; width:272px; "/>
  1876. </group>
  1877. <group id="group3" scroll="auto" style="left:0px; top:38px; width:1195px; height:744px; ">
  1878. <line id="line1" class="line_1" style="x1:0px; y1:89px; x2:1195px; y2:89px; "/>
  1879. <caption id="caption9" class="tit_2" style="left:5px; top:74px; width:109px; height:13px; ">근무 스케줄</caption>
  1880. <group id="group4" style="left:0px; top:10px; width:1195px; height:55px; vertical-align:top; ">
  1881. <shape id="roundrect2" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:1195px; height:55px; background-color:#fffbf2; border-color:#ffd799; "/>
  1882. <caption id="caption5" class="search_name" style="left:15px; top:31px; width:86px; height:17px; ">관리부서 :</caption>
  1883. <line id="line3" class="line_4" style="x1:1110px; y1:7px; x2:1110px; y2:49px; border-color:#ffe4bb; border-left-style:solid; "/>
  1884. <caption id="caption1" class="search_name" style="left:393px; top:7px; width:91px; height:17px; ">근무년월 :</caption>
  1885. <caption id="caption2" class="search_name" style="left:630px; top:7px; width:68px; height:17px; ">구분 :</caption>
  1886. <input id="ipt_dutym" ref="/root/send/dutym" class="input_search" inputtype="date" format="yyyy-mm" style="left:480px; top:6px; width:110px; height:19px; text-align:center; ">
  1887. <script type="javascript" ev:event="xforms-value-changed">
  1888. <![CDATA[
  1889. var instcd = cmb_instcd.value;
  1890. if( getStringLength(ipt_dutym.value) == "6" ) {
  1891. // model.removeNodeset(cmb_instcd.attribute("ref"));
  1892. // model.makeNode("/root/send/instcd");
  1893. misfComboInstCdListMulti("cmb_instcd",ipt_dutym.value+"31","","N");
  1894. cmb_instcd.value = instcd;
  1895. model.refresh();
  1896. }
  1897. fDutYMValueChanged();
  1898. ]]>
  1899. </script>
  1900. </input>
  1901. <input id="ipt_dutdeptcd" ref="/root/send/dutunitcd" class="input_s_essential" navindex="2" visibility="visible" maxlength="10" style="left:102px; top:30px; width:85px; height:19px; ">
  1902. <script type="javascript" ev:event="xforms-value-changed">
  1903. <![CDATA[
  1904. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd" );
  1905. model.setValue("/root/send/dutcdparams/dutunitcd", cmb_dutplce.value);
  1906. model.refresh();
  1907. ]]>
  1908. </script>
  1909. <script type="javascript" ev:event="onkeypress">
  1910. <![CDATA[
  1911. if(event.keyCode == 13)
  1912. {
  1913. ipt_dutdeptcd.value = ipt_dutdeptcd.currentText;
  1914. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd" );
  1915. model.setValue("/root/send/dutcdparams/dutunitcd", cmb_dutplce.value);
  1916. model.refresh();
  1917. }
  1918. ]]>
  1919. </script>
  1920. </input>
  1921. <input id="ipt_dutdeptnm" ref="/root/send/dutunitnm" class="input_search" navindex="3" visibility="visible" style="left:211px; top:30px; width:134px; height:19px; ">
  1922. <script type="javascript" ev:event="xforms-value-changed">
  1923. <![CDATA[
  1924. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd" );
  1925. model.setValue("/root/send/dutcdparams/dutunitcd", cmb_dutplce.value);
  1926. model.refresh();
  1927. ]]>
  1928. </script>
  1929. <script type="javascript" ev:event="onkeypress">
  1930. <![CDATA[
  1931. if(event.keyCode == 13)
  1932. {
  1933. ipt_dutdeptnm.value = ipt_dutdeptnm.currentText;
  1934. misfValidationCheck("02", "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd" );
  1935. model.setValue("/root/send/dutcdparams/dutunitcd", cmb_dutplce.value);
  1936. model.refresh();
  1937. }
  1938. ]]>
  1939. </script>
  1940. </input>
  1941. <button id="btn_dutdept" class="icon_search" visibility="visible" style="left:193px; top:32px; width:16px; height:16px; ">
  1942. <caption/>
  1943. <script type="javascript" ev:event="DOMActivate">
  1944. <![CDATA[
  1945. // misfOpenPopUpList("02", ipt_dutdeptcd, "", "dutunitcd,dutunitnm", cmb_instcd.value, "instcd");
  1946. misfOpenPopUpList("02", ipt_dutdeptcd,"","dutunitcd,dutunitnm", cmb_instcd.value + "," + ipt_dutym.value+"31", "instcd,basedd");
  1947. model.setValue("/root/send/dutcdparams/dutunitcd", ipt_dutdeptcd.value);
  1948. model.refresh();
  1949. ]]>
  1950. </script>
  1951. </button>
  1952. <button id="btn_search" class="btn1_letter2" navindex="4" style="left:1125px; top:17px; width:56px; height:22px; text-align:left; ">
  1953. <caption>조회</caption>
  1954. <script type="javascript" ev:event="DOMActivate">
  1955. <![CDATA[
  1956. if (fRetrieve() == "dutunitval") return;
  1957. fSet1YearNurse();
  1958. // if(grd_dutschelist.rowStatus(2) == 1)
  1959. // {
  1960. fSetYearHoliOffCnt("retr");
  1961. // }
  1962. /*
  1963. if(JOB_RESP_CD != "1901" && JOB_RESP_CD != "1070" && JOB_RESP_CD != "1907" && JOB_RESP_CD != "1080" && DUTY_PART_YN != "Y" && DUTY_PART_YN != "Y") // 권한이 UM, 팀장, JM, 복무책임자, 인사담당자가 아닐때..
  1964. {
  1965. rpdfSetControlByJobRespCd("btn_execclose,btn_cnfmclose,btn_save,cmb_dutplce,rdo_appscheexecflag");
  1966. }
  1967. if( JOB_RESP_CD == "2010" ) { // 간호부장이면
  1968. cap_caution1.visible = false;
  1969. cap_caution2.visible = false;
  1970. cap_caution3.visible = false;
  1971. btn_search.disabled = false;
  1972. cmb_dutplce.disabled = false;
  1973. rdo_appscheexecflag.disabled = false;
  1974. }
  1975. */
  1976. // 테스트용
  1977. // btn_save.disabled = false;
  1978. ]]>
  1979. </script>
  1980. </button>
  1981. <button id="btn_viewscheexec" class="btn5_letter8" navindex="4" visibility="hidden" style="left:845px; top:5px; width:108px; height:19px; text-align:left; ">
  1982. <caption>실시대비확정보기</caption>
  1983. <script type="javascript" ev:event="DOMActivate">
  1984. <![CDATA[
  1985. fViewScheExec();
  1986. ]]>
  1987. </script>
  1988. </button>
  1989. <select1 id="rdo_appscheexecflag" ref="/root/send/appscheexecflag" appearance="full" cellspacing="10" cols="2" overflow="hidden" style="left:695px; top:7px; width:115px; height:15px; border-style:none; ">
  1990. <choices>
  1991. <item>
  1992. <label>실시</label>
  1993. <value>2</value>
  1994. </item>
  1995. <item>
  1996. <label>확정</label>
  1997. <value>3</value>
  1998. </item>
  1999. </choices>
  2000. <script type="javascript" ev:event="xforms-value-changed">
  2001. <![CDATA[
  2002. btn_viewscheexec.attribute("class") = "btn5_letter8";
  2003. btn_viewscheexec.attribute("text") = "실시대비확정보기";
  2004. if (rdo_appscheexecflag.value == "2"){
  2005. caption20.visible = true;
  2006. bool1.visible = true;
  2007. }else{
  2008. caption20.visible = false;
  2009. bool1.visible = false;
  2010. }
  2011. fChangeAppScheExec();
  2012. ]]>
  2013. </script>
  2014. </select1>
  2015. <select1 id="cmb_dutplce" ref="/root/send/dutunitcd" class="combo_search" visibility="visible" appearance="minimal" style="left:102px; top:30px; width:243px; height:19px; ">
  2016. <choices>
  2017. <itemset>
  2018. <label/>
  2019. <value/>
  2020. </itemset>
  2021. </choices>
  2022. <script type="javascript" ev:event="xforms-value-changed">
  2023. <![CDATA[
  2024. model.setValue("/root/send/dutcdparams/dutunitcd", cmb_dutplce.value);
  2025. btn_search.dispatch("DOMActivate");
  2026. ]]>
  2027. </script>
  2028. </select1>
  2029. <caption id="caption3" class="search_name" visibility="hidden" style="left:393px; top:31px; width:90px; height:17px; ">직 종 :</caption>
  2030. <select1 id="cmb_jobkind" ref="/root/send/jobkind" class="combo_search" visibility="hidden" appearance="minimal" style="left:480px; top:30px; width:110px; height:19px; text-align:center; ">
  2031. <choices>
  2032. <item>
  2033. <label>전체</label>
  2034. <value/>
  2035. </item>
  2036. <item>
  2037. <label>간호직</label>
  2038. <value>1</value>
  2039. </item>
  2040. <item>
  2041. <label>병원지원직</label>
  2042. <value>2</value>
  2043. </item>
  2044. </choices>
  2045. </select1>
  2046. <select1 id="cmb_instcd" ref="/root/send/instcd" class="combo_search" navindex="1" appearance="minimal" style="left:102px; top:6px; width:243px; height:19px; ">
  2047. <choices>
  2048. <itemset>
  2049. <label/>
  2050. <value/>
  2051. </itemset>
  2052. </choices>
  2053. <script type="javascript" ev:event="xforms-value-changed">
  2054. <![CDATA[
  2055. model.setValue("/root/send/dutcdparams/instcd", cmb_instcd.value)
  2056. ]]>
  2057. </script>
  2058. </select1>
  2059. <caption id="caption29" class="search_name" style="left:14px; top:7px; width:86px; height:17px; ">소속기관 :</caption>
  2060. <bool id="bool1" visibility="hidden" checkvalue="Y,N" ref="/root/send/oldchk" style="left:635px; top:30px; width:35px; height:20px; ">
  2061. <script type="javascript" ev:event="xforms-value-changed">
  2062. <![CDATA[
  2063. btn_search.dispatch("DOMActivate");
  2064. ]]>
  2065. </script>
  2066. </bool>
  2067. <caption id="caption20" visibility="hidden" style="left:675px; top:30px; width:305px; height:20px; font-weight:bold; ">번표대상자 변경전 자료로 보기</caption>
  2068. </group>
  2069. <line id="line12" class="line_2" style="x1:0px; y1:605px; x2:1195px; y2:605px; "/>
  2070. <caption id="caption15" class="cell_1" style="left:0px; top:552px; width:90px; height:23px; text-align:center; vertical-align:middle; ">신청사유</caption>
  2071. <caption id="caption18" class="cell_1" style="left:0px; top:579px; width:90px; height:22px; text-align:center; vertical-align:middle; ">근무사유</caption>
  2072. <line id="line2" class="line_1" style="x1:0px; y1:550px; x2:1193px; y2:550px; "/>
  2073. <datagrid id="grd_dutcdlist" nodeset="/root/main/list/dutcdlist" class="text_center" allowuserresize="true" caption="코드^근무명^근무코드명^근무시간^Day인원^Evening인원^Night인원|코드^근무명^근무코드명^근무시간^Day인원^Evening인원^Night인원" colsep="^" colwidth="35, 250, 0, 0, 0, 0, 0" frozencols="1" mergecellsfixedrows="bycolrec" rowsep="|" style="left:1024px; top:94px; width:170px; height:455px; ">
  2074. <col ref="dutcd" style="font-family:돋움체; font-size:9pt; text-align:left; "/>
  2075. <col ref="dutnm" style="font-family:돋움체; font-size:9pt; text-align:left; "/>
  2076. <col ref="dutcdnm" visibility="hidden"/>
  2077. <col ref="duttm" visibility="hidden"/>
  2078. <col ref="daycnt" visibility="hidden"/>
  2079. <col ref="eveningpsnno" visibility="hidden"/>
  2080. <col ref="nigtpsnno" visibility="hidden"/>
  2081. <script type="javascript" ev:event="ondblclick">
  2082. <![CDATA[
  2083. fSetScheDutCd(grd_dutcdlist.valueMatrix(grd_dutcdlist.row, grd_dutcdlist.colRef("dutcd")));
  2084. fSetMonthPrDayCnt();
  2085. ]]>
  2086. </script>
  2087. </datagrid>
  2088. <line id="line15" class="line_3" style="x1:0px; y1:602px; x2:1194px; y2:602px; "/>
  2089. <button id="btn_reqresnview" class="btn2_letter6" style="left:561px; top:557px; width:86px; height:19px; text-align:left; ">
  2090. <caption>신청사유보기</caption>
  2091. <script type="javascript" ev:event="DOMActivate">
  2092. <![CDATA[
  2093. model.setValue("/root/send/winparams/instcd", model.getValue("/root/send/instcd"));
  2094. model.setValue("/root/send/winparams/dutunitcd", model.getValue("/root/send/dutunitcd"));
  2095. model.setValue("/root/send/winparams/dutym", model.getValue("/root/send/dutym"));
  2096. rpdfOpenPopUpList("2", btn_reqresnview, "", "", "", "", "/root/send/winparams/dutym");
  2097. model.refresh();
  2098. ]]>
  2099. </script>
  2100. </button>
  2101. <input id="opt_dutresn" ref="/root/main/resn/dutresn" class="output_fix" disabled="true" style="left:92px; top:580px; width:468px; height:19px; "/>
  2102. <input id="opt_reqresn" ref="/root/main/resn/reqresn" class="output_fix" disabled="true" style="left:92px; top:557px; width:468px; height:19px; "/>
  2103. <button id="btn_dutcdflag" class="btn2_letter3" style="left:1139px; top:69px; width:53px; height:19px; text-align:left; ">
  2104. <caption>숨기기</caption>
  2105. <script type="javascript" ev:event="DOMActivate">
  2106. <![CDATA[
  2107. if(DUTCODE_FLAG == false)
  2108. {
  2109. DUTCODE_FLAG = true;
  2110. grd_dutcdlist.visible = false;
  2111. grd_dutschelist.attribute("style") = "left:0px; top:94px; width:1194px; height:458px; "
  2112. btn_dutcdflag.attribute("text") = "보이기";
  2113. grd_dutschelist.colHidden(grd_dutschelist.colRef("emplno")) = true;
  2114. grd_dutschelist.colHidden(grd_dutschelist.colRef("dutplcedeptnmtemp")) = true;
  2115. grd_dutschelist.colHidden(grd_dutschelist.colRef("jobkindnm")) = true;
  2116. }
  2117. else
  2118. {
  2119. DUTCODE_FLAG = false;
  2120. grd_dutcdlist.visible = true;
  2121. grd_dutschelist.attribute("style") = "left:0px; top:94px; width:1025px; height:458px; "
  2122. btn_dutcdflag.attribute("text") = "숨기기";
  2123. grd_dutschelist.colHidden(grd_dutschelist.colRef("emplno")) = false;
  2124. grd_dutschelist.colHidden(grd_dutschelist.colRef("dutplcedeptnmtemp")) = false;
  2125. grd_dutschelist.colHidden(grd_dutschelist.colRef("jobkindnm")) = false;
  2126. }
  2127. ]]>
  2128. </script>
  2129. </button>
  2130. <datagrid id="grd_dutmancntlist" nodeset="/root/main/resltdata/dutmancntlist" class="text_center" caption="Duty별 근무자수^1^2^3^4^5^6^7^8^9^10^11^12^13^14^15^16^17^18^19^20^21^22^23^24^25^26^27^28^29^30^31^caption1|Duty별 근무자수^월^화^수^목^금^토^일^월^화^수^목^금^토^일^월^화^수^목^금^토^일^월^화^수^목^금^토^일^월^화^수^caption1" colsep="^" colwidth="124, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 19" focuscolor="#ccffff" mergecellsfixedrows="bycolrec" rowheight="23" rowsep="|" selectionmode="bycol" style="left:71px; top:604px; width:1123px; height:137px; ">
  2131. <col ref="dutmancnt"/>
  2132. <col ref="day01"/>
  2133. <col ref="day02"/>
  2134. <col ref="day03"/>
  2135. <col ref="day04"/>
  2136. <col ref="day05"/>
  2137. <col ref="day06"/>
  2138. <col ref="day07"/>
  2139. <col ref="day08"/>
  2140. <col ref="day09"/>
  2141. <col ref="day10"/>
  2142. <col ref="day11"/>
  2143. <col ref="day12"/>
  2144. <col ref="day13"/>
  2145. <col ref="day14"/>
  2146. <col ref="day15"/>
  2147. <col ref="day16"/>
  2148. <col ref="day17"/>
  2149. <col ref="day18"/>
  2150. <col ref="day19"/>
  2151. <col ref="day20"/>
  2152. <col ref="day21"/>
  2153. <col ref="day22"/>
  2154. <col ref="day23"/>
  2155. <col ref="day24"/>
  2156. <col ref="day25"/>
  2157. <col ref="day26"/>
  2158. <col ref="day27"/>
  2159. <col ref="day28"/>
  2160. <col ref="day29"/>
  2161. <col ref="day30"/>
  2162. <col ref="day31"/>
  2163. <col visibility="hidden"/>
  2164. <script type="javascript" ev:event="oncolchanged">
  2165. <![CDATA[
  2166. grd_dutschelist.col = grd_dutmancntlist.col + iDay1ColIdx;
  2167. var dt = new Date(misfConvertChar2Date(model.getValue("/root/main/daylist[" + (grd_dutschelist.col - iDay1ColIdx) + "]/basedd"), "/"));
  2168. fCheckStndSche(dt.getDay());
  2169. model.refresh();
  2170. ]]>
  2171. </script>
  2172. </datagrid>
  2173. <button id="btn_excsave" class="btn2_letter4" style="left:1007px; top:69px; width:64px; height:19px; ">
  2174. <caption>엑셀저장</caption>
  2175. <script type="javascript" ev:event="DOMActivate">
  2176. <![CDATA[
  2177. misfSaveExcel(grd_dutschelist);
  2178. ]]>
  2179. </script>
  2180. </button>
  2181. <button id="btn_excsave2" class="btn2_letter4" style="left:4px; top:607px; width:64px; height:19px; ">
  2182. <caption>엑셀저장</caption>
  2183. <script type="javascript" ev:event="DOMActivate">
  2184. <![CDATA[
  2185. misfSaveExcel(grd_dutmancntlist);
  2186. ]]>
  2187. </script>
  2188. </button>
  2189. <caption id="caption7" style="left:150px; top:70px; width:135px; height:20px; ">신청 OFF / 스케쥴 Night</caption>
  2190. <output id="output2" style="left:125px; top:69px; width:20px; height:19px; background-color:#FFFCC4; border-style:solid; "/>
  2191. <caption id="caption10" style="left:340px; top:70px; width:106px; height:20px; ">지원 나간 Helper</caption>
  2192. <output id="output3" style="left:315px; top:69px; width:20px; height:19px; background-color:#FFCC66; border-style:solid; "/>
  2193. <caption id="caption8" style="left:485px; top:70px; width:94px; height:20px; ">지원 온 Helper</caption>
  2194. <output id="output1" style="left:460px; top:69px; width:20px; height:19px; background-color:#CCFFCC; border-style:solid; "/>
  2195. <button id="btn_retrsrvp" class="btn2_letter8" visibility="visible" style="left:898px; top:69px; width:108px; height:19px; ">
  2196. <caption>복무계획신청내역</caption>
  2197. <script type="javascript" ev:event="DOMActivate">
  2198. <![CDATA[
  2199. model.setValue("/root/send/winparams/instcd", model.getValue("/root/send/instcd"));
  2200. model.setValue("/root/send/winparams/dutunitcd", model.getValue("/root/send/dutunitcd"));
  2201. model.setValue("/root/send/winparams/dutym", model.getValue("/root/send/dutym"));
  2202. modal("SPRPD02610", "", "", "", "", "/root/send/winparams", "/root/target" );
  2203. ]]>
  2204. </script>
  2205. </button>
  2206. <button id="btn_zoom" class="btn2_letter4" style="left:1074px; top:69px; width:64px; height:19px; text-align:left; ">
  2207. <caption>확대하기</caption>
  2208. <script type="javascript" ev:event="DOMActivate">
  2209. <![CDATA[
  2210. if(ZOOM_FLAG == false)
  2211. {
  2212. ZOOM_FLAG = true;
  2213. grd_dutcdlist.visible = false;
  2214. grd_dutschelist.attribute("style") = "left:0px; top:94px; width:1194px; height:650px; "
  2215. btn_zoom.attribute("text") = "축소하기";
  2216. // grd_dutschelist.colHidden(grd_dutschelist.colRef("emplno")) = true;
  2217. // grd_dutschelist.colHidden(grd_dutschelist.colRef("dutplcedeptnmtemp")) = true;
  2218. // grd_dutschelist.colHidden(grd_dutschelist.colRef("jobkindnm")) = true;
  2219. }
  2220. else
  2221. {
  2222. ZOOM_FLAG = false;
  2223. grd_dutcdlist.visible = true;
  2224. grd_dutschelist.attribute("style") = "left:0px; top:94px; width:1025px; height:458px; "
  2225. btn_zoom.attribute("text") = "확대하기";
  2226. // grd_dutschelist.colHidden(grd_dutschelist.colRef("emplno")) = false;
  2227. // grd_dutschelist.colHidden(grd_dutschelist.colRef("dutplcedeptnmtemp")) = false;
  2228. // grd_dutschelist.colHidden(grd_dutschelist.colRef("jobkindnm")) = false;
  2229. }
  2230. ]]>
  2231. </script>
  2232. </button>
  2233. <caption id="caption11" style="left:755px; top:558px; width:26px; height:20px; text-align:center; vertical-align:middle; background-color:#dddddd; ">사용</caption>
  2234. <caption id="caption12" style="left:783px; top:558px; width:26px; height:20px; text-align:center; vertical-align:middle; background-color:#dddddd; ">잔여</caption>
  2235. <caption id="caption14" class="cell_1" style="left:666px; top:558px; width:31px; height:41px; text-align:center; vertical-align:middle; ">
  2236. <![CDATA[법정
  2237. 휴가]]>
  2238. </caption>
  2239. <caption id="caption16" style="left:699px; top:558px; width:26px; height:20px; text-align:center; vertical-align:middle; background-color:#dddddd; ">발생</caption>
  2240. <caption id="caption17" style="left:882px; top:558px; width:26px; height:20px; text-align:center; vertical-align:middle; background-color:#dddddd; ">사용</caption>
  2241. <caption id="caption22" style="left:910px; top:558px; width:26px; height:20px; text-align:center; vertical-align:middle; background-color:#dddddd; ">잔여</caption>
  2242. <caption id="caption23" class="cell_1" style="left:819px; top:558px; width:32px; height:41px; text-align:center; vertical-align:middle; ">
  2243. <![CDATA[보호
  2244. 휴가]]>
  2245. </caption>
  2246. <caption id="caption24" style="left:854px; top:558px; width:26px; height:20px; text-align:center; vertical-align:middle; background-color:#dddddd; ">발생</caption>
  2247. <caption id="caption25" style="left:1036px; top:558px; width:26px; height:20px; text-align:center; vertical-align:middle; background-color:#dddddd; ">잔여</caption>
  2248. <caption id="caption26" class="cell_1" style="left:946px; top:558px; width:31px; height:41px; text-align:center; vertical-align:middle; ">
  2249. <![CDATA[월
  2250. OFF]]>
  2251. </caption>
  2252. <caption id="caption27" style="left:980px; top:558px; width:26px; height:20px; text-align:center; vertical-align:middle; background-color:#dddddd; ">발생</caption>
  2253. <caption id="caption28" style="left:1008px; top:558px; width:26px; height:20px; text-align:center; vertical-align:middle; background-color:#dddddd; ">사용</caption>
  2254. <output id="opt_golmtspreyearno" ref="/root/main/userholiinfo/olmtspreyearno" format="(-)9999" style="left:727px; top:580px; width:26px; height:19px; text-align:right; border-color:#eaeaea; border-style:solid; "/>
  2255. <caption id="caption19" style="left:727px; top:558px; width:26px; height:20px; font-size:6pt; text-align:center; vertical-align:middle; background-color:#dddddd; ">1년미만연차</caption>
  2256. <output id="opt_genryearno" ref="/root/main/userholiinfo/genryearno" style="left:699px; top:580px; width:26px; height:19px; text-align:right; border-color:#eaeaea; border-style:solid; "/>
  2257. <output id="opt_useyearno" ref="/root/main/userholiinfo/useyearno" style="left:755px; top:580px; width:26px; height:19px; text-align:right; border-color:#eaeaea; border-style:solid; "/>
  2258. <output id="opt_spreyearno" ref="/root/main/userholiinfo/spreyearno" style="left:783px; top:580px; width:26px; height:19px; text-align:right; border-color:#eaeaea; border-style:solid; "/>
  2259. <output id="opt_genrhealholi" ref="/root/main/userholiinfo/genrhealholi" format="(-)9999" style="left:854px; top:580px; width:26px; height:19px; text-align:right; border-color:#eaeaea; border-style:solid; "/>
  2260. <output id="opt_usehealholi" ref="/root/main/userholiinfo/usehealholi" format="(-)9999" style="left:882px; top:580px; width:26px; height:19px; text-align:right; border-color:#eaeaea; border-style:solid; "/>
  2261. <output id="opt_sprehealholi" ref="/root/main/userholiinfo/sprehealholi" format="(-)9999" style="left:910px; top:580px; width:26px; height:19px; text-align:right; border-color:#eaeaea; border-style:solid; "/>
  2262. <output id="opt_monthofcnt" ref="/root/main/userholiinfo/curmonthofcnt" style="left:980px; top:580px; width:26px; height:19px; text-align:right; border-color:#eaeaea; border-style:solid; "/>
  2263. <output id="opt_monthuseofcnt" ref="/root/main/userholiinfo/curmonthuseofcnt" style="left:1008px; top:580px; width:26px; height:19px; text-align:right; border-color:#eaeaea; border-style:solid; "/>
  2264. <output id="opt_monthunuseofcnt" ref="/root/main/userholiinfo/curmonthunuseofcnt" style="left:1036px; top:580px; width:26px; height:19px; text-align:right; border-color:#eaeaea; border-style:solid; "/>
  2265. <button id="btn_delrow" class="btn2_letter3" style="left:822px; top:69px; width:64px; height:19px; ">
  2266. <caption>행삭제</caption>
  2267. <script type="javascript" ev:event="DOMActivate">
  2268. <![CDATA[
  2269. misfGridIUD(grd_dutschelist, "D");
  2270. ]]>
  2271. </script>
  2272. </button>
  2273. <output id="output4" ref="/root/main/userholiinfo/monthuseofcnt" style="left:1133px; top:580px; width:26px; height:19px; text-align:right; border-color:#eaeaea; border-style:solid; "/>
  2274. <output id="output5" ref="/root/main/userholiinfo/monthunuseofcnt" style="left:1161px; top:580px; width:26px; height:19px; text-align:right; border-color:#eaeaea; border-style:solid; "/>
  2275. <output id="output6" ref="/root/main/userholiinfo/monthofcnt" style="left:1105px; top:580px; width:26px; height:19px; text-align:right; border-color:#eaeaea; border-style:solid; "/>
  2276. <caption id="caption30" style="left:1161px; top:558px; width:26px; height:20px; text-align:center; vertical-align:middle; background-color:#dddddd; ">잔여</caption>
  2277. <caption id="caption31" class="cell_1" style="left:1071px; top:558px; width:31px; height:41px; text-align:center; vertical-align:middle; ">
  2278. <![CDATA[누적
  2279. OFF]]>
  2280. </caption>
  2281. <caption id="caption32" style="left:1105px; top:558px; width:26px; height:20px; text-align:center; vertical-align:middle; background-color:#dddddd; ">발생</caption>
  2282. <caption id="caption33" style="left:1133px; top:558px; width:26px; height:20px; text-align:center; vertical-align:middle; background-color:#dddddd; ">사용</caption>
  2283. <output id="opt_day" ref="/root/main/stndduttableitem/day" format="(-)9999" style="left:42px; top:650px; width:26px; height:19px; font-size:10pt; font-weight:bold; text-align:center; border-color:#eaeaea; border-style:solid; "/>
  2284. <output id="opt_evening" ref="/root/main/stndduttableitem/evening" format="(-)9999" style="left:42px; top:672px; width:26px; height:19px; font-size:10pt; font-weight:bold; text-align:center; border-color:#eaeaea; border-style:solid; "/>
  2285. <output id="opt_night" ref="/root/main/stndduttableitem/night" format="(-)9999" style="left:42px; top:694px; width:26px; height:19px; font-size:10pt; font-weight:bold; text-align:center; border-color:#eaeaea; border-style:solid; "/>
  2286. <caption id="caption13" class="cell_1" style="left:8px; top:649px; width:31px; height:64px; text-align:center; vertical-align:middle; ">
  2287. <![CDATA[적
  2288. 원]]>
  2289. </caption>
  2290. <datagrid id="grd_dutschelist" nodeset="/root/main/resltdata/dutschelist" class="text_center" allowuserresize="false" backcoloralternate="transparent" caption="근무년월^근무부서^신청예정&#xA;실시구분^기관코드^사원번호^성명^근무지부서코드^근무지^직종^직급^1^2^3^4^5^6^7^8^9^10^11^12^13^14^15^16^17^18^19^20^21^22^23^24^25^26^27^28^29^30^31^이월Off수^Night수^Total&#xA;휴가수^사용&#xA;휴가수^OFF^Holiday수^Start Duty^Lase Duty^Day&#xA;합계^Evening&#xA;합계^Night&#xA;합계^Off&#xA;합계^시간제&#xA;근무합계^시간제&#xA;주휴합계^여분3&#xA;OT근무시간^여분4&#xA;총근무인정시간^여분5&#xA;총근무할시간^연차합계^교육합계^보수합계^소속부서코드^직원구분^부서장&#xA;근무확정여부^인사팀&#xA;근무확정여부^비고^복무신청여부^부서지원여부^년차^입사일자^최종수정일시|근무년월^근무부서^신청예정&#xA;실시구분^기관코드^사원번호^성명^근무지부서코드^근무지^직종^직급^월^화^수^목^금^토^일^월^화^수^목^금^토^일^월^화^수^목^금^토^일^월^화^수^목^금^토^일^월^화^수^이월Off수^Night수^Total&#xA;휴가수^사용&#xA;휴가수^합계^Holiday수^Start Duty^Lase Duty^Day&#xA;합계^Evening&#xA;합계^Night&#xA;합계^Off&#xA;합계^시간제&#xA;근무합계^시간제&#xA;주휴합계^여분3&#xA;OT근무시간^여분4&#xA;총근무인정시간^여분5&#xA;총근무할시간^연차합계^교육합계^보수합계^소속부서코드^직원구분^부서장&#xA;근무확정여부^인사팀&#xA;근무확정여부^비고^복무신청여부^부서지원여부^년차^입사일자^최종수정일시" colsep="^" colwidth="0, 0, 0, 0, 59, 60, 0, 100, 70, 57, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 0, 0, 53, 53, 53, 0, 0, 0, 53, 53, 53, 53, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, 0, 0, 0, 0" explorerbar="sort" frozencols="6" mergecellsfixedcols="bycolrec" mergecellsfixedrows="bycolrec" rowheader="update" rowheight="23" rowsep="|" style="left:1px; top:94px; width:1024px; height:455px; ">
  2291. <col ref="dutym" visibility="hidden"/>
  2292. <col ref="dutplcedeptcd" visibility="hidden"/>
  2293. <col ref="appscheexecflag" visibility="hidden"/>
  2294. <col ref="instcd" visibility="hidden"/>
  2295. <col ref="emplno"/>
  2296. <col ref="emplnm"/>
  2297. <col ref="dutplcedeptcdtemp" visibility="hidden"/>
  2298. <col ref="dutplcedeptnmtemp" style="text-align:left; "/>
  2299. <col ref="jobkindnm"/>
  2300. <col ref="jobgradcd"/>
  2301. <col ref="day01" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2302. <col ref="day02" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2303. <col ref="day03" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2304. <col ref="day04" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2305. <col ref="day05" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2306. <col ref="day06" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2307. <col ref="day07" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2308. <col ref="day08" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2309. <col ref="day09" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2310. <col ref="day10" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2311. <col ref="day11" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2312. <col ref="day12" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2313. <col ref="day13" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2314. <col ref="day14" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2315. <col ref="day15" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2316. <col ref="day16" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2317. <col ref="day17" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2318. <col ref="day18" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2319. <col ref="day19" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2320. <col ref="day20" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2321. <col ref="day21" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2322. <col ref="day22" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2323. <col ref="day23" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2324. <col ref="day24" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2325. <col ref="day25" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2326. <col ref="day26" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2327. <col ref="day27" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2328. <col ref="day28" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2329. <col ref="day29" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2330. <col ref="day30" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2331. <col ref="day31" maxlength="4" _chartype="upper" style="font-family:돋움체; font-size:9pt; "/>
  2332. <col ref="brngfwrdoffqty" visibility="hidden"/>
  2333. <col ref="nigtcnt" visibility="hidden"/>
  2334. <col ref="holitotcnt" style="text-align:right; padding-right:2; "/>
  2335. <col ref="useholidayno" style="text-align:right; padding-right:2; "/>
  2336. <col ref="mensholidayno" visibility="hidden" format="9999" style="text-align:right; padding-right:2; "/>
  2337. <col ref="holicnt" visibility="hidden" format="9999"/>
  2338. <col ref="startdut" visibility="hidden" format="9999"/>
  2339. <col ref="lastdut" visibility="hidden" format="9999"/>
  2340. <col ref="daysum" format="9999" style="text-align:right; padding-right:2; "/>
  2341. <col ref="eveningsum" format="9999" style="text-align:right; padding-right:2; "/>
  2342. <col ref="nigtsum" format="9999" style="text-align:right; padding-right:2; "/>
  2343. <col ref="offsum" style="left:993px; top:0px; width:0px; height:0px; text-align:right; padding-right:2; "/>
  2344. <col ref="surp1_totduttm" format="9999" style="text-align:right; padding-right:2; "/>
  2345. <col ref="prntseq" visibility="hidden" format="9999" style="text-align:right; padding-right:2; "/>
  2346. <col ref="surp3_ottm" visibility="hidden"/>
  2347. <col ref="surp4_sumdutrcogtm" visibility="hidden"/>
  2348. <col ref="surp5_sumduttm" visibility="hidden"/>
  2349. <col ref="sumyearno" visibility="hidden"/>
  2350. <col ref="educsum" visibility="hidden"/>
  2351. <col ref="remunrsum" visibility="hidden"/>
  2352. <col ref="posdeptcd" visibility="hidden"/>
  2353. <col ref="empflag" visibility="hidden"/>
  2354. <col ref="deprtmangrdutcnfmyn" visibility="hidden"/>
  2355. <col ref="psnworkdutcnfnyn" visibility="hidden"/>
  2356. <col ref="cmt" type="input"/>
  2357. <col ref="emplappyn" visibility="hidden"/>
  2358. <col ref="suppflag" visibility="hidden"/>
  2359. <col ref="anual" visibility="hidden"/>
  2360. <col ref="entcodd" visibility="hidden"/>
  2361. <script type="javascript" ev:event="onrowchanged">
  2362. <![CDATA[
  2363. fSetEmplDutInfo();
  2364. ]]>
  2365. </script>
  2366. <script type="javascript" ev:event="onmousedown">
  2367. <![CDATA[
  2368. if(event.button == 3)
  2369. {
  2370. fOpenContextMenuList();
  2371. }
  2372. ]]>
  2373. </script>
  2374. <script type="javascript" ev:event="onmouseup">
  2375. <![CDATA[
  2376. if(event.button == 1)
  2377. {
  2378. fSetResnValue();
  2379. // if(SELECTED_ROW != grd_dutschelist.row)
  2380. // {
  2381. // fSetEmplDutInfo();
  2382. // }
  2383. SELECTED_ROW = grd_dutschelist.row;
  2384. }
  2385. ]]>
  2386. </script>
  2387. <script type="javascript" ev:event="DOMFocusOut">
  2388. <![CDATA[
  2389. window.setPopupMenu(false);
  2390. ]]>
  2391. </script>
  2392. <script type="javascript" ev:event="onaftersort">
  2393. <![CDATA[
  2394. grd_dutschelist.gridToInstance();
  2395. ]]>
  2396. </script>
  2397. </datagrid>
  2398. <datagrid id="grd_resnlist" nodeset="/root/main/resnlist" visibility="hidden" backcoloralternate="#ffffff" caption="기관코드^근무년월^근무부서^예정실시확정구분^사번^근무코드^근무일^지원부서^근무사유^비고" colsep="^" colwidth="30, 70, 70, 58, 60, 55, 80, 80, 100, 80" mergecellsfixedrows="bycolrec" rowheader="update" rowsep="|" style="left:55px; top:340px; width:715px; height:140px; ">
  2399. <col ref="instcd"/>
  2400. <col ref="dutym"/>
  2401. <col ref="dutplcedeptcd"/>
  2402. <col ref="appscheexecflag"/>
  2403. <col ref="emplno"/>
  2404. <col ref="dutcd"/>
  2405. <col ref="dutdd"/>
  2406. <col ref="suppdeptcd"/>
  2407. <col ref="dutresn"/>
  2408. <col ref="cmt"/>
  2409. </datagrid>
  2410. <datagrid id="grd_yearnoinfolist" nodeset="/root/main/resltdata/offcntlist" visibility="hidden" caption="사번^발생연차^1년미만^사용연차^잔여연차^발생보휴^사용보휴^잔여보휴^월총&#xA;OF^월사용OF^월잔여OF" colsep="^" colwidth="70, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35" mergecellsfixedrows="bycolrec" rowsep="|" style="left:760px; top:365px; width:405px; height:168px; ">
  2411. <col ref="emplno"/>
  2412. <col ref="genryearno" format="9999" style="text-align:right; "/>
  2413. <col ref="olmtspreyearno" format="9999" style="text-align:right; "/>
  2414. <col ref="useyearno" format="9999" style="text-align:right; "/>
  2415. <col ref="spreyearno" format="9999" style="text-align:right; "/>
  2416. <col ref="genrhealholi" format="9999" style="text-align:right; ">
  2417. <![CDATA[//]]>
  2418. </col>
  2419. <col ref="usehealholi" format="9999" style="text-align:right; "/>
  2420. <col ref="sprehealholi" format="9999" style="text-align:right; "/>
  2421. <col ref="monthofcnt" format="9999" style="text-align:right; "/>
  2422. <col ref="monthuseofcnt" format="9999" style="text-align:right; "/>
  2423. <col ref="monthunuseofcnt" format="9999" style="text-align:right; ">
  2424. <![CDATA[//]]>
  2425. </col>
  2426. </datagrid>
  2427. <datagrid id="grd_stndduttablelist" nodeset="/root/main/resltdata/stndduttablelist" visibility="hidden" caption="적용일자^부서코드^월D^월E^월N^화D^화E^화N^수D^수E^수N^목D^목E^목N^금D^금E^금N^토D^토E^토N^일D^일E^일N^N연속제한일수^N월제한일수" colsep="^" colwidth="60, 75, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 50, 50" mergecellsfixedrows="bycolrec" rowsep="|" style="left:0px; top:460px; width:765px; height:72px; ">
  2428. <col ref="appym"/>
  2429. <col ref="deptcd"/>
  2430. <col ref="mondaypsncnt"/>
  2431. <col ref="moneveningpsncnt"/>
  2432. <col ref="monnightpsncnt"/>
  2433. <col ref="tuesdaypsncnt"/>
  2434. <col ref="tueseveningpsncnt"/>
  2435. <col ref="tuesnightpsncnt"/>
  2436. <col ref="weddaypsncnt"/>
  2437. <col ref="wedeveningpsncnt"/>
  2438. <col ref="wednightpsncnt"/>
  2439. <col ref="thurdaypsncnt"/>
  2440. <col ref="thureveningpsncnt"/>
  2441. <col ref="thurnightpsncnt"/>
  2442. <col ref="fridaypsncnt"/>
  2443. <col ref="frieveningpsncnt"/>
  2444. <col ref="frinightpsncnt"/>
  2445. <col ref="satdaypsncnt"/>
  2446. <col ref="sateveningpsncnt"/>
  2447. <col ref="satnightpsncnt"/>
  2448. <col ref="sundaypsncnt"/>
  2449. <col ref="suneveningpsncnt"/>
  2450. <col ref="sunnightpsncnt"/>
  2451. <col ref="nightdutcontlimdayno"/>
  2452. <col ref="nightdutmmlimdayno"/>
  2453. </datagrid>
  2454. <datagrid id="datagrid1" nodeset="/root/main/daylist" visibility="hidden" caption="caption1^caption2^caption3" colsep="^" mergecellsfixedrows="bycolrec" rowsep="|" style="left:645px; top:180px; width:350px; height:150px; ">
  2455. <col ref="basedd"/>
  2456. <col ref="holiflag"/>
  2457. <col ref="daynm"/>
  2458. </datagrid>
  2459. </group>
  2460. <group id="group5" scroll="auto" style="left:0px; top:12px; width:1195px; height:27px; ">
  2461. <line id="line75" class="line_6" style="x1:0; y1:25; x2:1195; y2:25; "/>
  2462. <button id="btn_save" class="btn4_letter2" style="left:1135px; top:3px; width:56px; height:22px; ">
  2463. <caption>저장</caption>
  2464. <script type="javascript" ev:event="DOMActivate">
  2465. <![CDATA[
  2466. submit("TRRPD02200");
  2467. if( model.getValue("/root/main/temp/flag/flag") == 'Y' ) {
  2468. messageBox("이미 확정마감 되었습니다.","I000");
  2469. return;
  2470. }
  2471. for(var i=2; i<grd_dutschelist.rows; i++)
  2472. {
  2473. if(grd_dutschelist.rowStatus(i) == 1 || grd_dutschelist.rowStatus(i) == 3)
  2474. {
  2475. grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("surp4_sumdutrcogtm")) = "0.0";
  2476. grd_dutschelist.valueMatrix(i, grd_dutschelist.colRef("surp5_sumduttm")) = "0.0";
  2477. }
  2478. }
  2479. fSave();
  2480. ]]>
  2481. </script>
  2482. </button>
  2483. <button id="btn_print" class="btn6_letter2" style="left:0px; top:3px; width:56px; height:22px; ">
  2484. <caption>출력</caption>
  2485. <script type="javascript" ev:event="DOMActivate">
  2486. <![CDATA[
  2487. fPrint();
  2488. ]]>
  2489. </script>
  2490. </button>
  2491. <button id="btn_clear" class="btn4_letter3" visibility="hidden" style="left:960px; top:3px; width:68px; height:22px; ">
  2492. <caption>초기화</caption>
  2493. <script type="javascript" ev:event="DOMActivate">
  2494. <![CDATA[
  2495. var updtdata = getGridUpdateData(grd_dutschelist);
  2496. if (updtdata != "")
  2497. {
  2498. var ret = messageBox("그리드에 작업 중인 내용이 있습니다. 초기화 작업을","Q003");
  2499. if (ret != 6) // not OK
  2500. {
  2501. return;
  2502. }
  2503. }
  2504. fInitialize();
  2505. ]]>
  2506. </script>
  2507. </button>
  2508. <button id="btn_cnfmclose" class="btn4_letter4" visibility="hidden" style="left:1043px; top:3px; width:80px; height:22px; ">
  2509. <caption>확정마감</caption>
  2510. <script type="javascript" ev:event="DOMActivate">
  2511. <![CDATA[
  2512. fCnfmClose();
  2513. ]]>
  2514. </script>
  2515. </button>
  2516. <button id="btn_execclose" class="btn4_letter4" style="left:1030px; top:5px; width:80px; height:22px; ">
  2517. <caption>실시마감</caption>
  2518. <script type="javascript" ev:event="DOMActivate">
  2519. <![CDATA[
  2520. fExecClose();
  2521. ]]>
  2522. </script>
  2523. </button>
  2524. <input id="ipt_cnt" ref="/root/main/close/closeyn/cnt" visibility="hidden" inputtype="input" style="left:875px; top:5px; width:24px; height:19px; "/>
  2525. <input id="ipt_closeyn" ref="/root/main/close/closeyn/closeyn" visibility="hidden" inputtype="input" style="left:900px; top:5px; width:24px; height:19px; "/>
  2526. <caption id="cap_caution1" visibility="hidden" style="left:460px; top:4px; width:300px; height:20px; font-size:11pt; font-weight:bold; color:#ff0000; ">확정 번표 진행중 (수정불가)</caption>
  2527. <caption id="cap_caution2" visibility="hidden" style="left:460px; top:4px; width:300px; height:20px; font-size:11pt; font-weight:bold; color:#ff0000; ">확정된 번표(수정불가)</caption>
  2528. <caption id="cap_caution3" visibility="hidden" style="left:460px; top:4px; width:300px; height:20px; font-size:11pt; font-weight:bold; color:#ff0000; ">실시번표 작성이 완료되지 않음.</caption>
  2529. </group>
  2530. </xhtml:body>
  2531. </xhtml:html>