RPD001.js 35 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182
  1. String.prototype.rpdfToDate = rpdfToDate;
  2. Date.prototype.rpdfFormat = rpdfFormat;
  3. Date.prototype.rpdfGetRelativeDate = rpdfGetRelativeDate;
  4. //코드 HELP 화면 OPEN-Modal
  5. /*
  6. phelp_kind : "01" - 근무스케쥴신청등록_사유등록
  7. pcontrol_name : 값을 체크하고 저장될 목적지 컨트롤(Grid,Input.....)
  8. pcdgrupid : 공통코드일경우 코드군 ("Z0007","R0001"...)
  9. precv_list: 리턴받을 Instance명 (마지막 Element만 ','로 분리)
  10. pdefault_value : 부모 윈도우에서 넘어오는 값
  11. */
  12. function rpdfOpenPopUpList(phelp_kind, pcontrol_name, pcdgrupid, precv_list, pdefault_value, pNodeName, pSendNode)
  13. {
  14. var recv_list = precv_list.split(",");
  15. var arrNodeNames = "";
  16. if(pNodeName != "" && pNodeName != null)
  17. {
  18. var arrNodeNames = pNodeName.split(",");
  19. }
  20. if(pdefault_value != "" && pdefault_value != null)
  21. {
  22. var default_value = pdefault_value.split(",");
  23. }
  24. var recvref_node = "/root/source/recvref";
  25. var cdgrupid_node = "/root/source/cdgrupid";
  26. var recvitem_node = "/root/source/recvitem";
  27. var default_node = "/root/source/defaultvalue";
  28. var checkyn_node = "/root/source/checkyn";
  29. var control_node = "/root/source/control";
  30. model.removeNodeset(recvref_node);
  31. model.removeNodeset(cdgrupid_node);
  32. model.removeNodeset(recvitem_node);
  33. model.removeNodeset(default_node);
  34. model.removeNodeset(checkyn_node);
  35. model.removeNodeset(control_node);
  36. model.makeNode(recvref_node);
  37. model.makeNode(cdgrupid_node);
  38. model.makeNode(recvitem_node);
  39. model.makeNode(default_node);
  40. model.makeNode(checkyn_node);
  41. if(precv_list != "")
  42. {
  43. for (var k = 0; k <=recv_list.length-1; k++)
  44. {
  45. model.makeValue(recvitem_node + "/" + recv_list[k], recv_list[k]);
  46. }
  47. }
  48. var obj = null;
  49. if (pcontrol_name.elementName == "xforms:datagrid")
  50. {
  51. //grid에서 호출 했을경우.
  52. pcontrol_name.endEditCell();
  53. if(pdefault_value != "" && pdefault_value != null)
  54. {
  55. for (var z = 0; z < default_value.length; z++)
  56. {
  57. obj = document.controls(default_value[z]);
  58. if (obj != null && obj.elementName != "xforms:datagrid" )
  59. {
  60. model.makeValue(default_node + "/" + default_value[z] , model.getValue(obj.attribute("ref")));
  61. }
  62. // else if (obj != null && obj.elementName == null && arrNodeNames.length == default_value.length)
  63. // {
  64. // model.makeValue(default_node + "/" + arrNodeNames[z], model.getValue(obj.attribute("ref")));
  65. // }
  66. else
  67. {
  68. model.makeValue(default_node + "/" + default_value[z] ,
  69. model.getValue(pcontrol_name.nodeset + "[" + (pcontrol_name.row - pcontrol_name.fixedRows + 1)+ "]/" + default_value[z]));
  70. }
  71. }
  72. }
  73. model.setValue(recvref_node, pcontrol_name.nodeset + "[" + (pcontrol_name.row - pcontrol_name.fixedRows + 1) + "]");
  74. }
  75. else
  76. {
  77. //grid외의 control에서 호출했을경우.
  78. var node_path = pcontrol_name.attribute("ref").split("/");
  79. var source_path = "/root";
  80. for (var i = 2 ; i < node_path.length - 1; i++)
  81. {
  82. source_path = source_path + "/" + node_path[i];
  83. }
  84. if(pdefault_value != "" && pdefault_value != null)
  85. {
  86. for (var z = 0; z < default_value.length; z++)
  87. {
  88. obj = document.controls(default_value[z]);
  89. /*
  90. if (obj != null && arrNodeNames.length == default_value.length)
  91. {
  92. model.makeValue(default_node + "/" + arrNodeNames[z], model.getValue(obj.attribute("ref")));
  93. }
  94. else if (obj != null)
  95. {
  96. model.makeValue(default_node + "/" + default_value[z] , model.getValue(obj.attribute("ref")));
  97. }
  98. */
  99. if (obj != null)
  100. {
  101. model.makeValue(default_node + "/" + default_value[z] , model.getValue(obj.attribute("ref")));
  102. }
  103. }
  104. }
  105. model.setValue(recvref_node ,source_path);
  106. }
  107. if (pcdgrupid.length > 0 )
  108. {
  109. model.setValue(cdgrupid_node ,pcdgrupid);
  110. }
  111. model.makeValue(control_node, pcontrol_name.attribute("id"));
  112. var window_name = "" ;
  113. if (phelp_kind == "1") // 근무스케쥴신청_사유등록HELP
  114. {
  115. window_name = "SPRPD10700";
  116. }
  117. else if(phelp_kind == "2") // 근무스케쥴신청_사유조회HELP
  118. {
  119. window_name = "SPRPD10800";
  120. }
  121. else if(phelp_kind == "3") // 개인근무변경신청
  122. {
  123. window_name = "SPRPD10001";
  124. }
  125. else
  126. {
  127. window_name = "";
  128. }
  129. modal(window_name,"","","","", pSendNode, "/root/target");
  130. }
  131. /*
  132. 코드 HELP 화면의 선택된 값 Return
  133. pdesgrid_name : 리턴값을 받을 대상 오프너의 그리드
  134. pgrid_name : HELP화면의 Grid
  135. */
  136. function rpdfPopUpListReturn() {
  137. var recv_ref = model.getValue("root/target/recvref");
  138. var node = instance1.selectNodes("root/target/recvitem/*");
  139. var control_name = model.getValue("root/target/control");
  140. var obj = document.controls(control_name);
  141. if (checkOpener()) {
  142. for (var j = 0; j < node.length; j++) {
  143. opener.model.makeValue(recv_ref + "/" + node.item(j).nodeName, model.getValue(pgrid_name.nodeset + "[" + (pgrid_name.row - pgrid_name.fixedRows + 1) + "]/" + pgrid_name.colAttribute(j+1,"ref")));
  144. }
  145. window.close();
  146. }
  147. else {
  148. messageBox("상위 화면이 변경되어 데이터를 전달", "E001");
  149. }
  150. }
  151. //HELP 화면에서 취소 버튼 Click시 처리
  152. /*
  153. pcontrol_name : 부모화면의 컨트롤/Grid 명
  154. */
  155. function rpdfPopUpListCancel() {
  156. if (checkOpener()) {
  157. window.close();
  158. }
  159. else {
  160. messageBox("상위 화면이 변경되어 데이터를 전달", "E001");
  161. }
  162. }
  163. //콤보에 권한별 부서코드세팅
  164. //pcontrol_name : 세팅될 컨트롤 명
  165. //pall : 콤보에 세팅값에 전체항목 추가 'null' or 'Y' 일시 '전체' 셋팅
  166. function rpdfComboCdList(pcontrol_name, pall)
  167. {
  168. var control_id = pcontrol_name.attribute("id");
  169. var comcd_node = "/root/send/comcdref";
  170. var comcd_rsltnode = "/root/init/combocd";
  171. var comcd_itemset = "/root/init/" + control_id;
  172. var comcd_tempnode = "/root/init/temp";
  173. model.removeNodeset(comcd_node);
  174. model.removeNodeset(comcd_itemset);
  175. model.removeNodeSet(comcd_tempnode);
  176. model.makeNode(comcd_node);
  177. model.makeNode(comcd_node + "/cdid");
  178. model.makeNode(comcd_node + "/cdnm");
  179. model.makeNode(comcd_node + "/refcond");
  180. model.makeNode(comcd_rsltnode);
  181. model.makeNode(comcd_itemset);
  182. model.makeNode(comcd_tempnode);
  183. pcontrol_name.choices.itemset.attribute("nodeset") = comcd_itemset+"/combocodelist";
  184. pcontrol_name.choices.itemset.label.attribute("ref") = "cdnm";
  185. pcontrol_name.choices.itemset.value.attribute("ref") = "cdid";
  186. model.setValue(comcd_node + "/cdid", "%");
  187. model.setValue(comcd_node + "/cdnm", "%");
  188. model.makeValue(comcd_node + "/userid", getUserInfo("userid"));
  189. model.makeValue(comcd_node + "/instcd", getUserInfo("dutplceinstcd"));
  190. model.removeChild("TRRPD02210");
  191. model.createChild("xforms:submission", "id:TRRPD02210;mediatype:application/x-www-form-urlencoded; method:post; ref:" + comcd_node + "; resultref:" + comcd_rsltnode + "; ");
  192. submit("TRRPD02210");
  193. if(pall != null && pall == "Y")
  194. {
  195. model.copyNode(comcd_tempnode, comcd_rsltnode);
  196. model.makeValue(comcd_rsltnode + "/combocodelist[" + 1 + "]/cdnm", " 전체 ");
  197. model.makeValue(comcd_rsltnode + "/combocodelist[" + 1 + "]/cdid", "");
  198. sourcenode = document.models(0).instances(0).selectSingleNode(comcd_tempnode);
  199. tarnode = document.models(0).instances(0).selectSingleNode(comcd_rsltnode);
  200. cnt = 1;
  201. var sourcenodelist = sourcenode.childNodes;
  202. while (childNode = sourcenodelist.nextNode())
  203. {
  204. model.makeValue(comcd_rsltnode + "/combocodelist[" + (cnt + 1) + "]/cdnm", childNode.getXPathString(comcd_tempnode + "/combocodelist[" + cnt + "]/cdnm"));
  205. model.makeValue(comcd_rsltnode + "/combocodelist[" + (cnt + 1) + "]/cdid", childNode.getXPathString(comcd_tempnode + "/combocodelist[" + cnt + "]/cdid"));
  206. cnt++;
  207. }
  208. // model.removeNode(comcd_tempnode);
  209. }
  210. // else model.copyNode(comcd_itemset,comcd_rsltnode);
  211. model.refresh();
  212. }
  213. //Grid 콤보에 공통코드 Setting
  214. /*
  215. pcdgrupid : 공통코드군
  216. pgrid_name: Grid명
  217. pcolumn_id: Column명
  218. pmid_cls : 구매재고일경우만 넘김('PUR')
  219. */
  220. function rpdfGridComboComCdList(pcontrol_name, pref_list)
  221. {
  222. var control_id = pcontrol_name.attribute("id");
  223. var pcdgrupid="";
  224. var ref_list=pref_list.split(",");
  225. var comcd_node = "/root/send/comcdref";
  226. var comcd_rsltnode = "/root/init/comcd";
  227. var comcd_itemset = "/root/init/" + control_id;
  228. model.removeNodeset(comcd_node);
  229. model.removeNodeset(comcd_itemset);
  230. model.makeNode(comcd_node);
  231. model.makeNode(comcd_node + "/emplno");
  232. model.makeNode(comcd_node + "/dutplceinstcd");
  233. model.makeNode(comcd_node + "/cdgrupid");
  234. model.makeNode(comcd_node + "/cdid");
  235. model.makeNode(comcd_node + "/cdnm");
  236. model.makeNode(comcd_node + "/refcond");
  237. model.makeNode(comcd_rsltnode);
  238. model.makeNode(comcd_itemset);
  239. pcontrol_name.choices.itemset.attribute("nodeset") = comcd_itemset+"/comcodelist";
  240. pcontrol_name.choices.itemset.label.attribute("ref") = "cdnm";
  241. pcontrol_name.choices.itemset.value.attribute("ref") = "cdid";
  242. // pcontrol_name.refresh();
  243. model.setValue(comcd_node + "/emplno", ref_list[0]);
  244. model.setValue(comcd_node + "/dutplceinstcd", ref_list[1]);
  245. model.setValue(comcd_node + "/cdgrupid", pcdgrupid);
  246. model.setValue(comcd_node + "/cdid","%");
  247. model.setValue(comcd_node + "/cdnm","%");
  248. model.removeChild("TRRPD01302");
  249. model.createChild("xforms:submission", "id:TRRPD01302;mediatype:application/x-www-form-urlencoded; method:post; ref:" + comcd_node + "; resultref:" + comcd_rsltnode + "; ");
  250. submit("TRRPD01302");
  251. }
  252. /*
  253. function rpdfGridComboComCdList(pcdgrupid, pgrid_name, pcolumn_id,pref_list,cur_row)
  254. {
  255. var control_id = pgrid_name.attribute("id");
  256. var ref_list=pref_list.split(",");
  257. var column_no = pgrid_name.colRef(pcolumn_id);
  258. var column_name = pgrid_name.colAttribute(column_no, "id");
  259. var column_obj = document.controls(column_name);
  260. var comcd_node = "/root/send/comcdref";
  261. var comcd_rsltnode = "/root/init/comcd";
  262. var comcd_itemset = "/root/init/" + control_id + "/" + pcolumn_id;
  263. model.removeNodeset(comcd_node);
  264. model.removeNodeset(comcd_itemset);
  265. model.makeNode(comcd_node);
  266. model.makeNode(comcd_node + "/cdgrupid");
  267. model.makeNode(comcd_node + "/emplno");
  268. model.makeNode(comcd_node + "/dutplceinstcd");
  269. model.makeNode(comcd_node + "/cdid");
  270. model.makeNode(comcd_node + "/cdnm");
  271. model.makeNode(comcd_node + "/refcond");
  272. model.makeNode(comcd_rsltnode);
  273. model.makeNode(comcd_itemset);
  274. var column_id = pgrid_name.colattribute(column_no, "id");
  275. column_obj.choices.itemset.attribute("nodeset")= comcd_itemset+"/comcodelist";
  276. column_obj.choices.itemset.label.attribute("ref") = "cdnm";
  277. column_obj.choices.itemset.value.attribute("ref") = "cdid";
  278. // pgrid_name.choices.itemset.attribute("nodeset") = comcd_itemset+"/comcodelist";
  279. //
  280. // alert("kkkk");
  281. // pgrid_name.choices.itemset.label.attribute("ref") = "cdnm";
  282. // pgrid_name.choices.itemset.value.attribute("ref") = "cdid";
  283. // pgrid_name.refresh();
  284. model.setValue(comcd_node + "/emplno", ref_list[0]);
  285. model.setValue(comcd_node + "/dutplceinstcd", ref_list[1]);
  286. model.setValue(comcd_node + "/cdgrupid", pcdgrupid);
  287. model.setValue(comcd_node + "/cdid","%");
  288. model.setValue(comcd_node + "/cdnm","%");
  289. model.removeChild("TRRPD01302");
  290. model.createChild("xforms:submission", "id:TRRPD01302;mediatype:application/x-www-form-urlencoded; method:post; ref:" + comcd_node + "; resultref:" + comcd_rsltnode + "; ");
  291. submit("TRRPD01302");
  292. model.copyNode(comcd_itemset,comcd_rsltnode);
  293. model.refresh();
  294. }
  295. */
  296. /* ---------------------------------------------------
  297. * 두 일자사이의 차를 일단위로 반환
  298. * pFromDate - 시작일자 문자열 (YYYYMMDD or YYYY/MM/DD or YYYY-MM-DD)
  299. * pToDate - 종료일자 문자열 (YYYYMMDD or YYYY/MM/DD or YYYY-MM-DD)
  300. * return : 종료일자에서 시작일자를 뺀 일자
  301. ---------------------------------------------------*/
  302. function rpdfGetDateTerm(pFromDate, pToDate)
  303. {
  304. var arrFrDate = new Array(3);
  305. var arrToDate = new Array(3);
  306. if(pFromDate.length == 8) {
  307. arrFrDate[0] = pFromDate.substr(0, 4);
  308. arrFrDate[1] = pFromDate.substr(4, 2);
  309. arrFrDate[2] = pFromDate.substr(6, 2);
  310. } else if(pFromDate.length == 10) {
  311. arrFrDate = pFromDate.split("/");
  312. if(arrDate.length != 3) {
  313. arrFrDate = pFromDate.split("-");
  314. }
  315. }
  316. if(pToDate.length == 8) {
  317. arrToDate[0] = pToDate.substr(0, 4);
  318. arrToDate[1] = pToDate.substr(4, 2);
  319. arrToDate[2] = pToDate.substr(6, 2);
  320. } else if(pToDate.length == 10) {
  321. arrToDate = pToDate.split("/");
  322. if(arrDate.length != 3) {
  323. arrToDate = pToDate.split("-");
  324. }
  325. }
  326. var frdt = new Date(eval(arrFrDate[0]), eval(arrFrDate[1]) - 1, eval(arrFrDate[2]));
  327. var todt = new Date(eval(arrToDate[0]), eval(arrToDate[1]) - 1, eval(arrToDate[2]));
  328. var diff = (todt - frdt) / 1000;
  329. diff = diff / (60 * 60 * 24);
  330. return diff;
  331. }
  332. /**
  333. *---------------------------------------------------
  334. * 두 시간의 차를 초단위로 반환
  335. * pFromTime - 시작시간 문자열 (hhmm or hh:mm or hhmmss or hh:mm:ss)
  336. * pToTime - 종료시간 문자열 (hhmm or hh:mm or hhmmss or hh:mm:ss)
  337. * return : (종료시간 - 시작시간) 를 초단위로 반환
  338. * ---------------------------------------------------
  339. */
  340. function rpdfGetTimeTerm(pFromTime, pToTime)
  341. {
  342. var arrFrTime = new Array(3);
  343. var arrToTime = new Array(3);
  344. arrFrTime[0] = pFromTime.substr(0, 2);
  345. arrFrTime[1] = pFromTime.substr(2, 2);
  346. arrFrTime[2] = pFromTime.substr(4, 2);
  347. if(arrFrTime[2].length == 0) arrFrTime[2] = 0;
  348. // } else if(pFromTime.length == 5 || pFromTime.length == 8) {
  349. // arrFrTime = pFromTime.split(":");
  350. // if(arrFrTime[2].length == 0) arrFrTime[2] = 0;
  351. // }
  352. // if(pToTime.length == 4 || pToTime.length == 6) {
  353. arrToTime[0] = pToTime.substr(0, 2);
  354. arrToTime[1] = pToTime.substr(2, 2);
  355. arrToTime[2] = pToTime.substr(4, 2);
  356. if(arrToTime[2].length == 0) arrToTime[2] = 0;
  357. // } else if(pToTime.length == 5 || pToTime.length == 8) {
  358. // arrToTime = pFromTime.split(":");
  359. // if(arrFrTime[2].length == 0) arrToTime[2] = 0;
  360. // }
  361. var frtm = new Date(2000, 1, 1, eval(arrFrTime[0]), eval(arrFrTime[1]), eval(arrFrTime[2]), 0);
  362. var totm = new Date(2000, 1, 1, eval(arrToTime[0]), eval(arrToTime[1]), eval(arrToTime[2]), 0);
  363. var diff = (totm - frtm) / 1000;
  364. return diff;
  365. }
  366. //=============================================================================================
  367. // 근무시간 계산 - 분단위
  368. // pFrdate : 시작일자
  369. // pFrtime : 시작시간
  370. // pTodate : 종료일자
  371. // pTotime : 종료시간
  372. //=============================================================================================
  373. function rpdfGetCalcDutyTime(pFrdate, pFrtime, pTodate, pTotime) {
  374. var iTimeTerm = 0;
  375. var iDateTerm = 0;
  376. //근무시간을 구함(분단위)
  377. if (pFrdate == pTodate) {
  378. iTimeTerm = rpdfGetTimeTerm(pFrtime, pTotime) / 60;
  379. } else {
  380. iDateTerm = rpdfGetDateTerm(pFrdate, pTodate);
  381. if (iDateTerm == 1) {
  382. iTimeTerm = rpdfGetTimeTerm(pFrtime, "2400") / 60;
  383. iTimeTerm = iTimeTerm + rpdfGetTimeTerm("0000", pTotime) / 60;
  384. } else {
  385. iTimeTerm = rpdfGetTimeTerm(pFrtime, "2400") / 60;
  386. iTimeTerm = iTimeTerm + rpdfGetTimeTerm("0000", pTotime) / 60;
  387. iTimeTerm = iTimeTerm + (iDateTerm-1)*24*60;
  388. }
  389. }
  390. return Math.floor(iTimeTerm);
  391. }
  392. function rpdToDay(ptime) {
  393. var time = ptime.substring(0,2);
  394. var mm =ptime.substring(2,2);
  395. if (time <10)
  396. time=("0"+time).toString();
  397. else
  398. time=time.toString();
  399. if (mm <10)
  400. mm=("0"+mm).toString();
  401. else
  402. mm=mm.toString();
  403. return time+mm;
  404. }
  405. //=============================================================================================
  406. // 야간 근무시간 계산 - 분단위
  407. // pFrdate : 시작일자
  408. // pFrtime : 시작시간
  409. // pTodate : 종료일자
  410. // pTotime : 종료시간
  411. //=============================================================================================
  412. function rpdfGetNightTime(pFrdate, pFrtime, pTodate, pTotime){
  413. //===== 야간근무시간
  414. var sGjfrdt = parseFloat(pFrdate);
  415. var sGjtodt_v = pFrdate.rpdfToDate("YYYYMMDD").rpdfGetRelativeDate(1, "D").rpdfFormat();
  416. var sGjtodt =parseFloat(sGjtodt_v);
  417. var sGjfrtm = parseFloat("2200");
  418. var sGjtotm = parseFloat("0600");
  419. var sFrdate, sTodate, sFrtime, sTotime;
  420. var pFrdate = parseFloat(pFrdate);
  421. var pFrtime = parseFloat(pFrtime);
  422. var pTodate = parseFloat(pTodate);
  423. var pTotime = parseFloat(pTotime);
  424. //야간근무에 해당되는 시각..
  425. /* if (pFrtime <= sGjtotm || pFrtime >= sGjfrtm || pTotime <= sGjtotm || pTotime >= sGjfrtm) {
  426. if(pFrtime >= sGjfrtm){
  427. ssFrtime = pFrtime
  428. }
  429. }*/
  430. if (pFrtime <= sGjtotm || pFrtime >= sGjfrtm || pTotime <= sGjtotm || pTotime >= sGjfrtm) {
  431. if (pFrtime > sGjtotm && pFrtime <= sGjfrtm) {
  432. pFrtime = rpdToDay(pFrtime);
  433. sGjtotm = rpdToDay(sGjtotm);
  434. sGjfrtm = rpdToDay(sGjfrtm);
  435. pFrdate=pFrdate.toString();
  436. pFrddtm=pFrdate+pFrtime;
  437. if (parseFloat(pFrddtm) > (sGjfrdt + sGjfrtm)) {
  438. parseFloat(sFrdate) = pFrdate;
  439. parseFloat(sFrtime) = pFrtime;
  440. } else {
  441. parseFloat(sFrdate) = sGjfrdt;
  442. parseFloat(sFrtime) = sGjfrtm;
  443. }
  444. }
  445. //alert(pFrdate + pFrtime + " ~ " + pTodate + pTotime);
  446. /* alert("a=="+pFrdate +"==="+ sGjtotm + " ~ " + pFrtime +"==="+ sGjfrtm);
  447. if (pFrtime > sGjtotm && pFrtime <= sGjfrtm) {
  448. alert("1");
  449. if ((pFrdate + pFrtime) > (sGjfrdt + sGjfrtm)) {
  450. alert("2");
  451. parseFloat(sFrdate) = pFrdate;
  452. parseFloat(sFrtime) = pFrtime;
  453. } else {
  454. alert("3");
  455. parseFloat(sFrdate) = sGjfrdt;
  456. parseFloat(sFrtime) = sGjfrtm;
  457. }
  458. alert("2=="+sFrdate +"==="+ sFrtime);
  459. if ((pTodate + pTotime) < (sGjtodt + sGjtotm)) {
  460. alert("4");
  461. sTodate = pTodate;
  462. sTotime = pTotime;
  463. } else {
  464. alert("5");
  465. sTodate = sGjtodt;
  466. sTotime = sGjtotm;
  467. }
  468. alert("3=="+sTodate +"==="+ sTotime);
  469. } else if (pFrtime <= sGjtotm) {
  470. sGjtodt = sGjfrdt;
  471. sFrdate = pFrdate;
  472. sFrtime = pFrtime;
  473. alert("4=="+sGjtodt +"==="+ sFrdate+"=="+sFrtime);
  474. if ((pTodate + pTotime) < (sGjtodt + sGjtotm)) {
  475. sTodate = pTodate;
  476. sTotime = pTotime;
  477. } else {
  478. sTodate = sGjtodt;
  479. sTotime = sGjtotm;
  480. }
  481. }
  482. }*/
  483. }
  484. return rpdfGetCalcDutyTime(sFrdate, sFrtime, sTodate, sTotime);
  485. }
  486. //휴일근무에 해당하는시간 계산
  487. // pFrdate : 시작일자
  488. // pFrtime : 시작시간
  489. // pTodate : 종료일자
  490. // pTotime : 종료시간
  491. // pHolyflag1 : 시작일 휴무여부 : 휴일이면 'Y' 아니면 'N'
  492. // pHolyflag2 : 종료일 휴무여부 : 휴일이면 'Y' 아니면 'N'
  493. function rpdfGetHolyTime(pFrdate, pFrtime, pTodate, pTotime,pHolyflag1, pHolyflag2) {
  494. var iTimeTerm = 0;
  495. var iDateTerm = 0;
  496. var iTimeTerm1 = 0;
  497. var iDateTerm1 = 0;
  498. var iTimeTerm2 = 0;
  499. var iDateTerm2 = 0;
  500. if(pHolyflag1=='Y'){
  501. if (pFrdate == pTodate) {
  502. iTimeTerm1 = rpdfGetTimeTerm(pFrtime, pTotime) / 60;
  503. } else {
  504. iDateTerm1 = rpdfGetDateTerm(pFrdate, pTodate);
  505. if (iDateTerm1 == 1) {
  506. iTimeTerm1 = rpdfGetTimeTerm(pFrtime, "2400") / 60;
  507. iTimeTerm1= iTimeTerm1 + rpdfGetTimeTerm("0000", pTotime) / 60;
  508. } else {
  509. iTimeTerm1 = rpdfGetTimeTerm(pFrtime, "2400") / 60;
  510. iTimeTerm1 = iTimeTerm1 + rpdfGetTimeTerm("0000", pTotime) / 60;
  511. iTimeTerm1 = iTimeTerm1 + (iDateTerm-1)*24*60;
  512. }
  513. }
  514. }
  515. if(pHolyflag2=='Y'){
  516. if (pFrdate == pTodate) {
  517. iTimeTerm2 = rpdfGetTimeTerm(pFrtime, pTotime) / 60;
  518. } else {
  519. iDateTerm2 = rpdfGetDateTerm(pFrdate, pTodate);
  520. if (iDateTerm2 == 1) {
  521. iTimeTerm2 = rpdfGetTimeTerm(pFrtime, "2400") / 60;
  522. iTimeTerm2 = iTimeTerm2 + rpdfGetTimeTerm("0000", pTotime) / 60;
  523. } else {
  524. iTimeTerm2 = rpdfGetTimeTerm(pFrtime, "2400") / 60;
  525. iTimeTerm2 = iTimeTerm2 + rpdfGetTimeTerm("0000", pTotime) / 60;
  526. iTimeTerm2 = iTimeTerm2 + (iDateTerm2-1)*24*60;
  527. }
  528. }
  529. }
  530. iTimeTerm=iTimeTerm1+iTimeTerm2;
  531. return Math.floor(iTimeTerm);
  532. }
  533. /**
  534. * 문자열 날짜를 Date로 반환
  535. * var date = "2002-03-05".toDate("YYYY-MM-DD")
  536. * pPattern - Date를 표현하고 있는 현재의 String을 pattern으로 표현한다.
  537. *
  538. * # syntex
  539. *
  540. * YYYY : year(4자리)
  541. * YY : year(2자리)
  542. * MM : month in year(number)
  543. * DD : day in month
  544. * hh : hour in day (0~23)
  545. * mm : minute in hour
  546. * ss : second in minute
  547. * SS : millisecond in second
  548. *
  549. * 주의) 이 중에서 YYYY(YY), MM, DD 는 반드시 있어야 한다.
  550. *
  551. * return : 변환된 Date Object.
  552. * ---------------------------------------------------
  553. */
  554. function rpdfToDate(pPattern)
  555. {
  556. var index = -1;
  557. var year;
  558. var month;
  559. var day;
  560. var hour = 0;
  561. var min = 0;
  562. var sec = 0;
  563. var ms = 0;
  564. if ((index = pPattern.indexOf("YYYY")) == -1 ) {
  565. index = pPattern.indexOf("YY");
  566. year = "20" + this.substr(index, 2);
  567. } else {
  568. year = this.substr(index, 4);
  569. }
  570. index = pPattern.indexOf("MM");
  571. month = this.substr(index, 2);
  572. index = pPattern.indexOf("DD");
  573. day = this.substr(index, 2);
  574. if ((index = pPattern.indexOf("hh")) != -1 ) {
  575. hour = this.substr(index, 2);
  576. }
  577. if ((index = pPattern.indexOf("mm")) != -1 ) {
  578. min = this.substr(index, 2);
  579. }
  580. if ((index = pPattern.indexOf("ss")) != -1 ) {
  581. sec = this.substr(index, 2);
  582. }
  583. if ((index = pPattern.indexOf("SS")) != -1 ) {
  584. ms = this.substr(index, 2);
  585. }
  586. return new Date(year, month - 1, day, hour, min, sec, ms);
  587. }
  588. /**
  589. * 특정일자의 상대일자(+/-)를 계산
  590. * pNum - 구하고자 하는 상대일 수 (+/-)
  591. * pKind - 구하고자 하는 기준(위 참조)
  592. *
  593. * pKind에 따른 상대일자를 계산한다.
  594. *
  595. * "Y" : 년
  596. * "M" : 월
  597. * "D" : 일
  598. * "h" : 시
  599. * "m" : 분
  600. * "s" : 초
  601. *
  602. * default는 "D"
  603. *
  604. * 함수 호출시 다음과 같이 사용한다.
  605. *
  606. * 1) date.rpdfGetRelativeDate(10) --> default로 일에 대한 상대일을 구한다.
  607. * 2) date.rpdfGetRelativeDate(10, "Y") --> 년도에 대한 상대일을 구한다.
  608. *
  609. * return : Date
  610. *---------------------------------------------------
  611. */
  612. function rpdfGetRelativeDate(pNum, pKind)
  613. {
  614. var dt = this;
  615. if(typeof(pKind) == "undefined") pKind = "D";
  616. if(pKind == "Y") {
  617. dt.setFullYear(this.getFullYear() + pNum);
  618. } else if(pKind == "M") {
  619. dt.setMonth(this.getMonth() + pNum);
  620. } else if(pKind == "D") {
  621. dt.setDate(this.getDate() + pNum);
  622. } else if(pKind == "h") {
  623. dt.setHours(this.getHours() + pNum);
  624. } else if(pKind == "m") {
  625. dt.setMinutes(this.getMinutes() + pNum);
  626. } else if(pKind == "s") {
  627. dt.setSeconds(this.getSeconds() + pNum);
  628. }
  629. return dt;
  630. }
  631. /**
  632. * default pattern은 "YYYYMMDD"이다.
  633. *
  634. * 함수 호출시 다음과 같이 사용한다.
  635. *
  636. * 1) rpdfFormat() --> default로 YYYYMMDD형태로 반환한다.
  637. * 2) rpdfFormat("YYYY/MM/DD") --> pattern 형식으로 반환한다.
  638. *
  639. *
  640. * pPattern - syntex 참조
  641. * *
  642. * # syntex
  643. *
  644. * YYYY : hour in am/pm (1~12)
  645. * MM : month in year(number)
  646. * MON : month in year(text) 예) "January"
  647. * DD : day in month
  648. * DAY : day in week 예) "Sunday"
  649. * HH : hour in am/pm (1~12)
  650. * hh : hour in day (0~23)
  651. * mm : minute in hour
  652. * ss : second in minute
  653. * SS : millisecond in second
  654. * a : am/pm 예) "AM"
  655. *
  656. *
  657. * return : Pattern 형태의 문자열
  658. * ---------------------------------------------------
  659. */
  660. function rpdfFormat(pPattern)
  661. {
  662. var GLB_MONTH_IN_YEAR = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
  663. var GLB_DAY_IN_WEEK = new Array("Sunday", "Monday", "Tuesday", "Wednesday","Thursday", "Friday", "Saturday");
  664. var year = this.getFullYear();
  665. var month = this.getMonth() + 1;
  666. var day = this.getDate();
  667. var dayInWeek = this.getDay();
  668. var hour24 = this.getHours();
  669. var ampm = (hour24 < 12) ? 0 : 1;
  670. var hour12 = (hour24 > 12) ? (hour24 - 12) : hour24;
  671. var min = this.getMinutes();
  672. var sec = this.getSeconds();
  673. var YYYY = "" + year;
  674. var YY = YYYY.substr(2);
  675. var MM = (("" + month).length == 1) ? "0" + month : "" + month;
  676. var MON = GLB_MONTH_IN_YEAR[month-1];
  677. var DD = (("" + day).length == 1) ? "0" + day : "" + day;
  678. var DAY = GLB_DAY_IN_WEEK[dayInWeek];
  679. var HH = (("" + hour12).length == 1) ? "0" + hour12 : "" + hour12;
  680. var hh = (("" + hour24).length == 1) ? "0" + hour24 : "" + hour24;
  681. var mm = (("" + min).length == 1) ? "0" + min : "" + min;
  682. var ss = (("" + sec).length == 1) ? "0" + sec : "" + sec;
  683. var SS = "" + this.getMilliseconds();
  684. var a = (a == 0) ? "AM" : "PM";
  685. var dateStr;
  686. var index = -1;
  687. if (typeof(pPattern) == "undefined") {
  688. dateStr = "YYYYMMDD";
  689. } else {
  690. dateStr = pPattern;
  691. }
  692. dateStr = dateStr.replace(/a/g, a);
  693. dateStr = dateStr.replace(/YYYY/g, YYYY);
  694. dateStr = dateStr.replace(/YY/g, YY);
  695. dateStr = dateStr.replace(/MM/g, MM);
  696. dateStr = dateStr.replace(/MON/g, MON);
  697. dateStr = dateStr.replace(/DD/g, DD);
  698. dateStr = dateStr.replace(/DAY/g, DAY);
  699. dateStr = dateStr.replace(/hh/g, hh);
  700. dateStr = dateStr.replace(/HH/g, HH);
  701. dateStr = dateStr.replace(/mm/g, mm);
  702. dateStr = dateStr.replace(/ss/g, ss);
  703. return dateStr;
  704. }
  705. function rpdfCheckDateTime(pDateString, pFormat)
  706. {
  707. var dt = pDateString.rpdfToDate(pFormat).rpdfFormat(pFormat);
  708. return (pDateString == dt);
  709. }
  710. //화면에서 multilinegrid의 마스터 Detail관계 설정
  711. /*
  712. pGrid_name : Grid id명
  713. pMaster_Grid : pGrid_name의 마스터 Grid id명
  714. pSubmit_Id : pGrid_name을 조회할 Submit id
  715. pSave_Yn : pGrid_name 저장여부("Y","N")
  716. pSelectionMode : pGrid_name 의 선택모드 "free", "byrow", "bycol"..
  717. */
  718. function fmisfMsterDetailSet(pGrid_name, pMaster_Grid, pSubmit_Id, pSave_Yn, pSelectionMode)
  719. {
  720. var current_gridnode = MASTDETAIL_NODE + "/" + pGrid_name.attribute("id");
  721. model.makeNode(MASTDETAIL_NODE);
  722. model.makeNode(current_gridnode);
  723. model.makeNode(current_gridnode + "/current");
  724. model.makeNode(current_gridnode + "/master");
  725. model.makeNode(current_gridnode + "/submit");
  726. model.makeNode(current_gridnode + "/saveyn");
  727. model.setValue(current_gridnode + "/current", pGrid_name.attribute("id"));
  728. if (pMaster_Grid == null) {
  729. model.setValue(current_gridnode + "/master", "");
  730. }
  731. else {
  732. model.setValue(current_gridnode + "/master", pMaster_Grid.attribute("id"));
  733. }
  734. model.setValue(current_gridnode + "/submit", pSubmit_Id);
  735. model.setValue(current_gridnode + "/saveyn", pSave_Yn);
  736. if(pSelectionMode != null)
  737. {
  738. pGrid_name.focusColor = "#ccffff";
  739. }
  740. else
  741. {
  742. pGrid_name.focusColor = "#ccffff";
  743. }
  744. }
  745. //Grid 입력,삭제 처리.
  746. /*
  747. pGrid_Name : 입력,삭제할 multilinegrid id명
  748. pIAD_Flag : 행추가,행삽입,행삭제 여부("A","I","D")
  749. pRefresh_Flag : 행추가, 삽입후 misfGridDefaultSet (Default 값 셋팅 유무 Y, N ) default : Y(사용)
  750. */
  751. function fmisfGridIUD(pGrid_Name, pIAD_Flag, pRefresh_Flag ) {
  752. model.setfocus(pGrid_Name.attribute("id"));
  753. if (pIAD_Flag == "I")
  754. {
  755. pGrid_Name.insertRow(pGrid_Name.row, "below", false);
  756. pGrid_Name.select(pGrid_Name.row, pGrid_Name.col) = true;
  757. }
  758. else if (pIAD_Flag == "D")
  759. {
  760. var sRowIdxes = "";
  761. var iSelectedCnt = pGrid_Name.selectedCells.length;
  762. for(var i=0; i<iSelectedCnt; i++)
  763. {
  764. var iRowIdx = pGrid_Name.selectedCells.item(i).row;
  765. if(!misfGetRowIdxExists(sRowIdxes, iRowIdx)) continue;
  766. sRowIdxes = sRowIdxes + iRowIdx + ",";
  767. if (pGrid_Name.rowstatus(iRowIdx) == 4)
  768. {
  769. pGrid_Name.removeStatus(iRowIdx,"delete");
  770. }
  771. else
  772. {
  773. if (misfCheckDeleteYN(pGrid_Name) == "Y")
  774. {
  775. // 1 : 초기 insert 한상태, 3 : insert한 Row를 Edit 한경우 3으로 변경됨
  776. if(pGrid_Name.rowstatus(iRowIdx) == 1 || pGrid_Name.rowstatus(iRowIdx) == 3)
  777. {
  778. pGrid_Name.deleteRow(pGrid_Name.row, false);
  779. if(i+1 == iSelectedCnt) pGrid_Name.select(pGrid_Name.row, pGrid_Name.col) = true;
  780. }
  781. else
  782. {
  783. pGrid_Name.addStatus(iRowIdx,"delete");
  784. }
  785. }
  786. else
  787. {
  788. messageBox("세부내역이 존재 하므로 삭제 ", "E001");
  789. }
  790. }
  791. }
  792. }
  793. else if (pIAD_Flag == "A") {
  794. pGrid_Name.addRow(false);
  795. pGrid_Name.select(pGrid_Name.row, pGrid_Name.col) = true;
  796. // pGrid_Name.refresh();
  797. }
  798. if ( pRefresh_Flag != "N" ) {
  799. if (pIAD_Flag == "A" || pIAD_Flag == "I") {
  800. // pGrid_Name.dispatch("onrowchanged");
  801. misfGridDefaultSet(pGrid_Name);
  802. pGrid_Name.col = 1;
  803. }
  804. }
  805. }
  806. function rpdfSetControlByJobRespCd(sControlNames, sJobRespCd, sDutUnitcd)
  807. {
  808. if(sJobRespCd != null && sJobRespCd != "")
  809. {
  810. JOB_RESP_CD = sJobRespCd;
  811. }
  812. if(sDutUnitcd != null && sDutUnitcd != "")
  813. {
  814. DUT_UNIT_CD = sDutUnitcd;
  815. }
  816. var arrCtrlNms = sControlNames.split(",");
  817. var objCtrls = "";
  818. var sDutyRespYn = ""; // 복무 책임자
  819. var sDutyPartYn = ""; // 인사 복무 담당자
  820. if(instance1.selectNodes("/root/main/authlist/auth").length > 0)
  821. {
  822. sDutyRespYn = model.getValue("/root/main/authlist/auth/dutyresp");
  823. sDutyPartYn = model.getValue("/root/main/authlist/auth/insaduty");
  824. }
  825. else
  826. {
  827. sDutyRespYn = "N";
  828. sDutyPartYn = "N";
  829. }
  830. for(var i=0; i<arrCtrlNms.length; i++)
  831. {
  832. objCtrls = document.controls(arrCtrlNms[i]);
  833. // 권한이 UM, 팀장, JM, 복무책임자, 인사담당자
  834. if(JOB_RESP_CD == "1901" || JOB_RESP_CD == "1070" || JOB_RESP_CD == "1907" || JOB_RESP_CD == "1080" || JOB_RESP_CD == "2430" ||
  835. DUTY_PART_YN == "Y" || DUTY_RESP_YN == "Y")
  836. {
  837. objCtrls.disabled = false;
  838. }
  839. else
  840. {
  841. objCtrls.disabled = true;
  842. }
  843. /*
  844. if(sDutyPartYn == "Y")
  845. {
  846. objCtrls.disabled = false;
  847. }
  848. */
  849. }
  850. }
  851. function rpdfSetDutUnitCombo()
  852. {
  853. if(instance1.selectNodes("/root/init/combocd/combocodelist").length == 0)
  854. {
  855. model.makeValue("/root/init/cmb_dutplce/combocodelist/cdid", model.getValue("/root/temp/userinfo/dutunitcd"));
  856. model.makeValue("/root/init/cmb_dutplce/combocodelist/cdnm", model.getValue("/root/temp/userinfo/dutunitnm"));
  857. }
  858. else
  859. {
  860. var bAdd = true;
  861. var iStartIdx = 1;
  862. for(var i=1; i<=instance1.selectNodes("/root/init/combocd/combocodelist").length; i++)
  863. {
  864. if(model.getValue("/root/init/combocd/combocodelist[" + i + "]/cdid") == model.getValue("/root/temp/userinfo/dutunitcd")) bAdd = false;
  865. }
  866. var DUT_UNIT_CD = model.getValue("/root/temp/userinfo/dutunitcd")
  867. // var nodes = instance1.selectNodes("/root/init/combocd/combocodelist[cdid=" + DUT_UNIT_CD + "]/cdid");
  868. // var node = nodes.nextNode();
  869. // if(node.length == 1) bAdd = false;
  870. if(bAdd)
  871. {
  872. if(DUT_UNIT_CD != "")
  873. {
  874. iStartIdx++;
  875. model.makeValue("/root/init/cmb_dutplce/combocodelist/cdid", model.getValue("/root/temp/userinfo/dutunitcd"));
  876. model.makeValue("/root/init/cmb_dutplce/combocodelist/cdnm", model.getValue("/root/temp/userinfo/dutunitnm"));
  877. }
  878. }
  879. for(var i=iStartIdx; i<=instance1.selectNodes("/root/init/combocd/combocodelist").length; i++)
  880. {
  881. model.makeValue("/root/init/cmb_dutplce/combocodelist[" + i + "]/cdid", model.getValue("/root/init/combocd/combocodelist[" + i + "]/cdid"));
  882. model.makeValue("/root/init/cmb_dutplce/combocodelist[" + i + "]/cdnm", model.getValue("/root/init/combocd/combocodelist[" + i + "]/cdnm"));
  883. }
  884. }
  885. model.removenode("/root/init/combocd");
  886. model.removenode("/root/init/temp");
  887. }
  888. function rpdfSetControlAuth()
  889. {
  890. if(getUserInfo("dutplceinstcd") == "001" && DUTY_PART_YN == "Y")
  891. {
  892. cmb_instcd.disabled = false;
  893. cmb_dutplce.visible = false;
  894. ipt_dutdeptcd.disabled = false;
  895. ipt_dutdeptnm.disabled = false;
  896. btn_dutdept.disabled = false;
  897. }
  898. else if(getUserInfo("dutplceinstcd") != "001" && DUTY_PART_YN == "Y")
  899. {
  900. cmb_instcd.disabled = true;
  901. cmb_dutplce.visible = false;
  902. ipt_dutdeptcd.disabled = false;
  903. ipt_dutdeptnm.disabled = false;
  904. btn_dutdept.disabled = false;
  905. }
  906. else
  907. {
  908. cmb_instcd.disabled = true;
  909. cmb_dutplce.visible = true;
  910. ipt_dutdeptcd.disabled = true;
  911. ipt_dutdeptnm.disabled = true;
  912. btn_dutdept.disabled = true;
  913. }
  914. }
  915. function rpdfSetControlAuthDuty()
  916. {
  917. if(DUTY_PART_YN == "Y")
  918. {
  919. cmb_instcd.disabled = false;
  920. ipt_dutdeptcd.disabled = false;
  921. ipt_dutdeptnm.disabled = false;
  922. btn_dutdept.disabled = false;
  923. ipt_emplno.disabled = false;
  924. btn_help.disabled = false;
  925. ipt_emplnm.disabled = false;
  926. }
  927. else
  928. {
  929. cmb_instcd.disabled = true;
  930. ipt_dutdeptcd.disabled = true;
  931. ipt_dutdeptnm.disabled = true;
  932. btn_dutdept.disabled = true;
  933. ipt_emplno.disabled = true;
  934. btn_help.disabled = true;
  935. ipt_emplnm.disabled = true;
  936. }
  937. }
  938. //콤보에 부서코드세팅
  939. //pcontrol_name : 세팅될 컨트롤 명
  940. //pall : 콤보에 세팅값에 전체항목 추가 'null' or 'Y' 일시 '전체' 셋팅
  941. function rpdfDeptComboCdList(pcontrol_name, pall)
  942. {
  943. var control_id = pcontrol_name.attribute("id");
  944. var comcd_node = "/root/send/comcdref";
  945. var comcd_rsltnode = "/root/init/combocd";
  946. var comcd_itemset = "/root/init/" + control_id;
  947. var comcd_tempnode = "/root/init/temp";
  948. model.removeNodeset(comcd_node);
  949. model.removeNodeset(comcd_itemset);
  950. model.removeNodeSet(comcd_tempnode);
  951. model.makeNode(comcd_node);
  952. model.makeNode(comcd_node + "/cdid");
  953. model.makeNode(comcd_node + "/cdnm");
  954. model.makeNode(comcd_node + "/refcond");
  955. model.makeNode(comcd_rsltnode);
  956. model.makeNode(comcd_itemset);
  957. model.makeNode(comcd_tempnode);
  958. pcontrol_name.choices.itemset.attribute("nodeset") = comcd_itemset+"/combocodelist";
  959. pcontrol_name.choices.itemset.label.attribute("ref") = "cdnm";
  960. pcontrol_name.choices.itemset.value.attribute("ref") = "cdid";
  961. model.setValue(comcd_node + "/cdid", "%");
  962. model.setValue(comcd_node + "/cdnm", "%");
  963. model.makeValue(comcd_node + "/userid", getUserInfo("userid"));
  964. model.makeValue(comcd_node + "/instcd", getUserInfo("dutplceinstcd"));
  965. model.removeChild("TRRPD12002");
  966. model.createChild("xforms:submission", "id:TRRPD12002;mediatype:application/x-www-form-urlencoded; method:post; ref:" + comcd_node + "; resultref:" + comcd_rsltnode + "; ");
  967. submit("TRRPD12002");
  968. if(pall != null && pall == "Y")
  969. {
  970. model.copyNode(comcd_tempnode, comcd_rsltnode);
  971. model.makeValue(comcd_rsltnode + "/combocodelist[" + 1 + "]/cdnm", " 전체 ");
  972. model.makeValue(comcd_rsltnode + "/combocodelist[" + 1 + "]/cdid", "");
  973. sourcenode = document.models(0).instances(0).selectSingleNode(comcd_tempnode);
  974. tarnode = document.models(0).instances(0).selectSingleNode(comcd_rsltnode);
  975. cnt = 1;
  976. var sourcenodelist = sourcenode.childNodes;
  977. while (childNode = sourcenodelist.nextNode())
  978. {
  979. model.makeValue(comcd_rsltnode + "/combocodelist[" + (cnt + 1) + "]/cdnm", childNode.getXPathString(comcd_tempnode + "/combocodelist[" + cnt + "]/cdnm"));
  980. model.makeValue(comcd_rsltnode + "/combocodelist[" + (cnt + 1) + "]/cdid", childNode.getXPathString(comcd_tempnode + "/combocodelist[" + cnt + "]/cdid"));
  981. cnt++;
  982. }
  983. }
  984. model.refresh();
  985. }