SMMSG04100.js 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319
  1. /*
  2. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  3. 진료재료파트 CSR 일일업무일지 ( SMRSG03100_진료재료파트CSR일일업무일지.xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. - Author : 최원돈
  7. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  8. */
  9. var sDYBIZDIARYINFO_PATH = "/root/main/dyBizDiaryinfo";
  10. var sDYBIZDIARYGNRLINFO_PATH = "/root/main/dyBizDiaryinfo/workGnrlinfo";
  11. var sDYBIZDIARYSETLIST_PATH = "/root/main/dyBizDiaryinfo/workSetlist";
  12. /**
  13. * @---------------------------------------------------
  14. * @creat : 20101023
  15. * @author : 최원돈
  16. * @desc : 초기화
  17. * @---------------------------------------------------
  18. */
  19. function fInitialize(){
  20. //그리드 노드 초기화
  21. model.removenode("/root/main/dyBizDiaryinfo");
  22. model.makenode("/root/main/dyBizDiaryinfo");
  23. var pCode = "'T32'"; // 조회할 CdGrupID 코드정보
  24. var pDate = getCurrentDate(); // 조회기준일자
  25. fGetNursHardCdInfo(pCode, pDate); // 간호코드 조회
  26. model.setValue("/root/main/cond/workdd", getCurrentDate());
  27. model.refresh();
  28. fGetdyBizDiaryinfo();
  29. }
  30. /**
  31. * @---------------------------------------------------
  32. * @creat : 20101023
  33. * @author : 최원돈
  34. * @desc : 진료재료파트 체크리스트항목 조회
  35. * @---------------------------------------------------
  36. */
  37. function fGetdyBizDiaryinfo(){
  38. //send parameter 설정
  39. model.removenode("/root/send/reqdata");
  40. model.makeNode("/root/send/reqdata");
  41. model.copyNode("/root/send/reqdata", "/root/main/cond");
  42. //submit 호출
  43. if(!submit("TRMSG04101")){
  44. messageBox("조회를 실패하였습니다.", "E999");
  45. return;
  46. }
  47. var instcd = "";
  48. var dayyn = "";
  49. var eveyn = "";
  50. var lastyn = "";
  51. for(var i = grd_workSetlist.fixedRows; i < grd_workSetlist.rows; i++) {
  52. instcd = grd_workSetlist.valueMatrix(i, grd_workSetlist.colRef("instcd"));
  53. dayyn = grd_workSetlist.valueMatrix(i, grd_workSetlist.colRef("dayyn"));
  54. eveyn = grd_workSetlist.valueMatrix(i, grd_workSetlist.colRef("eveyn"));
  55. lastyn = grd_workSetlist.valueMatrix(i, grd_workSetlist.colRef("lastyn"));
  56. grd_workSetlist.cellstyle("background-color", i, grd_workSetlist.colRef("goodnm") ,i, grd_workSetlist.colRef("remfact")) = "#ffffff";
  57. if(dayyn == "Y") {
  58. grd_workSetlist.cellstyle("background-color", i, grd_workSetlist.colRef("daywardloan") ,i, grd_workSetlist.colRef("daycntmqty")) = "#ffcc99";
  59. } else {
  60. grd_workSetlist.cellstyle("background-color", i, grd_workSetlist.colRef("daywardloan") ,i, grd_workSetlist.colRef("daycntmqty")) = "#ffffff";
  61. }
  62. if(eveyn == "Y") {
  63. grd_workSetlist.cellstyle("background-color", i, grd_workSetlist.colRef("evewardloan") ,i, grd_workSetlist.colRef("evecntmqty")) = "#ffcc99";
  64. } else {
  65. grd_workSetlist.cellstyle("background-color", i, grd_workSetlist.colRef("evewardloan") ,i, grd_workSetlist.colRef("evecntmqty")) = "#ffffff";
  66. }
  67. if(lastyn == "Y") {
  68. grd_workSetlist.cellstyle("background-color", i, grd_workSetlist.colRef("lastwardloan") ,i, grd_workSetlist.colRef("lastcntmqty")) = "#ffcc99";
  69. } else {
  70. grd_workSetlist.cellstyle("background-color", i, grd_workSetlist.colRef("lastwardloan") ,i, grd_workSetlist.colRef("lastcntmqty")) = "#ffffff";
  71. }
  72. if(instcd == "") {
  73. grd_workSetlist.rowStatus(i) = "1";
  74. }
  75. }
  76. createTempNode(); // Temp 노드를 생성한다.
  77. }
  78. /**
  79. * @---------------------------------------------------
  80. * @creat : 20101023
  81. * @author : 최원돈
  82. * @desc : 진료재료파트 체크리스트항목 출력
  83. * @---------------------------------------------------
  84. */
  85. function fPrintdyBizDiaryinfo()
  86. {
  87. if(model.getValue(sDYBIZDIARYSETLIST_PATH + "/instcd") == "") // Empty 체크
  88. {
  89. messageBox('출력할 내역이 없습니다.', 'E999');
  90. return;
  91. }
  92. if(!chkIdenNode("/root/temp", sDYBIZDIARYINFO_PATH)) // 동일여부체크
  93. {
  94. messageBox("입력된 정보가 있어서 출력할 수 없습니다.", "E999");
  95. return;
  96. }
  97. // 기구,SET관리
  98. exeReportPreview("RPMSG04101", "XMLSTR", "", "", "false","","","","","false", "", "");//미리보기
  99. }
  100. /**
  101. * @---------------------------------------------------
  102. * @creat : 20101023
  103. * @author : 최원돈
  104. * @desc : 진료재료파트 체크리스트항목 저장
  105. * @---------------------------------------------------
  106. */
  107. function fClkBtndyBizDiarySave()
  108. {
  109. //if(chkIdenNode("/root/temp", sDYBIZDIARYINFO_PATH)) // 동일여부체크
  110. //{
  111. // messageBox("저장할 데이터가", "I004");
  112. // return;
  113. //}
  114. //model.setValue(sDYBIZDIARYGNRLINFO_PATH + "/writid", getUserId());
  115. model.removeNodeset("/root/difinfo");
  116. model.makeNode("/root/difinfo/workGnrlinfo");
  117. model.makeNode("/root/difinfo/workSetlist");
  118. var nodeworkGnrlinfo = instance1.selectSingleNode("/root/difinfo/workGnrlinfo");
  119. var nodeworkSetlist = instance1.selectSingleNode("/root/difinfo/workSetlist");
  120. //수정 정보 추출
  121. setDifNode("/root/temp", sDYBIZDIARYINFO_PATH, nodeworkGnrlinfo,nodeworkSetlist);
  122. var nodeListGnrlinfo = nodeworkGnrlinfo.childNodes;
  123. var nodeListSetlist = nodeworkSetlist.childNodes;
  124. //send parameter 설정
  125. model.removenode("/root/send/reqdata");
  126. model.makeNode("/root/send/reqdata");
  127. model.copyNode("/root/send/reqdata", "/root/main/cond");
  128. model.removeNodeset("/root/send/savedata");
  129. if ( getGridUpdateData(grd_workSetlist).length == 0 && nodeListGnrlinfo.length == 0 ) {
  130. messageBox("저장할 데이터가", "I004");
  131. return;
  132. }
  133. if (nodeListGnrlinfo.length > 0)
  134. {
  135. model.makeValue("/root/send/savedata/saveGnrldata", getNodeListCSV(nodeListGnrlinfo));
  136. }
  137. if (getGridUpdateData(grd_workSetlist).length > 0 )
  138. {
  139. model.makeValue("/root/send/savedata/saveSetdata", getGridUpdateData(grd_workSetlist));
  140. }
  141. if(!submit("TXMSG04101")){
  142. messageBox("저장을 실패하였습니다.", "E999");
  143. return;
  144. }
  145. fGetdyBizDiaryinfo();
  146. }
  147. /**
  148. * @---------------------------------------------------
  149. * @creat : 20101023
  150. * @author : 최원돈
  151. * @desc : 틀린노드를 저장한다.
  152. * @---------------------------------------------------
  153. */
  154. function setDifNode(desNode, srcNode, nodeworkGnrlinfo, nodeworkSetlist)
  155. {
  156. var node = instance1.selectSingleNode(desNode);
  157. var node2 = instance1.selectSingleNode(srcNode);
  158. var nodeList = node.childNodes;
  159. var nodeList2 = node2.childNodes;
  160. var checkYn = false;
  161. for(var i=0; i<nodeList2.length; i++)
  162. {
  163. var infonode2 = nodeList2.item(i);
  164. var infonodeListChild2 = infonode2.childNodes;
  165. if (nodeList.length <= i)
  166. {
  167. checkYn = true;
  168. }
  169. else
  170. {
  171. var infonode = nodeList.item(i);
  172. var infonodeListChild = infonode.childNodes;
  173. while(infochildNode2 = infonodeListChild2.nextNode())
  174. {
  175. var infochildNode = infonodeListChild.nextNode();
  176. if(infochildNode.NodeValue != infochildNode2.NodeValue)
  177. {
  178. checkYn = true;
  179. break;
  180. }
  181. }
  182. }
  183. if (checkYn)
  184. {
  185. if(infonode2.nodeName == "workGnrlinfo")
  186. {
  187. nodeworkGnrlinfo.appendChild(infonode2);
  188. }
  189. else
  190. {
  191. nodeworkSetlist.appendChild(infonode2);
  192. }
  193. checkYn = false;
  194. }
  195. }
  196. return;
  197. }
  198. /**
  199. * @---------------------------------------------------
  200. * @creat : 20101023
  201. * @author : 최원돈
  202. * @desc : 동일여부를 체크한다.
  203. * @---------------------------------------------------
  204. */
  205. function chkIdenNode(desNode, srcNode)
  206. {
  207. var node = instance1.selectSingleNode(desNode);
  208. var node2 = instance1.selectSingleNode(srcNode);
  209. var nodeList = node.childNodes;
  210. var nodeList2 = node2.childNodes;
  211. var checkYn = false;
  212. for(var i=0; i<nodeList2.length; i++)
  213. {
  214. var infonode2 = nodeList2.item(i);
  215. var infonodeListChild2 = infonode2.childNodes;
  216. if (nodeList.length <= i)
  217. {
  218. return false;
  219. }
  220. else
  221. {
  222. var infonode = nodeList.item(i);
  223. var infonodeListChild = infonode.childNodes;
  224. while(infochildNode2 = infonodeListChild2.nextNode())
  225. {
  226. var infochildNode = infonodeListChild.nextNode();
  227. if(infochildNode.NodeValue != infochildNode2.NodeValue)
  228. {
  229. return false;
  230. }
  231. }
  232. }
  233. }
  234. return true;
  235. }
  236. /**
  237. * @---------------------------------------------------
  238. * @creat : 20110420
  239. * @author : 이경민
  240. * @desc : Temp 노드를 생성한다.
  241. * @---------------------------------------------------
  242. */
  243. function createTempNode()
  244. {
  245. // 일일업무일지_일반정보가 없으면, 임의로 Node를 만든다.
  246. if (instance1.selectNodes(sDYBIZDIARYGNRLINFO_PATH).length <= 0)
  247. {
  248. model.makeValue(sDYBIZDIARYGNRLINFO_PATH + "/workdd" , model.getValue("/root/main/cond/workdd"));
  249. model.makeValue(sDYBIZDIARYGNRLINFO_PATH + "/workseq", 1);
  250. model.makeNode (sDYBIZDIARYGNRLINFO_PATH + "/daycnfmrid" );
  251. model.makeNode (sDYBIZDIARYGNRLINFO_PATH + "/evecnfmrid" );
  252. model.makeNode (sDYBIZDIARYGNRLINFO_PATH + "/cnfmrid");
  253. model.makeNode (sDYBIZDIARYGNRLINFO_PATH + "/remfact");
  254. model.makeNode (sDYBIZDIARYGNRLINFO_PATH + "/instcd" );
  255. model.makeNode (sDYBIZDIARYGNRLINFO_PATH + "/writnm" );
  256. model.makeNode (sDYBIZDIARYGNRLINFO_PATH + "/cnfmrnm");
  257. }
  258. model.removeNodeset("/root/temp");
  259. model.makeNode("/root/temp");
  260. model.copyNode("/root/temp", sDYBIZDIARYINFO_PATH);
  261. model.refresh();
  262. }