SPMRI05000.xjs 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/**
  3. * 2010.02.18 dhkim 신규 작성
  4. * SPMRI05000_기록일자확인.xrw
  5. */
  6. var readAllDeptcd = "3230000000";//의료정보팀
  7. /**
  8. * 2010.02.18 dhkim
  9. * 초기화
  10. */
  11. function fInit(){
  12. ivw_loader.fInitPage(true, true, parseInt(ivw_loader.attribute("height")));
  13. ivw_loader.afterSaveExeFuncNm = "fAfterSaveRec";
  14. //임시저장, 새이름으로저장, 초기화 버튼 hidden
  15. ivw_loader.btn_tmpsave.visible = false;
  16. ivw_loader.btn_init.visible = false;
  17. ivw_loader.btn_signsaveasnew.visible = false;
  18. ds_cond.clear();
  19. ds_cond.addColumn("userid","string");
  20. dsf_makeValue(ds_cond,"cnfmstat","string", "100");
  21. //부서코드리스트 정보 조회
  22. ds_init_orddept.clear();
  23. //model.removenode("/root/init/orddept");
  24. //model.makeNode("/root/init/orddept");
  25. var oParam = {};
  26. oParam.id = "TRMRI05003";
  27. oParam.service = "recmngtapp.NotiMngt";
  28. oParam.method = "reqGetNotiDeptInfo";
  29. oParam.inds = "";
  30. oParam.outds = "ds_init_orddept=dept";
  31. oParam.async = false;
  32. oParam.callback = "cf_TRMRI05003";
  33. tranf_submit(oParam);
  34. if(arErrorCode.pop("TRMRI05003") < 0){
  35. sysf_messageBox("알림부서조회를 실패하였습니다.", "E");
  36. return;
  37. }else{
  38. dsf_addDsItem(ds_init_orddept, "deptcd", "deptnm", "전체", "", "above" )
  39. //addComboItem("cmb_orddept", "전체", "", "above");
  40. }
  41. if(ds_init_orddept.rowcount > 0){
  42. if(ds_init_orddept.lookup("deptcd" , sysf_getUserInfo("dutplcecd") , "deptcd") == sysf_getUserInfo("dutplcecd")){
  43. dsf_makeValue(ds_cond,"deptcd", "string", sysf_getUserInfo("dutplcecd"));
  44. }else{
  45. dsf_makeValue(ds_cond,"deptcd", "string", ds_init_orddept.getColumn(0,"deptcd"));
  46. }
  47. var deptcd = ds_cond.getColumn(0,"deptcd");
  48. //사용자정보조회
  49. fGetUserInfo(deptcd);
  50. }
  51. //로그인 사용자가 의료정보팀인 경우는 부서/사용자콤보 활성화
  52. if(sysf_getUserInfo("dutplcecd") == readAllDeptcd){
  53. group3.cmb_orddept.enable = true;
  54. // cmb_user.disabled = false;
  55. }else{
  56. group3.cmb_orddept.enable = false;
  57. // cmb_user.disabled = true;
  58. }
  59. }
  60. function cf_TRMRI05003(sSvcId, nErrorCode, sErrorMsg) {
  61. arErrorCode.push(sSvcId, nErrorCode);
  62. }
  63. /**
  64. * 2010.02.18 dhkim
  65. * 사용자리스트조회
  66. */
  67. function fGetUserInfo(deptcd){
  68. ds_init_userlist.clear();
  69. //model.removenode("/root/init/userinfo");
  70. //model.makeNode("/root/init/userinfo");
  71. ds_send.clear();
  72. dsf_makeValue(ds_send,"deptcd","string", deptcd);
  73. var oParam = {};
  74. oParam.id = "TRMRI05004";
  75. oParam.service = "recmngtapp.NotiMngt";
  76. oParam.method = "reqGetNotiUserInfo";
  77. oParam.inds = "req=ds_send";
  78. oParam.outds = "ds_init_userlist=userlist";
  79. oParam.async = false;
  80. oParam.callback = "cf_TRMRI05004";
  81. tranf_submit(oParam);
  82. if(arErrorCode.pop("TRMRI05004") < 0){
  83. sysf_messageBox("알림사용자조회를 실패하였습니다.", "E");
  84. return;
  85. }else{
  86. addComboItem("cmb_user", "전체", "", "above");
  87. dsf_addDsItem(ds_init_userlist, "userid", "usernm", "전체", "", "above" )
  88. }
  89. if(ds_init_userlist.rowcount > 0){
  90. if(ds_init_userlist.lookup("userid", sysf_getUserInfo("userid"),"userid") == sysf_getUserInfo("userid")){
  91. dsf_makeValue(ds_cond,"userid","string", sysf_getUserInfo("userid"));
  92. }else{
  93. dsf_makeValue(ds_cond,"userid","string", ds_init_userlist.getColumn(0,"userid"));
  94. }
  95. }
  96. //의료정보팀이 아닐때 사번이 조건에 없으면 조회안함
  97. //if(getUserInfo("dutplcecd") != readAllDeptcd && model.getValue("/root/main/cond/userid") == ""){
  98. fGetMaster();
  99. //}
  100. }
  101. function cf_TRMRI05004(sSvcId, nErrorCode, sErrorMsg) {
  102. arErrorCode.push(sSvcId, nErrorCode);
  103. }
  104. function fGetMaster(){
  105. //master내역 조회
  106. ds_notidetaillist.clear();
  107. var oParam = {};
  108. oParam.id = "TRMRI05001";
  109. oParam.service = "recmngtapp.NotiMngt";
  110. oParam.method = "reqGetNotiMasterInfo";
  111. oParam.inds = "";
  112. oParam.outds = "ds_notimasterlist=notimasterlist";
  113. oParam.async = false;
  114. oParam.callback = "cf_TRMRI05001";
  115. tranf_submit(oParam);
  116. if(arErrorCode.pop("TRMRI05001") < 0){
  117. sysf_messageBox("알림내역조회를 실패하였습니다.", "E");
  118. return;
  119. }else{
  120. //model.removenode("/root/main/cnts");
  121. //model.removenode("/root/main/title");
  122. group3.txt_cnts.value = ds_notimasterlist.getColumn(0,"cnts");
  123. group3.input2.value = ds_notimasterlist.getColumn(0,"title");
  124. //model.makeValue("/root/main/cnts", model.getValue("/root/main/notimasterinfo/notimasterlist/cnts"));
  125. //model.makeValue("/root/main/title", model.getValue("/root/main/notimasterinfo/notimasterlist/title"));
  126. fGetDetail();
  127. // hei:740 wid:597
  128. }
  129. }
  130. function cf_TRMRI05001(sSvcId, nErrorCode, sErrorMsg) {
  131. arErrorCode.push(sSvcId, nErrorCode);
  132. }
  133. /**
  134. * 2010.02.18 dhkim
  135. * 상세내역조회
  136. */
  137. function fGetDetail(){
  138. var noticd = ds_notimasterlist.getColumn(0,"noticd");
  139. if(utlf_isNull(noticd)){
  140. sysf_messageBox("알림코드는 필수입니다.", "E");
  141. return;
  142. }
  143. var notideptcd = ds_cond.getColumn(0,"deptcd");
  144. var notiuserid = ds_cond.getColumn(0,"userid");
  145. var cnfmstat = ds_cond.getColumn(0,"cnfmstat");
  146. //detail내역 조회
  147. ds_send.clear();
  148. dsf_makeValue(ds_send,"noticd","string" , noticd);
  149. dsf_makeValue(ds_send,"notideptcd", "string" ,notideptcd);
  150. dsf_makeValue(ds_send,"notiuserid", "string" ,notiuserid);
  151. dsf_makeValue(ds_send,"cnfmstat", "string" ,cnfmstat);
  152. ds_notidetaillist.clear();
  153. var oParam = {};
  154. oParam.id = "TRMRI05002";
  155. oParam.service = "recmngtapp.NotiMngt";
  156. oParam.method = "reqGetNotiDetailInfo";
  157. oParam.inds = "req=ds_send";
  158. oParam.outds = "ds_notidetaillist=notidetaillist";
  159. oParam.async = false;
  160. oParam.callback = "cf_TRMRI05002";
  161. tranf_submit(oParam);
  162. if(arErrorCode.pop("TRMRI05002") < 0){
  163. sysf_messageBox("알림상세내역조회를 실패하였습니다.", "E");
  164. return;
  165. }
  166. }
  167. function cf_TRMRI05002(sSvcId, nErrorCode, sErrorMsg) {
  168. arErrorCode.push(sSvcId, nErrorCode);
  169. }
  170. /**
  171. * 2010.02.18 dhkim
  172. * 수정모드로 기록 열기
  173. */
  174. function fOpenRecEditMode(grdrow, dblclick){
  175. var formrecseq = ds_notidetaillist.getColumn(grdrow, "formrecseq");
  176. var cnfmstat = ds_notidetaillist.getColumn(grdrow, "cnfmstat");
  177. var pid = ds_notidetaillist.getColumn(grdrow, "pid");
  178. var orddd= ds_notidetaillist.getColumn(grdrow, "orddd");
  179. var cretno= ds_notidetaillist.getColumn(grdrow, "cretno");
  180. var ioflag = ds_notidetaillist.getColumn(grdrow, "ioflag");
  181. var orddeptcd= ds_notidetaillist.getColumn(grdrow, "orddeptcd");
  182. var orddrid= ds_notidetaillist.getColumn(grdrow, "orddrid");
  183. ivw_loader.fSetPamInfo(pid, orddd, cretno, ioflag , orddeptcd, orddrid);
  184. ivw_loader.fLoadRecForm(formrecseq, false);
  185. fHiddenBtn();
  186. if(dblclick){
  187. fOpenRecEditMode(grdrow, false);
  188. }
  189. fAfterOpenRec(formrecseq, cnfmstat);
  190. }
  191. function fHiddenBtn(){
  192. //fLoadRecForm 호출하면서 초기화되어 버튼 hidden 된게 다시 살아나 재호출함.
  193. //임시저장, 새이름으로저장, 초기화 버튼 hidden
  194. ivw_loader.btn_tmpsave.visible = false;
  195. ivw_loader.btn_init.visible = false;
  196. ivw_loader.btn_signsaveasnew.visible = false;
  197. }
  198. function fAfterOpenRec(formrecseq, cnfmstat){
  199. fHiddenBtn();
  200. ds_openrecinfo.clear();
  201. dsf_makeValue(ds_openrecinfo,"formrecseq","string", formrecseq);
  202. if(cnfmstat == "100"){//미확인된 상태만 업데이트
  203. fUpdateCnfmStat(formrecseq, "200");
  204. }
  205. }
  206. function fAfterSaveRec(){
  207. var formrecseq = ds_openrecinfo.getColumn(0,"formrecseq");
  208. fUpdateCnfmStat(formrecseq, "500");
  209. }
  210. function fUpdateCnfmStat(formrecseq, cnfmstat) {
  211. var noticd = ds_notimasterlist.getColumn(0,"noticd");
  212. dsf_makeValue(ds_send_updt,"noticd","string", noticd);
  213. dsf_makeValue(ds_send_updt,"formrecseq", "string",formrecseq);
  214. dsf_makeValue(ds_send_updt,"cnfmstat", "string",cnfmstat);
  215. var oParam = {};
  216. oParam.id = "TXMRI05001";
  217. oParam.service = "recmngtapp.NotiMngt";
  218. oParam.method = "reqExecUpdateCnfmState";
  219. oParam.inds = "req=ds_send_updt";
  220. oParam.outds = "ds_init_userlist=userlist";
  221. oParam.async = false;
  222. oParam.callback = "cf_TXMRI05001";
  223. tranf_submit(oParam);
  224. if (arErrorCode.pop("TXMRI05001") > -1) {
  225. //var node = model.instance1.selectSingleNode("/root/main/notidetailinfo/notidetaillist[noticd='"+noticd+"' and formrecseq = '"+formrecseq+"']");
  226. ds_notidetaillist.filter("noticd=='"+noticd+"' && formrecseq == '"+formrecseq+"'");
  227. ds_notidetaillist.applyChange();
  228. //if(getNodesetCount("/root/main/notidetailinfo/notidetaillist[noticd='"+noticd+"' and formrecseq = '"+formrecseq+"']/cnfmstat") > 0){
  229. if(ds_notidetaillist.rowcount > 0){
  230. //model.setValue("/root/main/notidetailinfo/notidetaillist[noticd='"+noticd+"' and formrecseq = '"+formrecseq+"']/cnfmstat", cnfmstat);
  231. ds_notidetaillist.setColumn(0,"cnfmstat", cnfmstat);
  232. var cnfmstatnm = "";
  233. if (cnfmstat == "200") {
  234. cnfmstatnm = "확인";
  235. } else if (cnfmstat == "500") {
  236. cnfmstatnm = "완료";
  237. }
  238. ds_notidetaillist.setColumn(0,"cnfmstatnm", cnfmstatnm);
  239. ds_notidetaillist.filter("");
  240. }else{
  241. fGetDetail();
  242. }
  243. }
  244. }
  245. function cf_TXMRI05001(sSvcId, nErrorCode, sErrorMsg) {
  246. arErrorCode.push(sSvcId, nErrorCode);
  247. }]]></Script>