SMAAA01600_학생자원봉사자출결등록관리.xrw 84 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="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. <search>
  11. <otynflag/>
  12. <fromdd/>
  13. <todd/>
  14. <actdeptcd/>
  15. <voluntractteamcd/>
  16. <voluntrnm/>
  17. <servyy/>
  18. <vacatflag/>
  19. </search>
  20. <studvoluntrlist>
  21. <studvoluntrinfo>
  22. <servyy/>
  23. <vacatflag/>
  24. <actfromdd/>
  25. <acttodd/>
  26. <voluntrnm/>
  27. <brthdd/>
  28. <sex/>
  29. <email/>
  30. <actdeptcd/>
  31. <schnm/>
  32. <servtm/>
  33. <voluntrid/>
  34. <studapptseqno/>
  35. <actrgstseqno/>
  36. </studvoluntrinfo>
  37. </studvoluntrlist>
  38. <studvoluntrabsnlist>
  39. <studvoluntrabsninfo>
  40. <attdabsnflagyn/>
  41. <attdabsnflag/>
  42. <servdd/>
  43. <voluntractteamcd/>
  44. <voluntrnm/>
  45. <actdeptcd/>
  46. <servtm/>
  47. <otyn/>
  48. <attdrem/>
  49. <voluntrid/>
  50. <actrgstseqno/>
  51. <actfromdd/>
  52. <acttodd/>
  53. <studapptseqno/>
  54. <status/>
  55. <servseqno/>
  56. </studvoluntrabsninfo>
  57. </studvoluntrabsnlist>
  58. <studvoluntrattdabsnlist>
  59. <studvoluntrattdabsninfo>
  60. <chk/>
  61. <attdabsnflagyn/>
  62. <attdabsnflag/>
  63. <servdd/>
  64. <voluntractteamcd/>
  65. <voluntrnm/>
  66. <actdeptcd/>
  67. <servtm/>
  68. <otyn/>
  69. <attdrem/>
  70. <voluntrid/>
  71. <actrgstseqno/>
  72. <actfromdd/>
  73. <acttodd/>
  74. <studapptseqno/>
  75. <status/>
  76. <servseqno/>
  77. </studvoluntrattdabsninfo>
  78. </studvoluntrattdabsnlist>
  79. <attdabsn>
  80. <attdabsndata/>
  81. </attdabsn>
  82. <otynrgstdd/>
  83. <ottm/>
  84. <returnsts>
  85. <statusinfo>
  86. <restatus/>
  87. <voluntrid/>
  88. <actstatflag/>
  89. <restatusdd/>
  90. <servdd/>
  91. </statusinfo>
  92. </returnsts>
  93. </main>
  94. <send>
  95. <savedata/>
  96. <reqdata/>
  97. </send>
  98. <hidden>
  99. <init>
  100. <comcd/>
  101. <comcd3/>
  102. <comcd1/>
  103. </init>
  104. </hidden>
  105. </root>
  106. </instance>
  107. <script type="javascript" ev:event="xforms-ready">
  108. <![CDATA[
  109. fInit();
  110. ]]>
  111. </script>
  112. <submission id="TRZBC00101" mediatype="application/x-www-form-urlencoded" method="post"/>
  113. <submission id="TRZBC00102" mediatype="application/x-www-form-urlencoded" method="post"/>
  114. <submission id="TRZBC00105" mediatype="application/x-www-form-urlencoded" method="post"/>
  115. <submission id="TRZBP00102" mediatype="application/x-www-form-urlencoded" method="post"/>
  116. <submission id="TRZBC00122" mediatype="application/x-www-form-urlencoded" method="post" replace="instance"/>
  117. <submission id="TRAAA01601" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/studvoluntrlist"/>
  118. <submission id="TRAAA01602" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/reqdata" resultref="/root/main/studvoluntrabsnlist"/>
  119. <submission id="TXAAA01601" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send/savedata" resultref="/root/main/returnsts"/>
  120. </model>
  121. </xhtml:head>
  122. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  123. <script type="javascript" src="../../../com/basiccodeweb/js/ZBC001.js"/>
  124. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  125. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  126. <script type="javascript" src="../../../emr/carecomweb/js/CareCom.js"/>
  127. <script type="javascript">
  128. <![CDATA[
  129. // 초기값
  130. function fInit()
  131. {
  132. model.setFocus("ipt_fromdd");
  133. if(chk_ynflag.value == "")
  134. {
  135. cap_svcyear.visible = false;
  136. ipt_servyy.visible = false;
  137. cap_vacflag.visible = false;
  138. com_vacflag.visible = false;
  139. }
  140. var CurrentDate = getCurrentDate();
  141. var fdate=getDateCalc(CurrentDate, 6, '-');
  142. //기준일자를 기준으로 입력일자만큼의 날짜를 찾아오는 함수 , fromdd :기준일, i-1 :입력일자, +: 이후 날짜
  143. model.makeValue("/root/main/search/fromdd",fdate);
  144. model.makeValue("/root/main/search/todd",CurrentDate);
  145. grd_stdsvcattendlist.fixedcellcheckbox(0,1) = "true";
  146. zbcfGetCodeList(new Array("A0506","A0360","A0503","A0551","A0366","A0503","A0360"),
  147. new Array("/root/hidden/init/comcd","/root/hidden/init/comcd","/root/hidden/init/comcd","/root/hidden/init/comcd","/root/hidden/init/comcd","/root/hidden/init/comcd1","/root/hidden/init/comcd1")); // 관계코드 설정
  148. zbcfGetKindCodeList(new Array("A0023"), new Array("A0366"),new Array("/root/hidden/init/comcd3"),true,'','');
  149. zbcfGetKindCodeList(new Array("A0024"), new Array("A0506"),new Array("/root/hidden/init/comcd1"),true,'','');
  150. model.removeNodeset("/root/main/studvoluntrlist/studvoluntrinfo");
  151. model.removeNodeset("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo");
  152. addComboItem("com_svcflag", "","","above"); //활동부서에 전체 셋팅
  153. addComboItem("cmb_actdeptcd", "","","above"); //봉사구분에 전체 셋팅
  154. //addComboItem("com_vacflag", "","","above");
  155. //model.makeValue("/root/main/search/actdeptcd","01");
  156. //model.makeValue("/root/main/search/voluntractteamcd","1");
  157. model.makeValue("/root/main/search/vacatflag","S");
  158. roundrect1.visible=false; //ot등록일자비활성화
  159. cpt_voluntrflag.visible=false; //ot등록일자비활성화
  160. ipt_joinorgdd.visible=false; //ot등록일자비활성화
  161. //roundrect3.visible=false; //ot시간비활성화
  162. caption2.visible=false; //ot시간비활성화
  163. ipt_ottm.visible=false; //ot시간비활성화
  164. model.refresh();
  165. }
  166. // 학생자원봉사자 명단 조회시 필수 입력 체크 함수
  167. function fStudVoluntrAttdAbsnChk()
  168. {
  169. model.removeNodeset("/root/main/search/");
  170. model.makeNode("/root/main/search/");
  171. model.removeNodeset("/root/send/reqdata");
  172. model.makeNode("/root/send/reqdata");
  173. // 값이 없을 때 전체를 조회할 값 %셋팅, 값이 존재 할 때 해당 값 셋팅
  174. //ot등록여부가 체크 되어있을 때 봉사년도, 방학구분만 파라미터로 셋팅함
  175. if(chk_ynflag.value=='Y')
  176. {
  177. if(isNull(ipt_servyy.currentText))
  178. {
  179. messageBox("봉사년도를 입력하십시요.","I");
  180. model.setFocus("ipt_servyy");
  181. return false;
  182. }
  183. else
  184. {
  185. model.makeValue("/root/send/reqdata/servyy",ipt_servyy.currentText);
  186. }
  187. if(isNull(model.getValue("/root/main/search/vacatflag")))
  188. {
  189. messageBox("방학구분을 선택하십시요","I");
  190. return false;
  191. }
  192. else
  193. {
  194. model.makeValue("/root/send/reqdata/vacatflag",model.getValue("/root/main/search/vacatflag"));
  195. }
  196. // 활동부서, 봉사구분, 성명은 %로 셋팅하여 전체 조회 함
  197. model.makeValue("/root/send/reqdata/actdeptcd","%");
  198. model.makeValue("/root/send/reqdata/voluntractteamcd","%");
  199. model.makeValue("/root/send/reqdata/voluntrnm","%");
  200. model.makeValue("/root/send/reqdata/otynflag","Y");
  201. }
  202. else
  203. {// 출결등록 처리시
  204. var fromdd=model.getValue("/root/main/search/fromdd"); //조회 시작일자 저장
  205. var todd=model.getValue("/root/main/search/todd"); //조회 종료일자 저장
  206. var dateintval=getDateInterval(fromdd,todd);
  207. // 조회 시작일과 조회 종료일 사이의 갯수를 세는 함수
  208. //var intval=dateintval+1;
  209. if(dateintval>7)
  210. {
  211. messageBox("출결등록은 최대 7일치까지 할 수 있습니다.","I");
  212. model.setFocus("ipt_fromdd");
  213. model.refresh();
  214. return false;
  215. }
  216. if(fromdd>todd)
  217. {
  218. messageBox("조회 종료일자보다 작은 조회 시작일자를 입력하십시요.","I");
  219. model.setFocus("ipt_fromdd");
  220. model.refresh();
  221. return false;
  222. }
  223. if(isNull(model.getValue("/root/main/search/actdeptcd")))
  224. { //활동부서에 값이 존재하지 않을 때 % 셋팅
  225. model.makeValue("/root/send/reqdata/actdeptcd","%");
  226. //messageBox("활동부서는.","I003");
  227. //model.setFocus("cmb_actdeptcd");
  228. //model.refresh();
  229. //return false;
  230. }
  231. else
  232. {
  233. model.makeValue("/root/send/reqdata/actdeptcd",model.getValue("/root/main/search/actdeptcd"));
  234. }
  235. if(isNull(model.getValue("/root/main/search/voluntractteamcd")))
  236. { //봉사구분이 전체 일때 %셋팅
  237. model.makeValue("/root/send/reqdata/voluntractteamcd","%");
  238. //messageBox("봉사구분은","I003");
  239. //model.setFocus("com_svcflag");
  240. //model.refresh();
  241. //return false;
  242. }
  243. else
  244. {
  245. model.makeValue("/root/send/reqdata/voluntractteamcd",model.getValue("/root/main/search/voluntractteamcd"));
  246. }
  247. if(isNull(ipt_voluntrnm.currentText))
  248. { // 성명이 입력되지 않을 때 %셋팅
  249. model.makeValue("/root/send/reqdata/voluntrnm","%");
  250. }
  251. else
  252. {
  253. model.makeValue("/root/send/reqdata/voluntrnm",ipt_voluntrnm.currentText);
  254. }
  255. // 봉사년도, 방학구분은 %로 셋팅
  256. model.makeValue("/root/send/reqdata/servyy","%");
  257. model.makeValue("/root/send/reqdata/vacatflag","%");
  258. }
  259. if(model.getValue("/root/main/search/fromdd")=="")
  260. {
  261. messageBox("활동일자는","I003");
  262. model.setFocus("ipt_fromdd");
  263. return false;
  264. }
  265. if(model.getValue("/root/main/search/todd")=="")
  266. {
  267. messageBox("활동일자는","I003");
  268. model.setFocus("ipt_todd");
  269. return false;
  270. }
  271. }
  272. // 학생자원봉사자 명단 조회
  273. function fStudVoluntrAttdAbsnReq()
  274. {
  275. if(fStudVoluntrAttdAbsnChk()==false)
  276. {
  277. return;
  278. }
  279. // 필수 입력 체크 함수
  280. model.makeValue("/root/send/reqdata/fromdd",model.getValue("/root/main/search/fromdd"));
  281. model.makeValue("/root/send/reqdata/todd",model.getValue("/root/main/search/todd"));
  282. model.makeValue("/root/send/reqdata/servdd",model.getValue("/root/main/otynrgstdd")); //ot등록날짜 존재시 ot등록날짜 저장
  283. model.removeNodeset("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo");
  284. // 학생자원봉사자 출결 등록창 초기화
  285. model.refresh();
  286. submit("TRAAA01601");
  287. model.resetInstanceNode("/root/main/otynrgstdd");
  288. // ot등록일자 초기화 및 비활성
  289. ipt_joinorgdd.disabled=false;
  290. model.resetInstanceNode("/root/main/ottm");
  291. ipt_ottm.disabled=false; //ot시간 초기화 및 비활성화
  292. // OT등록 여부 체크 되어 있을 때 출결등록창에 해당 모든 자원봉사자 셋팅한다.
  293. // OT등록은 전체 자원봉사자를 대상으로 한다.
  294. if(model.getValue("/root/main/search/otynflag")=="Y")
  295. {
  296. var idxRows=grd_studvoluntrlist.rows;
  297. var idxFixRow=grd_studvoluntrlist.fixedRows;
  298. for(i=1;i<=idxRows-idxFixRow;i++)
  299. {
  300. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/attdabsnflagyn",model.getValue("/root/main/studvoluntrlist/studvoluntrattdabsninfo"+"["+i+"]/attdabsnflagyn"));
  301. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/voluntrid",model.getValue("/root/main/studvoluntrlist/studvoluntrattdabsninfo"+"["+i+"]/voluntrid"));
  302. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/attdabsnflag",model.getValue("/root/main/studvoluntrlist/studvoluntrattdabsninfo"+"["+i+"]/attdabsnflag"));
  303. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/servdd",model.getValue("/root/main/studvoluntrlist/studvoluntrattdabsninfo"+"["+i+"]/servdd"));
  304. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/servkind",model.getValue("/root/main/studvoluntrlist/studvoluntrattdabsninfo"+"["+i+"]/servkind"));
  305. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/voluntractteamcd",model.getValue("/root/main/studvoluntrlist/studvoluntrattdabsninfo"+"["+i+"]/voluntractteamcd"));
  306. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/voluntrnm",model.getValue("/root/main/studvoluntrlist/studvoluntrattdabsninfo"+"["+i+"]/voluntrnm"));
  307. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/actdeptcd",model.getValue("/root/main/studvoluntrlist/studvoluntrattdabsninfo"+"["+i+"]/actdeptcd"));
  308. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/servtm",model.getValue("/root/main/studvoluntrlist/studvoluntrattdabsninfo"+"["+i+"]/servtm"));
  309. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/otyn",model.getValue("/root/main/studvoluntrlist/studvoluntrattdabsninfo"+"["+i+"]/otyn"));
  310. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/attdrem",model.getValue("/root/main/studvoluntrlist/studvoluntrattdabsninfo"+"["+i+"]/attdrem"));
  311. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/status",model.getValue("/root/main/studvoluntrlist/studvoluntrattdabsninfo"+"["+i+"]/status"));
  312. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/chk",model.getValue("/root/main/studvoluntrlist/studvoluntrattdabsninfo"+"["+i+"]/chk"));
  313. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/servseqno",model.getValue("/root/main/studvoluntrlist/studvoluntrattdabsninfo"+"["+i+"]/servseqno"));
  314. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/actrgstseqno",model.getValue("/root/main/studvoluntrlist/studvoluntrattdabsninfo"+"["+i+"]/actrgstseqno"));
  315. if(!isNull(model.getValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/servdd")))
  316. { // 출결등록한 데이터 있을 때 봉사일자를 OT등록 일자에 셋팅하고 비활성화함
  317. model.makeValue("/root/main/otynrgstdd",model.getValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/servdd"));
  318. ipt_joinorgdd.disabled=true;
  319. }
  320. if(!isNull(model.getValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/servtm")))
  321. { // 출결등록한 데이터가 있고, 출결구분이 결석이 아닌 봉사시간을 OT등록 시간에 셋팅하고 비활성화함
  322. if(model.getValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/attdabsnflag")=='01')
  323. {
  324. model.makeValue("/root/main/ottm",model.getValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/servtm"));
  325. }
  326. ipt_ottm.disabled=true;
  327. }
  328. //grd_stdsvcattendlist.colDisabled(grd_stdsvcattendlist.colRef("otyn"))=true;
  329. /*else
  330. {
  331. model.resetInstanceNode("/root/main/otynrgstdd");
  332. ipt_joinorgdd.disabled=false;
  333. }*/
  334. }
  335. }
  336. else
  337. {
  338. ipt_joinorgdd.disabled=true;
  339. // ot구분 체크되지 않았을 경우 ot등록일자는 비활성화 시킴
  340. }
  341. grd_stdsvcattendlist.fixedcellischeck(0,1)=false;
  342. // 전체 선택 되었을 때 체크박스 해지
  343. model.refresh();
  344. }
  345. // 학생자원봉사자 명단 클릭시 출결 등록 그리드에 출결내역 조회되는 함수
  346. function fStudVoluntrAttdInfoReq()
  347. {
  348. model.removeNodeset("/root/main/studvoluntrabsnlist");
  349. model.removeNodeset("/root/main/studvoluntrattdabsnlist");
  350. grd_stdsvcattendlist.fixedcellischeck(0,1)=false;
  351. // 전체 선택 되었을 때 체크박스 해지
  352. var idxRow=grd_studvoluntrlist.row;
  353. var voluntrid=model.getValue("/root/main/studvoluntrlist/studvoluntrinfo"+"["+idxRow+"]/voluntrid");
  354. var actrgstseqno=model.getValue("/root/main/studvoluntrlist/studvoluntrinfo"+"["+idxRow+"]/actrgstseqno");
  355. var fromdd=model.getValue("/root/main/search/fromdd");
  356. var todd=model.getValue("/root/main/search/todd");
  357. model.removeNodeset("/root/send/reqdata");
  358. model.makeNode("/root/send/reqdata");
  359. model.makeValue("/root/send/reqdata/voluntrid",voluntrid);
  360. model.makeValue("/root/send/reqdata/actrgstseqno",actrgstseqno);
  361. model.makeValue("/root/send/reqdata/fromdd",fromdd);
  362. model.makeValue("/root/send/reqdata/todd",todd);
  363. submit("TRAAA01602");
  364. // 출결현황 조회하는 서브미션
  365. var fromdd=model.getValue("/root/main/search/fromdd"); //조회 시작일자 저장
  366. var todd=model.getValue("/root/main/search/todd"); //조회 종료일자 저장
  367. var voluntrnm=model.getValue("/root/main/studvoluntrlist/studvoluntrinfo"+"["+idxRow+"]/voluntrnm");
  368. // 클릭한 행의 명단에 있는 봉사자 이름 저장
  369. var actfromdd=model.getValue("/root/main/studvoluntrlist/studvoluntrinfo"+"["+idxRow+"]/actfromdd");
  370. var acttodd=model.getValue("/root/main/studvoluntrlist/studvoluntrinfo"+"["+idxRow+"]/acttodd");
  371. if(actfromdd>=fromdd)
  372. {
  373. if(acttodd>=todd)
  374. {
  375. var dateintval=getDateInterval(actfromdd,todd);
  376. // 조회 시작일과 조회 종료일 사이의 갯수를 세는 함수
  377. }
  378. else
  379. {
  380. var dateintval=getDateInterval(actfromdd,acttodd);
  381. }
  382. }
  383. else
  384. {
  385. if(acttodd>=todd)
  386. {
  387. var dateintval=getDateInterval(fromdd,todd);
  388. }
  389. else
  390. {
  391. var dateintval=getDateInterval(fromdd,acttodd);
  392. }
  393. }
  394. var nodeCnt=getNodesetCount("/root/main/studvoluntrabsnlist/studvoluntrabsninfo");
  395. // 조회시 출결이 된 데이터 갯수
  396. //var dateintval=getDateInterval(fromdd,todd);
  397. // 조회 시작일과 조회 종료일 사이의 갯수를 세는 함수
  398. var intval=dateintval+1;
  399. grd_stdsvcattendlist.colDisabled(grd_stdsvcattendlist.colRef("otyn"))=true;
  400. for(i=1;i<=intval;i++)
  401. { // 조회시작일과 종료일 사이 기간 만큼 for문을 돌린다.
  402. var idxRow=grd_studvoluntrlist.row;
  403. var actfromdd1=model.getValue("/root/main/studvoluntrlist/studvoluntrinfo"+"["+idxRow+"]/actfromdd");
  404. var acttodd1=model.getValue("/root/main/studvoluntrlist/studvoluntrinfo"+"["+idxRow+"]/acttodd");
  405. if(actfromdd1>=fromdd)
  406. {
  407. var fdate=getDateCalc(actfromdd1, i-1, '+');
  408. //기준일자를 기준으로 입력일자만큼의 날짜를 찾아오는 함수 , fromdd :기준일, i-1 :입력일자, +: 이후 날짜
  409. //alert(i+'번째데이터'+fdate+'actfromdd가클때');
  410. }
  411. else
  412. {
  413. var fdate=getDateCalc(fromdd, i-1, '+');
  414. //기준일자를 기준으로 입력일자만큼의 날짜를 찾아오는 함수 , fromdd :기준일, i-1 :입력일자, +: 이후 날짜
  415. // alert(i+'번째데이터'+fdate+'fromdd가클때');
  416. }
  417. var flag='N';
  418. // 출결등록한 건이 없다는 표시인 플래그 N 저장
  419. for(j=1;j<=nodeCnt;j++)
  420. { // 출결등록된 그리드 갯수만큼 for문 돌려서 봉사일자를 조회일자들과 비교한다.
  421. // 출결등록된 건이 있을 때만 for문을 탐
  422. var voluntrid=model.getValue("/root/main/studvoluntrabsnlist/studvoluntrabsninfo"+"["+j+"]/voluntrid");
  423. var voluntrnm=model.getValue("/root/main/studvoluntrabsnlist/studvoluntrabsninfo"+"["+j+"]/voluntrnm");
  424. var actdeptcd=model.getValue("/root/main/studvoluntrabsnlist/studvoluntrabsninfo"+"["+j+"]/actdeptcd");
  425. var voluntractteamcd=model.getValue("/root/main/studvoluntrabsnlist/studvoluntrabsninfo"+"["+j+"]/voluntractteamcd");
  426. var actrgstseqno=model.getValue("/root/main/studvoluntrabsnlist/studvoluntrabsninfo"+"["+j+"]/actrgstseqno");
  427. var actfromdd=model.getValue("/root/main/studvoluntrabsnlist/studvoluntrabsninfo"+"["+j+"]/actfromdd");
  428. var acttodd=model.getValue("/root/main/studvoluntrabsnlist/studvoluntrabsninfo"+"["+j+"]/acttodd");
  429. var studapptseqno=model.getValue("/root/main/studvoluntrabsnlist/studvoluntrabsninfo"+"["+j+"]/studapptseqno");
  430. var attdabsnflag=model.getValue("/root/main/studvoluntrabsnlist/studvoluntrabsninfo"+"["+j+"]/attdabsnflag");
  431. var servdd=model.getValue("/root/main/studvoluntrabsnlist/studvoluntrabsninfo"+"["+j+"]/servdd");
  432. var servtm=model.getValue("/root/main/studvoluntrabsnlist/studvoluntrabsninfo"+"["+j+"]/servtm");
  433. var otyn=model.getValue("/root/main/studvoluntrabsnlist/studvoluntrabsninfo"+"["+j+"]/otyn");
  434. var attdrem=model.getValue("/root/main/studvoluntrabsnlist/studvoluntrabsninfo"+"["+j+"]/attdrem");
  435. var status=model.getValue("/root/main/studvoluntrabsnlist/studvoluntrabsninfo"+"["+j+"]/status");
  436. var servseqno=model.getValue("/root/main/studvoluntrabsnlist/studvoluntrabsninfo"+"["+j+"]/servseqno");
  437. var servkind=model.getValue("/root/main/studvoluntrabsnlist/studvoluntrabsninfo"+"["+j+"]/servkind");
  438. if(servdd==fdate)
  439. { //조회기간 중 출결등록 된 데이터가 있을 때
  440. var flag='Y';
  441. //alert(j+": j의 값2");
  442. //alert(i+": i의 값");
  443. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/voluntrid",voluntrid);
  444. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/voluntrnm",voluntrnm);
  445. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/actdeptcd",actdeptcd);
  446. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/voluntractteamcd",voluntractteamcd);
  447. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/actrgstseqno",actrgstseqno);
  448. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/actfromdd",actfromdd);
  449. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/acttodd",acttodd);
  450. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/studapptseqno",studapptseqno);
  451. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/attdabsnflag",attdabsnflag);
  452. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/servdd",servdd);
  453. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/servtm",servtm);
  454. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/otyn",otyn);
  455. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/attdrem",attdrem);
  456. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/attdabsnflagyn","완료");
  457. model.makeNode("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/chk");
  458. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/status",status);
  459. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/servseqno",servseqno);
  460. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/servkind",servkind);
  461. break;
  462. }
  463. }
  464. if(flag=='N')
  465. { // 출결 대상인 데이터
  466. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/servdd",fdate);
  467. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/voluntrnm",voluntrnm);
  468. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/voluntrid",voluntrid);
  469. model.makeNode("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/actdeptcd");
  470. model.makeNode("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/voluntractteamcd");
  471. model.makeNode("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/actrgstseqno");
  472. model.makeNode("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/actfromdd");
  473. model.makeNode("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/acttodd");
  474. model.makeNode("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/studapptseqno");
  475. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/attdabsnflag","01");
  476. //출결유무에 출결 표시
  477. model.makeNode("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/servtm");
  478. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/otyn","N");
  479. model.makeNode("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/attdrem");
  480. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/attdabsnflagyn","대상");
  481. model.makeNode("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/chk");
  482. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/status","i");
  483. model.makeNode("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/servseqno");
  484. model.makeNode("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/servkind");
  485. // 상태값 i 저장 플래그
  486. }
  487. }
  488. model.refresh();
  489. }
  490. // 출결 처리 함수
  491. function fStudVoluntrAttdAbsnSave()
  492. {
  493. var idxRow=grd_stdsvcattendlist.rows;
  494. var idxfixRows=grd_stdsvcattendlist.fixedRows;
  495. // 출결정보 등록할 파리채 생성
  496. var attdabsndata= 'chk'
  497. + '▦attdabsnflagyn'
  498. + '▦attdabsnflag'
  499. + '▦servdd'
  500. + '▦voluntractteamcd'
  501. + '▦voluntrnm'
  502. + '▦actdeptcd'
  503. + '▦servtm'
  504. + '▦otyn'
  505. + '▦attdrem'
  506. + '▦voluntrid'
  507. + '▦actrgstseqno'
  508. + '▦actfromdd'
  509. + '▦acttodd'
  510. + '▦studapptseqno'
  511. + '▦status'
  512. + '▦chk'
  513. + '▦servseqno'
  514. + '▦servkind'
  515. + '▩';
  516. var chkdata=0; // 체크여부 확인하는 변수 선언
  517. for(i=1;i<=idxRow-idxfixRows;i++)
  518. {
  519. var chk=model.getValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/chk");
  520. if(chk=="1") //체크 된 데이터만
  521. {
  522. if(model.getValue("/root/main/search/otynflag")=="Y") //OT등록시
  523. {
  524. if(isNull(model.getValue('/root/main/otynrgstdd')))
  525. {
  526. messageBox("OT등록일자는","I003");
  527. return;
  528. }
  529. if(isNull(model.getValue('/root/main/ottm')))
  530. {
  531. messageBox("OT시간은","I003");
  532. return;
  533. }
  534. else
  535. {
  536. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/servdd",model.getValue("/root/main/otynrgstdd"));
  537. // ot등록 날짜를 봉사일자에 저장
  538. if(model.getValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/attdabsnflag")=='01')
  539. { //출결구분이 출석일때만 ot등록시간 활동시간에 저장함
  540. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/servtm",model.getValue("/root/main/ottm"));
  541. // ot등록 시간을 활동시간에 저장
  542. }
  543. else
  544. { // 출결구분 결석 일때 0시간 셋팅함
  545. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/servtm",'0');
  546. }
  547. }
  548. }
  549. else // 출결등록시 활동시간 입력 체크
  550. {
  551. if(isNull(model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/servtm')))
  552. {
  553. messageBox("활동시간은","I003");
  554. return;
  555. }
  556. }
  557. // 출석구분은 ot등록, 출결 등록 모두 체크 한다.
  558. if(isNull(model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/attdabsnflag')))
  559. {
  560. messageBox("출석구분은","I003");
  561. return;
  562. }
  563. /*if(isNull(model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/otyn')))
  564. {
  565. messageBox("OT출석여부는","I003");
  566. return;
  567. } */
  568. // 그리드에 조회된 봉사자 출결 저장할 정보 attdabsndata에 누적 저장
  569. // 그리드 수만큼 해당 정보 저장한다.
  570. attdabsndata+= model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/chk')
  571. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/attdabsnflagyn')
  572. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/attdabsnflag')
  573. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/servdd')
  574. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/voluntractteamcd')
  575. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/voluntrnm')
  576. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/actdeptcd')
  577. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/servtm')
  578. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/otyn')
  579. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/attdrem')
  580. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/voluntrid')
  581. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/actrgstseqno')
  582. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/actfromdd')
  583. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/acttodd')
  584. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/studapptseqno')
  585. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/status')
  586. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/chk')
  587. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/servseqno')
  588. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/servkind')
  589. + '▩';
  590. chkdata=chkdata+1; // 체크된 수만큼 누적 된 양을 판별
  591. }
  592. }
  593. if(chkdata=='0') //체크된 데이터가 존재 하지 않을 때
  594. {
  595. messageBox("출결처리 대상을 선택 하십시요","I");
  596. return;
  597. }
  598. model.removeNodeset("/root/send/savedata");
  599. model.makeNode("/root/send/savedata");
  600. model.makeValue("/root/main/attdabsn/attdabsndata",attdabsndata);
  601. model.copyNode("/root/send/savedata","/root/main/attdabsn");
  602. if(submit("TXAAA01601")==true)
  603. {
  604. /*if(model.getValue("/root/main/returnsts/statusinfo/restatus")=="R")
  605. {
  606. messageBox("출결날짜에 해당하는 활동 기간 정보가","I004");
  607. return;
  608. }*/
  609. var nodecnt=getNodesetCount("/root/main/returnsts/statusinfo"); //리턴된 정보 갯수 셈
  610. var chkdata =0;
  611. var daydata =0 ;
  612. if(nodecnt>0)
  613. { // 리턴된 정보 존재시
  614. for(i=1;i<=nodecnt;i++)
  615. {
  616. var restatus=+model.getValue("/root/main/returnsts/statusinfo"+"["+i+"]/restatus");
  617. var servdd=+model.getValue("/root/main/returnsts/statusinfo"+"["+i+"]/servdd");
  618. //alert("활동일자가 "+servdd+"인 " +restatus+"번 째 데이터에 활동정보가 존재하지 않습니다.");
  619. chkdata=chkdata+restatus+' '; // 체크된 수만큼 누적 된 양을 판별
  620. daydata=daydata+servdd+' ';
  621. }
  622. alert(chkdata+"번째 "+daydata+"일의 활동일자 정보가 존재하지 않습니다. 출결처리할 수 없습니다.");
  623. //alert(daydata);
  624. }
  625. else
  626. {
  627. messageBox("출결처리가","I002");
  628. fStudVoluntrAttdAbsnReq(); //명단 조회 함수
  629. }
  630. }
  631. model.refresh();
  632. }
  633. // 출결등록 삭제 함수
  634. function fStudVoluntrAttdAbsnDel()
  635. {
  636. var idxRow=grd_stdsvcattendlist.rows;
  637. var idxfixRows=grd_stdsvcattendlist.fixedRows;
  638. // 출결정보 등록할 파리채 생성
  639. var attdabsndata= 'chk'
  640. + '▦attdabsnflagyn'
  641. + '▦attdabsnflag'
  642. + '▦servdd'
  643. + '▦voluntractteamcd'
  644. + '▦voluntrnm'
  645. + '▦actdeptcd'
  646. + '▦servtm'
  647. + '▦otyn'
  648. + '▦attdrem'
  649. + '▦voluntrid'
  650. + '▦actrgstseqno'
  651. + '▦actfromdd'
  652. + '▦acttodd'
  653. + '▦studapptseqno'
  654. + '▦status'
  655. + '▦chk'
  656. + '▦servseqno'
  657. + '▦servkind'
  658. + '▩';
  659. var chkdata=0; // 체크여부 확인하는 변수 선언
  660. for(i=1;i<=idxRow-idxfixRows;i++)
  661. {
  662. var chk=model.getValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/chk");
  663. if(chk=="1") //체크 된 데이터만
  664. {
  665. if(model.getValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/attdabsnflagyn")=="대상")
  666. {
  667. messageBox("출결등록 되지 않은 대상은 삭제할 수","I004");
  668. return;
  669. }
  670. // 그리드에 조회된 봉사자 출결 저장할 정보 attdabsndata에 누적 저장
  671. // 그리드 수만큼 해당 정보 저장한다.
  672. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+i+"]/status","d"); //삭제 플래그 d저장
  673. attdabsndata+= model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/chk')
  674. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/attdabsnflagyn')
  675. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/attdabsnflag')
  676. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/servdd')
  677. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/voluntractteamcd')
  678. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/voluntrnm')
  679. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/actdeptcd')
  680. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/servtm')
  681. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/otyn')
  682. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/attdrem')
  683. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/voluntrid')
  684. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/actrgstseqno')
  685. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/actfromdd')
  686. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/acttodd')
  687. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/studapptseqno')
  688. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/status')
  689. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/chk')
  690. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/servseqno')
  691. + '▦'+ model.getValue('/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo'+'['+i+']/servkind')
  692. + '▩';
  693. chkdata=chkdata+1; // 체크된 수만큼 누적 된 양을 판별
  694. }
  695. }
  696. if(chkdata=='0') //체크된 데이터가 존재 하지 않을 때
  697. {
  698. messageBox("삭제할 대상을 선택 하십시요","I");
  699. return;
  700. }
  701. model.removeNodeset("/root/send/savedata");
  702. model.makeNode("/root/send/savedata");
  703. model.makeValue("/root/main/attdabsn/attdabsndata",attdabsndata);
  704. model.copyNode("/root/send/savedata","/root/main/attdabsn");
  705. var btn=messageBox("학생자원봉사자 출결 내역을","Q001");
  706. if(btn=='6')
  707. {
  708. if(submit("TXAAA01601")==true)
  709. {
  710. messageBox("삭제가","I002");
  711. fStudVoluntrAttdAbsnReq(); //명단 조회 함수
  712. }
  713. }
  714. else
  715. {
  716. return;
  717. }
  718. model.refresh();
  719. }
  720. function fStudVoluntrAttdAbsnReset()
  721. {
  722. var btn=messageBox("초기화를","Q004");
  723. if(btn=='6')
  724. { // 출결등록 정보 초기화
  725. model.resetInstanceNode("/root/main/studvoluntrabsnlist/studvoluntrabsninfo");
  726. model.removeNodeset("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo");
  727. model.removeNodeset("/root/main/studvoluntrlist/studvoluntrinfo");
  728. //model.resetInstanceNode("/root/main/search");
  729. grd_stdsvcattendlist.fixedcellischeck(0,1)=false;
  730. model.setFocus("ipt_fromdd");
  731. model.refresh();
  732. //fInit();
  733. }
  734. else
  735. {
  736. return;
  737. }
  738. }
  739. ]]>
  740. </script>
  741. <xhtml:body guideline="1,1194;" style="margin-left:8; margin-top:0; margin-right:8; margin-bottom:0; ">
  742. <group id="grp_tle" style="left:0px; top:0px; width:1195px; height:13px; ">
  743. <caption id="caption6" class="tit_1" style="left:0px; top:0px; width:184px; height:14px; ">학생자원봉사자출결등록관리</caption>
  744. </group>
  745. <group id="grp_biz" scroll="auto" style="left:0px; top:13px; width:1195px; height:744px; ">
  746. <line id="line12" class="line_1" style="x1:0px; y1:72px; x2:1194px; y2:72px; "/>
  747. <caption id="caption32" class="tit_2" style="left:5px; top:55px; width:140px; height:13px; ">학생자원봉사자 명단</caption>
  748. <group id="group1" style="left:0px; top:10px; width:1194px; height:35px; vertical-align:top; ">
  749. <shape id="roundrect2" class="roundrect_search" appearance="roundrect" ellipsewidth="10" ellipseheight="10" style="left:0px; top:0px; width:1194px; height:35px; background-color:#fffbf2; border-color:#ffd799; "/>
  750. <button id="button6" class="btn1_letter2" style="left:1122px; top:7px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn1_letter2.gif; ">
  751. <caption>조회</caption>
  752. <script type="javascript" ev:event="onclick">
  753. <![CDATA[
  754. fStudVoluntrAttdAbsnReq();
  755. ]]>
  756. </script>
  757. </button>
  758. <caption id="cap_fromdd" class="search_name" style="left:155px; top:9px; width:100px; height:17px; ">활동일자 :</caption>
  759. <input id="ipt_voluntrnm" ref="/root/main/search/voluntrnm" class="input_search" navindex="5" appearance="minimal" style="left:1000px; top:10px; width:90px; height:19px; ">
  760. <script type="javascript" ev:event="onkeydown">
  761. <![CDATA[
  762. if(event.keyCode==13)
  763. {
  764. //model.makeValue("/root/send/reqdata/voluntrnm",ipt_voluntrnm.currentText);
  765. //alert(ipt_voluntrnm.currentText);
  766. fStudVoluntrAttdAbsnReq();
  767. }
  768. ]]>
  769. </script>
  770. </input>
  771. <input id="ipt_fromdd" ref="/root/main/search/fromdd" class="input_search" navindex="1" inputtype="date" style="left:246px; top:9px; width:100px; height:19px; "/>
  772. <line id="line13" class="line_4" style="x1:1107px; y1:7px; x2:1107px; y2:29px; "/>
  773. <select id="chk_ynflag" ref="/root/main/search/otynflag" navindex="6" overflow="visible" appearance="full" style="left:14px; top:9px; width:96px; height:20px; font-weight:bold; color:#0000ff; border-style:none; ">
  774. <choices>
  775. <item>
  776. <label>OT등록처리</label>
  777. <value>Y</value>
  778. </item>
  779. </choices>
  780. <script type="javascript" ev:event="onclick">
  781. <![CDATA[
  782. if (chk_ynflag.value == "Y")
  783. { //ot등록 처리 시
  784. model.setFocus("ipt_servyy");
  785. cap_svcyear.visible = true;
  786. ipt_servyy.visible = true;
  787. cap_vacflag.visible = true;
  788. com_vacflag.visible = true;
  789. cap_fromdd.visible = false;
  790. ipt_fromdd.visible = false;
  791. cap_middle.visible = false;
  792. ipt_todd.visible = false;
  793. cap_name.visible = false;
  794. ipt_voluntrnm.visible = false;
  795. cap_svcflag.visible = false;
  796. com_svcflag.visible = false;
  797. cap_actdeptcd.visible = false;
  798. cmb_actdeptcd.visible =false;
  799. model.makeValue("/root/main/search/servyy","2008");
  800. model.removeNodeset("/root/main/studvoluntrlist/studvoluntrinfo");
  801. model.removeNodeset("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo");
  802. roundrect1.visible=true; //ot등록일자활성화
  803. cpt_voluntrflag.visible=true; //ot등록일자활성화
  804. ipt_joinorgdd.visible=true; //ot등록일자활성화
  805. //roundrect3.visible=true; //ot시간활성화
  806. caption2.visible=true; //ot시간활성화
  807. ipt_ottm.visible=true; //ot시간활성화
  808. grd_stdsvcattendlist.colDisabled(grd_stdsvcattendlist.colRef("servtm"))=true;
  809. //활동시간 비활성화
  810. model.refresh();
  811. } else {
  812. model.setFocus("ipt_fromdd");
  813. cap_svcyear.visible = false;
  814. ipt_servyy.visible = false;
  815. cap_vacflag.visible = false;
  816. com_vacflag.visible = false;
  817. cap_fromdd.visible = true;
  818. ipt_fromdd.visible = true;
  819. cap_middle.visible = true;
  820. ipt_todd.visible = true;
  821. cap_name.visible = true;
  822. ipt_voluntrnm.visible = true;
  823. cap_svcflag.visible = true;
  824. com_svcflag.visible = true;
  825. cap_actdeptcd.visible = true;
  826. cmb_actdeptcd.visible =true;
  827. roundrect1.visible=false; //ot등록일자비활성화
  828. cpt_voluntrflag.visible=false; //ot등록일자비활성화
  829. ipt_joinorgdd.visible=false; //ot등록일자비활성화
  830. //roundrect3.visible=false; //ot시간비활성화
  831. caption2.visible=false; //ot시간비활성화
  832. ipt_ottm.visible=false; //ot시간비활성화
  833. grd_stdsvcattendlist.colDisabled(grd_stdsvcattendlist.colRef("servtm"))=false;
  834. //활동시간 활성화
  835. model.removeNodeset("/root/main/studvoluntrlist/studvoluntrinfo");
  836. model.removeNodeset("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo");
  837. model.refresh();
  838. }
  839. ]]>
  840. </script>
  841. </select>
  842. <caption id="cap_svcyear" class="search_name" style="left:190px; top:10px; width:90px; height:15px; ">봉사년도 :</caption>
  843. <select1 id="com_vacflag" ref="/root/main/search/vacatflag" class="combo_search" navindex="8" appearance="minimal" style="left:579px; top:9px; width:85px; height:19px; ">
  844. <choices>
  845. <itemset nodeset="/root/hidden/init/comcd3/A0023A0366">
  846. <label ref="cdnm"/>
  847. <value ref="cdid"/>
  848. </itemset>
  849. </choices>
  850. <script type="javascript" ev:event="xforms-value-changed">
  851. <![CDATA[
  852. fStudVoluntrAttdAbsnReq();
  853. ]]>
  854. </script>
  855. </select1>
  856. <caption id="cap_middle" style="left:351px; top:9px; width:16px; height:19px; ">~</caption>
  857. <input id="ipt_todd" ref="/root/main/search/todd" class="input_search" navindex="2" inputtype="date" style="left:366px; top:9px; width:100px; height:19px; "/>
  858. <input id="ipt_servyy" ref="/root/main/search/servyy" class="input_search" navindex="7" maxlength="4" max="4" style="left:280px; top:9px; width:89px; height:19px; ">
  859. <script type="javascript" ev:event="onkeydown">
  860. <![CDATA[
  861. if(event.keyCode==13)
  862. {
  863. model.removeNodeset("/root/send/reqdata");
  864. model.makeNode("/root/send/reqdata");
  865. fStudVoluntrAttdAbsnReq();
  866. }
  867. ]]>
  868. </script>
  869. </input>
  870. <caption id="cap_vacflag" class="search_name" style="left:490px; top:10px; width:90px; height:17px; ">방학구분 :</caption>
  871. <caption id="cap_name" class="search_name" style="left:910px; top:10px; width:95px; height:17px; ">성 명 :</caption>
  872. <select1 id="com_svcflag" ref="/root/main/search/voluntractteamcd" class="combo_search" navindex="4" appearance="minimal" style="left:794px; top:9px; width:90px; height:19px; ">
  873. <choices>
  874. <itemset nodeset="/root/hidden/init/comcd/A0360">
  875. <label ref="cdnm"/>
  876. <value ref="cdid"/>
  877. </itemset>
  878. </choices>
  879. <script type="javascript" ev:event="xforms-value-changed">
  880. <![CDATA[
  881. fStudVoluntrAttdAbsnReq();
  882. ]]>
  883. </script>
  884. </select1>
  885. <caption id="cap_svcflag" class="search_name" style="left:695px; top:10px; width:100px; height:17px; ">봉사구분 :</caption>
  886. <caption id="cap_actdeptcd" class="search_name" style="left:485px; top:10px; width:100px; height:17px; ">활동부서 :</caption>
  887. <select1 id="cmb_actdeptcd" ref="/root/main/search/actdeptcd" class="combo_search" navindex="3" appearance="minimal" style="left:594px; top:9px; width:90px; height:19px; ">
  888. <choices>
  889. <itemset nodeset="/root/hidden/init/comcd/A0503">
  890. <label ref="cdnm"/>
  891. <value ref="cdid"/>
  892. </itemset>
  893. </choices>
  894. <script type="javascript" ev:event="xforms-value-changed">
  895. <![CDATA[
  896. fStudVoluntrAttdAbsnReq();
  897. ]]>
  898. </script>
  899. </select1>
  900. </group>
  901. <line id="line1" class="line_1" style="x1:0px; y1:410px; x2:1194px; y2:410px; "/>
  902. <datagrid id="grd_stdsvcattendlist" nodeset="/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo" caption="^출결여부^출석구분^활동시간^활동일자^성명^봉사구분^활동부서^비고^actrgstseqno&#xA;^actfromdd&#xA;^acttodd&#xA;^studapptseqno&#xA;^otyn^servseqno^servkind" colsep="^" colwidth="45, 80, 80, 69, 96, 100, 90, 150, 100, 18, 22, 20, 22, 19, 23, 14" dataheight="25" explorerbar="sort" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="25" rowsep="|" style="left:0px; top:415px; width:1194px; height:325px; ">
  903. <col checkvalue="1,0" ref="chk" type="checkbox"/>
  904. <col ref="attdabsnflagyn" style="text-align:center; "/>
  905. <col ref="attdabsnflag" type="combo" style="text-align:center; ">
  906. <choices>
  907. <itemset nodeset="/root/hidden/init/comcd1/A0024A0506">
  908. <label ref="cdnm"/>
  909. <value ref="cdid"/>
  910. </itemset>
  911. </choices>
  912. </col>
  913. <col ref="servtm" type="input" maxlength="4" style="text-align:center; "/>
  914. <col ref="servdd" format="yyyy-mm-dd" style="text-align:center; "/>
  915. <col ref="voluntrnm"/>
  916. <col disabled="true" ref="voluntractteamcd" type="combo" style="text-align:center; ">
  917. <choices>
  918. <itemset nodeset="/root/hidden/init/comcd1/A0360">
  919. <label ref="cdnm"/>
  920. <value ref="cdid"/>
  921. </itemset>
  922. </choices>
  923. </col>
  924. <col disabled="true" ref="actdeptcd" type="combo">
  925. <choices>
  926. <itemset nodeset="/root/hidden/init/comcd1/A0503">
  927. <label ref="cdnm"/>
  928. <value ref="cdid"/>
  929. </itemset>
  930. </choices>
  931. </col>
  932. <col ref="attdrem" type="input" maxlength="20"/>
  933. <col ref="actrgstseqno" visibility="hidden"/>
  934. <col ref="actfromdd" visibility="hidden"/>
  935. <col ref="acttodd" visibility="hidden"/>
  936. <col ref="studapptseqno" visibility="hidden"/>
  937. <col ref="otyn" visibility="hidden"/>
  938. <col ref="servseqno" visibility="hidden"/>
  939. <col ref="servkind" visibility="hidden"/>
  940. <script type="javascript" ev:event="xforms-value-changed">
  941. <![CDATA[
  942. var idxRow=grd_stdsvcattendlist.row;
  943. var attdabsnflag=model.getValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+idxRow+"]/attdabsnflag");
  944. //if(model.getValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+idxRow+"]/chk")=="1")
  945. //{ //체크 되어있을 때
  946. if(grd_stdsvcattendlist.col=="3")
  947. { // 출석구분 값이 바뀌었을 때
  948. // 결석 선택된 경우 활동시간 초기화 0 값 셋팅
  949. if(attdabsnflag=="03")
  950. {
  951. model.resetInstanceNode("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+idxRow+"]/servtm");
  952. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+idxRow+"]/servtm","0");
  953. }
  954. // 출결 선택된 경우 초기화 후 ot시간 셋팅
  955. else
  956. {
  957. model.resetInstanceNode("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+idxRow+"]/servtm");
  958. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+idxRow+"]/servtm",model.getValue("/root/main/ottm"));
  959. }
  960. model.refresh();
  961. //}
  962. /*if(grd_stdsvcattendlist.col=="1") //체크 선택시
  963. {
  964. // 결석 선택된 경우 활동시간 초기화 0 값 셋팅
  965. if(attdabsnflag=="03")
  966. {
  967. model.resetInstanceNode("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+idxRow+"]/servtm");
  968. model.makeValue("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+idxRow+"]/servtm","0");
  969. }
  970. else
  971. { //출결일때는 초기화
  972. model.resetInstanceNode("/root/main/studvoluntrattdabsnlist/studvoluntrattdabsninfo"+"["+idxRow+"]/servtm");
  973. }
  974. }*/
  975. }
  976. ]]>
  977. </script>
  978. </datagrid>
  979. <caption id="caption1" class="tit_2" style="left:5px; top:390px; width:196px; height:13px; ">학생자원봉사자 출결 등록</caption>
  980. <datagrid id="grd_studvoluntrlist" nodeset="/root/main/studvoluntrlist/studvoluntrinfo" caption="년도^방학구분^시작일^종료일^성명^생년월일^성별^e-mail^활동부서^학교명^활동시간 누계^voluntrid^studapptseqno^actrgstseqno" colsep="^" colwidth="60, 80, 89, 88, 100, 90, 70, 180, 142, 153, 99, 8, 3, 4" dataheight="25" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="25" rowsep="|" style="left:0px; top:77px; width:1194px; height:296px; ">
  981. <col ref="servyy" style="text-align:center; "/>
  982. <col disabled="true" ref="vacatflag" type="combo" style="text-align:center; ">
  983. <choices>
  984. <itemset nodeset="/root/hidden/init/comcd/A0366">
  985. <label ref="cdnm"/>
  986. <value ref="cdid"/>
  987. </itemset>
  988. </choices>
  989. </col>
  990. <col ref="actfromdd" format="yyyy-mm-dd" style="text-align:center; "/>
  991. <col ref="acttodd" format="yyyy-mm-dd" style="text-align:center; "/>
  992. <col ref="voluntrnm"/>
  993. <col ref="brthdd" format="yyyy-mm-dd" style="text-align:center; "/>
  994. <col disabled="true" ref="sex" type="combo" style="text-align:center; ">
  995. <choices>
  996. <item>
  997. <label>남자</label>
  998. <value>M</value>
  999. </item>
  1000. <item>
  1001. <label>여자</label>
  1002. <value>F</value>
  1003. </item>
  1004. <!--<choices>
  1005. <itemset nodeset="/root/init/sex_cmblist/P0313">
  1006. <label ref="cdnm"/>
  1007. <value ref="cdid"/>
  1008. </itemset>-->
  1009. </choices>
  1010. </col>
  1011. <col ref="email"/>
  1012. <col disabled="true" ref="actdeptcd" type="combo">
  1013. <choices>
  1014. <itemset nodeset="/root/hidden/init/comcd/A0503">
  1015. <label ref="cdnm"/>
  1016. <value ref="cdid"/>
  1017. </itemset>
  1018. </choices>
  1019. </col>
  1020. <col ref="schnm"/>
  1021. <col ref="servtm" format="#,###" style="text-align:center; "/>
  1022. <col ref="voluntrid" visibility="hidden"/>
  1023. <col ref="studapptseqno" visibility="hidden"/>
  1024. <col ref="actrgstseqno" visibility="hidden"/>
  1025. <script type="javascript" ev:event="onclick">
  1026. <![CDATA[
  1027. if(grd_studvoluntrlist.isCell(event.target) && grd_studvoluntrlist.mouseRow >= grd_studvoluntrlist.fixedrows) // 01클릭하는 위치가 그리드 안에 있을 때만 함수 실행
  1028. {
  1029. if(model.getValue("/root/main/search/otynflag")!="Y")
  1030. { //ot등록여부가 체크 되지 않았을 때만 명단 체크시 출결 등록창에 데이터 보여지게 함
  1031. fStudVoluntrAttdInfoReq();
  1032. }
  1033. }
  1034. else
  1035. {
  1036. return;
  1037. }
  1038. ]]>
  1039. </script>
  1040. </datagrid>
  1041. <input id="ipt_joinorgdd" ref="/root/main/otynrgstdd" class="input_essential" navindex="28" inputtype="date" style="left:294px; top:383px; width:102px; height:19px; font-weight:bold; "/>
  1042. <shape id="roundrect1" class="roundrect_example" appearance="roundrect" style="left:189px; top:379px; width:340px; height:28px; "/>
  1043. <caption id="cpt_voluntrflag" class="cell_1" style="left:195px; top:384px; width:95px; height:19px; font-weight:bold; vertical-align:middle; ">OT등록일자 :</caption>
  1044. <caption id="caption2" class="cell_1" style="left:405px; top:384px; width:70px; height:19px; font-weight:bold; vertical-align:middle; ">OT시간 :</caption>
  1045. <input id="ipt_ottm" ref="/root/main/ottm" class="input_essential" navindex="28" maxlength="4" style="left:478px; top:383px; width:46px; height:19px; font-weight:bold; text-align:center; "/>
  1046. </group>
  1047. <group id="grp_btn" style="left:0px; top:757px; width:1195px; height:27px; ">
  1048. <button id="button17" class="btn4_letter2" disable.background-image="../../../com/commonweb/images/dis_btn4_letter2.gif" style="left:1067px; top:3px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn4_letter2.gif; ">
  1049. <caption>삭제</caption>
  1050. <script type="javascript" ev:event="DOMActivate">
  1051. <![CDATA[
  1052. fStudVoluntrAttdAbsnDel();
  1053. ]]>
  1054. </script>
  1055. </button>
  1056. <button id="button10" class="btn4_letter3" disable.background-image="../../../com/commonweb/images/dis_btn4_letter3.gif" style="left:1126px; top:3px; width:68px; height:22px; background-image:../../../com/commonweb/images/btn4_letter3.gif; ">
  1057. <caption>초기화</caption>
  1058. <script type="javascript" ev:event="DOMActivate">
  1059. <![CDATA[
  1060. fStudVoluntrAttdAbsnReset();
  1061. ]]>
  1062. </script>
  1063. </button>
  1064. <line id="line16" class="line_6" style="x1:0px; y1:0px; x2:1194px; y2:0px; "/>
  1065. <line id="line37" class="line_6" style="x1:0px; y1:0px; x2:1194px; y2:0px; "/>
  1066. <button id="button1" class="btn4_letter2" disable.background-image="../../../com/commonweb/images/dis_btn4_letter2.gif" style="left:1006px; top:3px; width:56px; height:22px; background-image:../../../com/commonweb/images/btn4_letter2.gif; ">
  1067. <caption>저장</caption>
  1068. <script type="javascript" ev:event="DOMActivate">
  1069. <![CDATA[
  1070. fStudVoluntrAttdAbsnSave();
  1071. ]]>
  1072. </script>
  1073. </button>
  1074. </group>
  1075. </xhtml:body>
  1076. </xhtml:html>