SMRSC06000.js 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392
  1. /* ---------------------------------------------------------------------
  2. SMRSC06000_청구자 승인자 등록.xrw (SMRSC06000.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. : Create By Francis Choi
  6. : 2015.05.02
  7. ---------------------------------------------------------------------- */
  8. var gReqFlagPath = "/root/init/reqflag_data";
  9. var gReqFlagCode = "A" + "#" // 의료소모품
  10. + "B" + "#" // 일반소모품
  11. + "C" + "#" // 의료비품
  12. + "D" + "#" // 일반비품
  13. + "E" + "#" // 약품및재료
  14. + "F" + "#" // 제제약품
  15. + "G" + "#" // 장비
  16. + "H" + "#" // 수액
  17. + "I" + "#" // 조영제
  18. + "J" + "#" // 식자재
  19. + "S" + "#" // 수리관리
  20. + "T"; // 프로그램개발
  21. var gReqFlag = gReqFlagCode.split("#");
  22. // --------------------------------------------------
  23. // Initialize 등록 정보
  24. // --------------------------------------------------
  25. function fInitNewReqAprv() {
  26. //화면 Control을 초기화한다
  27. // grp_newdata.disabled = true;
  28. ipt_emplno.disabled = true; // 사원번호
  29. btn_winpsn.disabled = true; // 사원번호 돋보기
  30. btn_save.disabled = true; // 저장버튼
  31. model.setValue(gReqFlagPath + "/instcd" , getUserInfo("dutplceinstcd"));
  32. model.setValue(gReqFlagPath + "/deptcd" , "");
  33. model.setValue(gReqFlagPath + "/deptnm" , "");
  34. model.setValue(gReqFlagPath + "/emplno" , "");
  35. model.setValue(gReqFlagPath + "/emplnonm", "");
  36. model.setValue(gReqFlagPath + "/reqnewyn", "0");
  37. for (var i=0; i < gReqFlag.length; i++){
  38. model.setValue(gReqFlagPath + "/reqflag_" + gReqFlag[i],"");
  39. model.setValue(gReqFlagPath + "/reqaprvflag1_" + gReqFlag[i],"0");
  40. model.setValue(gReqFlagPath + "/reqaprvflag2_" + gReqFlag[i],"0");
  41. model.setValue(gReqFlagPath + "/reqaprvflag4_" + gReqFlag[i],"0");
  42. model.setValue(gReqFlagPath + "/reqaprvflag1_" + gReqFlag[i]+"_OLD","0");
  43. model.setValue(gReqFlagPath + "/reqaprvflag2_" + gReqFlag[i]+"_OLD","0");
  44. model.setValue(gReqFlagPath + "/reqaprvflag4_" + gReqFlag[i]+"_OLD","0");
  45. }
  46. }
  47. function fButtonBlocking(pFlag) {
  48. if (pFlag == "2") {
  49. ipt_emplno.disabled = false; // 사원번호
  50. btn_winpsn.disabled = false; // 사원번호 돋보기
  51. btn_save.disabled = false; // 저장버튼
  52. } else {
  53. ipt_emplno.disabled = true; // 사원번호
  54. btn_winpsn.disabled = true; // 사원번호 돋보기
  55. btn_save.disabled = true; // 저장버튼
  56. fInitNewReqAprv();
  57. }
  58. ipt_deptcd.disabled = true ;
  59. ipt_deptnm.disabled = true ;
  60. }
  61. function fChangeRefFlag(pFlag) {
  62. if (model.getValue(gReqFlagPath + "/reqnewyn") != "9") {
  63. model.setValue(gReqFlagPath + "/reqnewyn", "1");
  64. }
  65. //
  66. if (eval("chk_reqflag_"+pFlag).value == "") {
  67. model.setValue(gReqFlagPath + "/reqflag_" + pFlag, "");
  68. model.setValue(gReqFlagPath + "/reqaprvflag1_" + pFlag, "0");
  69. model.setValue(gReqFlagPath + "/reqaprvflag2_" + pFlag, "0");
  70. model.setValue(gReqFlagPath + "/reqaprvflag4_" + pFlag, "0");
  71. } else {
  72. model.setValue(gReqFlagPath + "/reqaprvflag1_" + pFlag, "1");
  73. model.setValue(gReqFlagPath + "/reqaprvflag2_" + pFlag, "1");
  74. model.setValue(gReqFlagPath + "/reqaprvflag4_" + pFlag, "1");
  75. }
  76. eval("chk_reqflag_" +pFlag).refresh(); // 청구구분
  77. eval("rdo_reqaprvflag1_"+pFlag).refresh(); // 승인구분
  78. eval("rdo_reqaprvflag2_"+pFlag).refresh(); // 승인구분
  79. eval("rdo_reqaprvflag4_"+pFlag).refresh(); // 승인구분
  80. }
  81. function fChangeReqaprvflag(pFlag) {
  82. //
  83. if (model.getValue(gReqFlagPath + "/reqaprvflag1_" + pFlag) == "0" &&
  84. model.getValue(gReqFlagPath + "/reqaprvflag2_" + pFlag) == "0" &&
  85. model.getValue(gReqFlagPath + "/reqaprvflag4_" + pFlag) == "0" ) {
  86. model.setValue(gReqFlagPath + "/reqflag_" + pFlag, "");
  87. } else {
  88. model.setValue(gReqFlagPath + "/reqflag_" + pFlag, pFlag);
  89. }
  90. eval("chk_reqflag_" +pFlag).refresh(); // 청구구분
  91. }
  92. function fTitleChange() {
  93. //
  94. var vTitle1 = "청구부서";
  95. var vTitle2 = "사원번호";
  96. if (rdo_sortflag.value == "2") {
  97. vTitle1 = "사원번호";
  98. vTitle2 = "청구부서";
  99. }
  100. grd_reqpsnlist.valueMatrix(0,1) = vTitle1;
  101. grd_reqpsnlist.valueMatrix(0,2) = vTitle1;
  102. grd_reqpsnlist.valueMatrix(1,1) = vTitle1;
  103. grd_reqpsnlist.valueMatrix(1,2) = vTitle1;
  104. grd_reqpsnlist.valueMatrix(0,3) = vTitle2;
  105. grd_reqpsnlist.valueMatrix(0,4) = vTitle2;
  106. grd_reqpsnlist.valueMatrix(1,3) = vTitle2;
  107. grd_reqpsnlist.valueMatrix(1,4) = vTitle2;
  108. grd_reqpsnlist.refresh();
  109. }
  110. // --------------------------------------------------------------
  111. // 화면 open시와 초기화 버튼 클릭시 화면 초기화 기능을 수행한다.
  112. // --------------------------------------------------------------
  113. function fInitialize() {
  114. misfGridInit(grd_reqpsnlist); //그리드 초기화
  115. model.resetInstanceNode("/root/send");
  116. misfMsterDetailSet(grd_reqpsnlist, null, "TRRSC06002","Y"); //마스터 설정
  117. model.setValue(opt_instcd.attribute("ref") , getUserInfo("dutplceinstcd")); // 기관코드
  118. model.setValue(opt_instcdnm.attribute("ref") , getUserInfo("dutplceinstnm")); // 기관명칭
  119. model.setValue(ipt_reqdeptcd.attribute("ref") , getUserInfo("dutplcecd")); // 부서코드
  120. model.setValue(ipt_reqdeptnm.attribute("ref") , getUserInfo("dutplcenm")); // 부서명칭
  121. // model.setValue(ipt_search_emplno.attribute("ref") , getUserInfo("userid")); // 사용자
  122. // model.setValue(ipt_search_emplnonm.attribute("ref") , getUserInfo("usernm")); // 사용자명칭
  123. rszfReqFlagComboComCdList(getUserInfo("userid"), cmb_reqflag, "Y", opt_instcd.value); //청구구분
  124. grd_reqpsnlist.colDisabled(grd_reqpsnlist.colRef("reqflag" )) = true;
  125. grd_reqpsnlist.colDisabled(grd_reqpsnlist.colRef("reqaprvflag1")) = true;
  126. grd_reqpsnlist.colDisabled(grd_reqpsnlist.colRef("reqaprvflag1")+1)= true;
  127. grd_reqpsnlist.colDisabled(grd_reqpsnlist.colRef("reqaprvflag2")) = true;
  128. grd_reqpsnlist.colDisabled(grd_reqpsnlist.colRef("reqaprvflag2")+1)= true;
  129. grd_reqpsnlist.colDisabled(grd_reqpsnlist.colRef("reqaprvflag4")) = true;
  130. grd_reqpsnlist.colDisabled(grd_reqpsnlist.colRef("reqaprvflag4")+1)= true;
  131. model.refresh();
  132. rdo_sortflag.select(0);
  133. // btn_search.dispatch("DOMActivate");
  134. }
  135. //Grid Click
  136. function DataGridClick(){
  137. if (grd_reqpsnlist.row < 2) {
  138. return;
  139. }
  140. // 사번 CHECK
  141. if (model.getValue(gReqFlagPath + "/emplno") ==
  142. model.getValue(grd_reqpsnlist.nodeset+"["+(grd_reqpsnlist.row-1)+"]/emplno") &&
  143. model.getValue(gReqFlagPath + "/deptcd") ==
  144. model.getValue(grd_reqpsnlist.nodeset+"["+(grd_reqpsnlist.row-1)+"]/reqdeptcd")) {
  145. return;
  146. }
  147. // 신규 추가 작업중
  148. if (model.getValue(gReqFlagPath + "/reqnewyn") != "0") {
  149. var ret = messageBox("작업중인 내용이 있습니다. ","Q003");
  150. if (ret != 6) { // not OK
  151. return;
  152. }
  153. }
  154. // 화면 Control을 초기화한다
  155. // grp_newdata.disabled = false;
  156. ipt_emplno.disabled = true; // 사원번호
  157. btn_winpsn.disabled = true; // 사원번호 돋보기
  158. btn_save.disabled = false; // 저장버튼
  159. var Idx = grd_reqpsnlist.row - 1;
  160. var Idx2 = grd_reqpsnlist.row - 1;
  161. var vInstcd = model.getValue(grd_reqpsnlist.nodeset+"["+ Idx +"]/instcd" );
  162. var vReqdeptcd = model.getValue(grd_reqpsnlist.nodeset+"["+ Idx +"]/reqdeptcd");
  163. var vEmplno = model.getValue(grd_reqpsnlist.nodeset+"["+ Idx +"]/emplno" );
  164. model.setValue(gReqFlagPath + "/instcd" , vInstcd );
  165. model.setValue(gReqFlagPath + "/deptcd" , vReqdeptcd);
  166. model.setValue(gReqFlagPath + "/emplno" , vEmplno );
  167. model.setValue(gReqFlagPath + "/deptnm" , model.getValue(grd_reqpsnlist.nodeset+"["+ Idx +"]/reqdeptnm"));
  168. model.setValue(gReqFlagPath + "/emplnonm", model.getValue(grd_reqpsnlist.nodeset+"["+ Idx +"]/emplnonm" ));
  169. model.setValue(gReqFlagPath + "/reqnewyn", "0");
  170. for (var i=0; i < gReqFlag.length; i++){
  171. if (gReqFlag[i] == model.getValue(grd_reqpsnlist.nodeset+ "["+ Idx2 +"]/reqflag")) {
  172. break;
  173. }
  174. Idx--;
  175. }
  176. // alert(Idx2+"=="+Idx);
  177. //
  178. for (var i=0; i < gReqFlag.length; i++){
  179. var d_testgReqFlag = gReqFlag[i];
  180. var d_testreqflag = model.getValue(grd_reqpsnlist.nodeset+ "["+ Idx +"]/reqflag");
  181. if( gReqFlag[i] == model.getValue(grd_reqpsnlist.nodeset+ "["+ Idx +"]/reqflag") ) {
  182. model.setValue(gReqFlagPath + "/reqflag_" + gReqFlag[i], "");
  183. if (model.getValue(grd_reqpsnlist.nodeset + "["+ Idx +"]/reqaprvflag1")!="0" ||
  184. model.getValue(grd_reqpsnlist.nodeset + "["+ Idx +"]/reqaprvflag2")!="0" ||
  185. model.getValue(grd_reqpsnlist.nodeset + "["+ Idx +"]/reqaprvflag4")!="0" ) {
  186. var d_reqflag = model.getValue(grd_reqpsnlist.nodeset+ "["+ Idx +"]/reqflag");
  187. model.setValue(gReqFlagPath + "/reqflag_" + gReqFlag[i], model.getValue(grd_reqpsnlist.nodeset+ "["+ Idx +"]/reqflag"));
  188. }
  189. var d_reqaprvflag1 = model.getValue(grd_reqpsnlist.nodeset+ "["+ Idx +"]/reqaprvflag1");
  190. var d_reqaprvflag2 = model.getValue(grd_reqpsnlist.nodeset+ "["+ Idx +"]/reqaprvflag2");
  191. var d_reqaprvflag4 = model.getValue(grd_reqpsnlist.nodeset+ "["+ Idx +"]/reqaprvflag4");
  192. model.setValue(gReqFlagPath + "/reqaprvflag1_" + gReqFlag[i] , model.getValue(grd_reqpsnlist.nodeset+ "["+ Idx +"]/reqaprvflag1"));
  193. model.setValue(gReqFlagPath + "/reqaprvflag2_" + gReqFlag[i] , model.getValue(grd_reqpsnlist.nodeset+ "["+ Idx +"]/reqaprvflag2"));
  194. model.setValue(gReqFlagPath + "/reqaprvflag4_" + gReqFlag[i] , model.getValue(grd_reqpsnlist.nodeset+ "["+ Idx +"]/reqaprvflag4"));
  195. model.setValue(gReqFlagPath + "/reqaprvflag1_" + gReqFlag[i]+"_OLD", model.getValue(grd_reqpsnlist.nodeset+ "["+ Idx +"]/reqaprvflag1"));
  196. model.setValue(gReqFlagPath + "/reqaprvflag2_" + gReqFlag[i]+"_OLD", model.getValue(grd_reqpsnlist.nodeset+ "["+ Idx +"]/reqaprvflag2"));
  197. model.setValue(gReqFlagPath + "/reqaprvflag4_" + gReqFlag[i]+"_OLD", model.getValue(grd_reqpsnlist.nodeset+ "["+ Idx +"]/reqaprvflag4"));
  198. Idx++;
  199. }
  200. }
  201. grp_newdata.refresh();
  202. }
  203. var vSaveData = ""; // Send Data
  204. //-----------------------------------
  205. // 입고 검수 확인 저장
  206. //-----------------------------------
  207. function fSaveDataConcatenate(pStat, pInstcd, pReqdeptcd, pEmplno, pReqflag, pReqprid, pReqaprvflag){
  208. vSaveData += pStat + "▦" // 01 구분
  209. + pInstcd + "▦" // 03 기관코드
  210. + pEmplno + "▦" // 04 사원번호
  211. + pReqdeptcd + "▦" // 05 청구부서
  212. + pReqflag + "▦" // 06 청구구분
  213. + pReqprid + "▦" // 07 청구주기
  214. + pReqaprvflag + "▦" // 02 승인구분
  215. + pReqprid + "▩"; // 08 청구주기OLD
  216. }
  217. //-----------------------------------
  218. // 청구권자/ 청구부서 승인자 저장
  219. //-----------------------------------
  220. function fCheckPersonSave(){
  221. if (model.getValue(gReqFlagPath + "/emplno") == "") {
  222. alert("사원호를 입력 하십시요!!");
  223. return;
  224. }
  225. //
  226. if (model.getValue(gReqFlagPath + "/emplnonm") == "") {
  227. var ret = messageBox("사원명이 없습니다. ","Q003");
  228. if (ret != 6) { // not OK
  229. return;
  230. }
  231. }
  232. //
  233. var vCnt = 0 ;
  234. var vStatus = "";
  235. var tPath = "/root/send/reqpsnlists";
  236. var tPath2 = "/root/send/reqpsnlists/reqpsnlist";
  237. var vInstcd = model.getValue(gReqFlagPath + "/instcd");
  238. var vReqdeptcd = model.getValue(gReqFlagPath + "/deptcd");
  239. var vEmplno = model.getValue(gReqFlagPath + "/emplno");
  240. var vEmplnonm = model.getValue(gReqFlagPath + "/emplnonm");
  241. var vReqaprvflag= "";
  242. vSaveData = ""; // Send Data
  243. for (var i=0; i < gReqFlag.length; i++){
  244. // 일청구
  245. if (model.getValue(gReqFlagPath + "/reqaprvflag1_" + gReqFlag[i] ) !=
  246. model.getValue(gReqFlagPath + "/reqaprvflag1_" + gReqFlag[i]+"_OLD") ) {
  247. if (model.getValue(gReqFlagPath + "/reqaprvflag1_" + gReqFlag[i]) == "0"){
  248. vStatus = "d";
  249. vReqaprvflag = model.getValue(gReqFlagPath + "/reqaprvflag1_" + gReqFlag[i]+"_OLD");
  250. } else {
  251. vReqaprvflag = model.getValue(gReqFlagPath + "/reqaprvflag1_" + gReqFlag[i]);
  252. if (model.getValue(gReqFlagPath + "/reqaprvflag1_" + gReqFlag[i]+"_OLD") == "0"){
  253. vStatus = "i";
  254. } else {
  255. vStatus = "u";
  256. }
  257. }
  258. fSaveDataConcatenate(vStatus, vInstcd, vReqdeptcd, vEmplno, gReqFlag[i], "1", vReqaprvflag);
  259. vCnt++;
  260. }
  261. // 주 청구
  262. //
  263. if (model.getValue(gReqFlagPath + "/reqaprvflag2_" + gReqFlag[i] ) !=
  264. model.getValue(gReqFlagPath + "/reqaprvflag2_" + gReqFlag[i]+"_OLD") ) {
  265. if (model.getValue(gReqFlagPath + "/reqaprvflag2_" + gReqFlag[i]) == "0"){
  266. vStatus = "d";
  267. vReqaprvflag = model.getValue(gReqFlagPath + "/reqaprvflag2_" + gReqFlag[i]+"_OLD");
  268. } else {
  269. vReqaprvflag = model.getValue(gReqFlagPath + "/reqaprvflag2_" + gReqFlag[i]);
  270. if (model.getValue(gReqFlagPath + "/reqaprvflag2_" + gReqFlag[i]+"_OLD") == "0"){
  271. vStatus = "i";
  272. } else {
  273. vStatus = "u";
  274. }
  275. }
  276. fSaveDataConcatenate(vStatus, vInstcd, vReqdeptcd, vEmplno, gReqFlag[i], "2", vReqaprvflag);
  277. vCnt++;
  278. }
  279. // 월 청구
  280. //
  281. if (model.getValue(gReqFlagPath + "/reqaprvflag4_" + gReqFlag[i] ) !=
  282. model.getValue(gReqFlagPath + "/reqaprvflag4_" + gReqFlag[i]+"_OLD") ) {
  283. if (model.getValue(gReqFlagPath + "/reqaprvflag4_" + gReqFlag[i]) == "0"){
  284. vStatus = "d";
  285. vReqaprvflag = model.getValue(gReqFlagPath + "/reqaprvflag4_" + gReqFlag[i]+"_OLD");
  286. } else {
  287. vReqaprvflag = model.getValue(gReqFlagPath + "/reqaprvflag4_" + gReqFlag[i]);
  288. if (model.getValue(gReqFlagPath + "/reqaprvflag4_" + gReqFlag[i]+"_OLD") == "0"){
  289. vStatus = "i";
  290. } else {
  291. vStatus = "u";
  292. }
  293. }
  294. fSaveDataConcatenate(vStatus, vInstcd, vReqdeptcd, vEmplno, gReqFlag[i], "4", vReqaprvflag);
  295. vCnt++;
  296. }
  297. }
  298. if (vCnt > 0) {
  299. var vSaveHead = "status" + "▦" // 01 구분
  300. + "instcd" + "▦" // 03 기관코드
  301. + "emplno" + "▦" // 04 사원번호
  302. + "reqdeptcd" + "▦" // 05 청구부서
  303. + "reqflag" + "▦" // 06 청구구분
  304. + "reqprid" + "▦" // 07 청구주기
  305. + "reqaprvflag" + "▦" // 02 승인구분
  306. + "reqpridold" + "▩"; // 08 청구주기OLD \
  307. model.removenode(tPath);
  308. model.makeValue(tPath2, vSaveHead+vSaveData);
  309. submit("TXRSC06002");
  310. btn_search.dispatch("DOMActivate");
  311. }
  312. }
  313. /* ------------------------------------------------- */
  314. /* ------End Of List ------------------------------- */
  315. /* -------------------------------------------------- */