SMMMB01100.xjs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/*
  3. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  4. SMMMB01100 ( SMMMB01100_개인환경설정등록.xrw - JScript )
  5. - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
  6. */
  7. /**
  8. * @desc : 화면 초기화
  9. * @
  10. * @param :
  11. * @return :
  12. * @author : Moonsh
  13. * @---------------------------------------------------
  14. */
  15. function fInitialize_SMMMB01100(loc){
  16. var userInfo = getUserInfo("userid");
  17. model.setValue("root/send/userid", userInfo);
  18. if(loc != "child"){
  19. model.setValue ( "/root/send/hardcodeno", "59" );
  20. if (submit ("TRMMB01105")) {
  21. var adminNodes = model.instances(0).selectNodes( "/root/main/hardcode/hardcodelist" );
  22. var userInfo = getUserInfo("userid");
  23. model.setValue("root/send/userid", userInfo);
  24. for ( var i = 1 ; i < adminNodes.length + 1 ; i++ ){
  25. var adminId = model.getValue("/root/main/hardcode/hardcodelist[" + i + "]/trgtcd");
  26. if ( adminId == userInfo ) {
  27. model.setValue( "/root/main/admininfo", "Y");
  28. model.setValue("root/send/userid", "admin");
  29. break ;
  30. }
  31. }
  32. }
  33. }
  34. //환경설정 질문 및 답안 조회
  35. if(submit("TRMMB01101")){
  36. /*
  37. if (loc != "child"){
  38. model.setValue("/root/send/qestcd", model.getValue("/root/main/envinfo/userenvestb/userenvestblist[1]/qestcd"));
  39. if(submit("TRMMB01102")){
  40. //사용자 답안값 선택
  41. //fChoiEnvEstAnsw();
  42. }
  43. }
  44. */
  45. }
  46. model.refresh();
  47. }
  48. /**
  49. * @desc : 선택된 환경설정 질문에 대한 답안 항목 조회
  50. * @
  51. * @param :
  52. * @return :
  53. * @author : Moonsh
  54. * @---------------------------------------------------
  55. */
  56. function fGetAnswList(){
  57. if(isDataCell()){
  58. var qestcd = model.getValue("/root/main/envinfo/userenvestb/userenvestblist[" + grd_userenvestblist.row + "]/qestcd");
  59. var qestclscd = model.getValue("/root/main/envinfo/userenvestb/userenvestblist[" + grd_userenvestblist.row + "]/qestclscd");
  60. model.setValue("/root/main/cond/qestcd", qestcd);
  61. model.setValue("/root/send/qestcd", qestcd);
  62. var testclscd = model.getValue("/root/main/cond/qestclscd");
  63. model.setValue("/root/send/qestclscd", qestclscd);
  64. model.setValue("/root/send/qeststatcd", model.getValue("/root/main/cond/answstatcd"));
  65. if(submit("TRMMB01102")){
  66. //사용자 답안값 선택
  67. //fChoiEnvEstAnsw();
  68. }
  69. var useflag = model.getValue("/root/main/envinfo/envestbansw/envestbanswlist[" + 1 + "]/useflag");
  70. if ( useflag != ""){
  71. if (useflag =="1") {
  72. useflag = "3";
  73. }
  74. model.setValue("/root/main/cond/answstatcd", useflag);
  75. fAnswStatCliek();
  76. }
  77. var admininfo = model.getValue("/root/main/admininfo");
  78. if (useflag == "1" && admininfo != "Y"){
  79. grd_envestbanswlist.colDisabled(2) = true;
  80. } else {
  81. grd_envestbanswlist.colDisabled(2) = false;
  82. grd_envestbanswlist.colDisabled(3) = true;
  83. }
  84. model.refresh();
  85. }
  86. }
  87. /**
  88. * @desc : 답안리스트 저장
  89. * @
  90. * @param :
  91. * @return :
  92. * @author : Moonsh
  93. * @---------------------------------------------------
  94. */
  95. function fAnswSave(){
  96. var answstatcd = model.getValue("/root/main/cond/answstatcd");
  97. if (answstatcd == ""){
  98. alert("답안 사용 여부 체크해 주세요.");
  99. return;
  100. }
  101. if (fAnswGridClick() == false){
  102. return;
  103. }
  104. var chkflag = false;
  105. var nmflag = false;
  106. var baseanswvalflag = "";
  107. var answvalnm = "";
  108. var delflag = false;
  109. var rowstatus = "";
  110. for ( i = 1; i < grd_envestbanswlist.rows; i++ ) {
  111. baseanswvalflag = model.getValue( "/root/main/envinfo/envestbansw/envestbanswlist[" + i + "]/baseanswvalflag");
  112. answvalnm = model.getValue( "/root/main/envinfo/envestbansw/envestbanswlist[" + i + "]/answvalnm");
  113. rowstatus = grd_envestbanswlist.rowstatus(i) ;
  114. if (baseanswvalflag == "Y") {
  115. chkflag = true;
  116. }
  117. if (answvalnm == ""){
  118. nmflag = true;
  119. }
  120. if (rowstatus == "4"){
  121. delflag = true;
  122. }
  123. }
  124. if (chkflag == false){
  125. alert("선택 된 답이 없습니다. 답안값을 선택해 주세요.");
  126. return ;
  127. }
  128. if (nmflag == true){
  129. alert("답안값이 없습니다. 답안값을 적어주세요");
  130. return ;
  131. }
  132. if (delflag == true){
  133. if ( messageBox("정말로 삭제 ", "S001") != "6") {
  134. return ;
  135. }
  136. }
  137. var qestcd = model.getValue("/root/main/cond/qestcd");
  138. var qestclscd = model.getValue("/root/main/cond/qestclscd");
  139. var qeststatcd = model.getValue("/root/main/cond/qeststatcd");
  140. model.setValue("/root/send/qestcd", qestcd);
  141. model.setValue("/root/send/qestclscd", qestclscd);
  142. model.setValue("/root/send/qeststatcd", qeststatcd);
  143. model.setValue("/root/send/answstatcd", model.getValue("/root/main/cond/answstatcd"));
  144. for (i =0; i < grd_envestbanswlist.rows ; i++) {
  145. grd_envestbanswlist.rowStatus(i) = 1;
  146. }
  147. model.setValue("/root/send/userenvestblist", grd_envestbanswlist.getUpdateData());
  148. //환경설정변경시 저장시에 변경데이타가 기본정보로 세팅되도록 변경(기존 로그인), CHC, 2009-06-24
  149. if(submit("TXMMB01101")) {
  150. if(opener.document.title.substring(0,3) == "CMC") {
  151. opener.javascript.fInitializsOrderBasicInfo();
  152. } else {
  153. messageBox("메뉴에서 환경설정을 사용할 경우에만 바로 적용이 가능합니다.\n환경설정 변경을 적용하시려면 재로그인 하세요", "I");
  154. }
  155. }
  156. if(submit("TRMMB01102")) {
  157. }
  158. }
  159. /**
  160. * @desc : 답안그리드에 열 추가
  161. * @
  162. * @param :
  163. * @return :
  164. * @author : Moonsh
  165. * @---------------------------------------------------
  166. */
  167. function fAddAnswGrid(){
  168. var admininfo = model.getValue("/root/main/admininfo");
  169. if (admininfo != "Y"){
  170. alert("Admin 권한자만 Default 답변을 추가 할 수 있습니다.");
  171. return ;
  172. }
  173. //조회된 행의 개수
  174. var gridrows = grd_envestbanswlist.rows;
  175. var qestcd = model.getValue("/root/main/cond/qestcd");
  176. //내역 리스트를 선택하지 않은 경우
  177. if(qestcd == ''){
  178. alert("선택된 환경 설정이 없습니다. 환경 설정 후 선택 후 진행하세요. ");
  179. return ;
  180. }
  181. if(qestcd != ''){
  182. grd_envestbanswlist.addRow(false);
  183. //행의 마지막에 입력을 위해 마지막값을 받아옴
  184. var detlrows = grd_envestbanswlist.rows - grd_envestbanswlist.fixedRows;
  185. var qestclscd = model.getValue("/root/main/cond/qestclscd");
  186. var qeststatcd = model.getValue("/root/main/cond/qeststatcd");
  187. model.setValue("/root/main/envinfo/envestbansw/envestbanswlist[" + detlrows + "]/baseanswvalflag", "N");
  188. model.setValue("/root/main/envinfo/envestbansw/envestbanswlist[" + detlrows + "]/qestcd", qestcd);
  189. model.setValue("/root/main/envinfo/envestbansw/envestbanswlist[" + detlrows + "]/qestclscd", qestclscd);
  190. model.setValue("/root/main/envinfo/envestbansw/envestbanswlist[" + detlrows + "]/qeststatcd", qeststatcd);
  191. model.refresh();
  192. }
  193. }
  194. /**
  195. * @desc : 질문 그리드에 신규질문 추가
  196. * @
  197. * @param :
  198. * @return :
  199. * @author : Moonsh
  200. * @---------------------------------------------------
  201. */
  202. function fSetQestInfo(setflag){
  203. //현재 상태값
  204. model.setValue("/root/main/cond/status", setflag);
  205. var status = model.getValue("/root/main/cond/status");
  206. model.setValue("/root/main/cond/qestuseflag", "Y");
  207. if (status == "i"){
  208. var qestnm = model.getValue("/root/main/cond/qestnm");
  209. if (qestnm == ""){
  210. alert("질문이 없습니다. 질문을 입력 후 다시 실행해 주세요.");
  211. return ;
  212. }
  213. }else if (status == "d"){
  214. model.setValue("/root/main/cond/qestuseflag", "N");
  215. }
  216. model.copyNode("/root/send/reqdata","/root/main/cond");
  217. //저장
  218. submit("TXMMB01001");
  219. //조회
  220. submit("TRMMB01101");
  221. }
  222. /**
  223. * @desc : 질문 그리드에 신규답안 삭제
  224. * @
  225. * @param :
  226. * @return :
  227. * @author : Moonsh
  228. * @---------------------------------------------------
  229. */
  230. function fDelAnsw(){
  231. var admininfo = model.getValue("/root/main/admininfo");
  232. if (admininfo != "Y"){
  233. alert("Admin 권한자만 Default 답변 삭제를 할 수 있습니다.");
  234. return ;
  235. }
  236. //멀티로 삭제를 원하는 로우를 얻어온다.
  237. var selectedRows = grd_hardcodespecdetl.selectedRows;
  238. //선택한 삭제로우행을 받아오기 위해 배열지정
  239. var row = new Array();
  240. //멀티로 선택한 로우행값을 받아옴
  241. for (i= selectedRows-1; i >= 0; i--){
  242. row[i] = grd_hardcodespecdetl.selectedrow(i);
  243. }
  244. //선택한 로우가 없는 경우 메세지
  245. if(selectedRows == 0){
  246. messageBox("삭제할 Hard-Code 상세 내역을 ", "C002");
  247. }else{
  248. xPath = "/root/main/info/specdetlinfo/specdetllist";
  249. var savedata ="m▦hardcdno▦trgtcd▦trgtcdnm▦valifromdd▦valitodd▦cdseqno▩";
  250. //멀티로 선택한 개수로 루프를 돔
  251. for (i= selectedRows-1; i >= 0; i--){
  252. savedata += 'd' + "▦";
  253. savedata += model.getValue(xPath+"["+ row[i] +"]/hardcdno") + "▦";
  254. savedata += model.getValue(xPath+"["+ row[i] +"]/trgtcd" ) + "▦";
  255. savedata += model.getValue(xPath+"["+ row[i] +"]/trgtcdnm" ) + "▦";
  256. savedata += model.getValue(xPath+"["+ row[i] +"]/valifromdd" ) + "▦";
  257. savedata += model.getValue(xPath+"["+ row[i] +"]/valitodd" ) + "▦";
  258. savedata += model.getValue(xPath+"["+ row[i] +"]/cdseqno" ) + "▩";
  259. }
  260. //멀티로 원한 데이타를 가지고 삭제하러 간다
  261. model.setValue("/root/send/reqdata","");
  262. model.setValue("/root/send/savedata",savedata);
  263. submit("TXMMB08202");
  264. }
  265. model.refresh();
  266. }
  267. /**
  268. * @desc : 질의문 조회
  269. * @
  270. * @param :
  271. * @return :
  272. * @author : Moonsh
  273. * @---------------------------------------------------
  274. */
  275. function fGetQestList(){
  276. //상태값을 등록으로 만든다.
  277. model.setValue("/root/main/cond/status", 'i');
  278. model.removeNodeset("/root/main/envestbanswlist");
  279. model.refresh();
  280. //신규입력을 원할 경우 row를 생성하여 준다
  281. //grd_hardcodespec.addRow(false);
  282. }
  283. /**
  284. * @desc : 환경설정을 위한 질문 설정
  285. * @
  286. * @param :
  287. * @return :
  288. * @author : Moonsh
  289. * @---------------------------------------------------
  290. */
  291. function fSetEnviConf(){
  292. var admininfo = model.getValue("/root/main/admininfo");
  293. if (admininfo != "Y"){
  294. alert("Admin 권한자만 질문 설정을 할 수 있습니다.");
  295. return ;
  296. }
  297. //modal("SPMMB01600");
  298. fPrcpModal ( "SPMMB01600", 200, 10 );
  299. fInitialize_SMMMB01100();
  300. }
  301. /**
  302. * @desc : 답변그리드에 데이타 변경 시
  303. * @
  304. * @param :
  305. * @return :
  306. * @author : Moonsh
  307. * @---------------------------------------------------
  308. */
  309. function fAnswGridChanged(){
  310. var answstatcd = model.getValue("/root/main/cond/answstatcd");
  311. var admininfo = model.getValue("/root/main/admininfo");
  312. if (grd_envestbanswlist.col == grd_envestbanswlist.colref("baseanswvalflag") ){
  313. var answpath = "/root/main/envinfo/envestbansw/envestbanswlist";
  314. //선택된 값 외에는 check 풀어줌
  315. for (var i = 1; i < grd_envestbanswlist.rows; i++ ) {
  316. var baseanswvalflag = model.getValue( answpath+"[" + i + "]/baseanswvalflag" );
  317. if ( baseanswvalflag == "Y" ) {
  318. if ( grd_envestbanswlist.rowstatus(i) != 3 ){
  319. grd_envestbanswlist.rowstatus(i) = 2;
  320. }
  321. }
  322. model.setValue(answpath+"[" + i + "]/baseanswvalflag" ,"N");
  323. }
  324. model.setValue(answpath+"[" + grd_envestbanswlist.row + "]/baseanswvalflag" ,"Y");
  325. //답안값이 바뀌면 바뀐 값을 user 환경설정으로 옮김,
  326. if ( model.getValue(answpath+"[" + grd_envestbanswlist.row + "]/answval" ) != model.getValue(answpath+"[" + grd_envestbanswlist.row + "]/answval")) {
  327. model.setValue(answpath+"[" + grd_envestbanswlist.row + "]/answval" , model.getValue(answpath+"[" + grd_envestbanswlist.row + "]/answval"));
  328. model.setValue(answpath+"[" + grd_envestbanswlist.row + "]/answvalnm" ,model.getValue(answpath+"[" + grd_envestbanswlist.row + "]/answvalnm"));
  329. //일반상태에서 수정이 있으면 update로 바꿈
  330. if( grd_envestbanswlist.rowStatus( grd_envestbanswlist.row ) == 0 ) {
  331. grd_envestbanswlist.rowStatus( grd_envestbanswlist.row ) = 2;
  332. }
  333. grd_envestbanswlist.rebuild();
  334. }
  335. }
  336. }
  337. /**
  338. * @desc : 답변그리드 클릭 시
  339. * @
  340. * @param :
  341. * @return :
  342. * @author : Moonsh
  343. * @---------------------------------------------------
  344. */
  345. function fAnswGridClick(){
  346. var answstatcd = model.getValue("/root/main/cond/answstatcd");
  347. var admininfo = model.getValue("/root/main/admininfo");
  348. if (answstatcd == "1" && admininfo != "Y" && grd_envestbanswlist.col == grd_envestbanswlist.colRef("baseanswvalflag")){
  349. alert("Admin 권한자만 아니면 공통으로 등록된 답안은 수정 할 수 없습니다.");
  350. return false;
  351. }
  352. }
  353. /**
  354. * @desc : 답안사용여부 체크 시
  355. * @
  356. * @param :
  357. * @return :
  358. * @author : Moonsh
  359. * @---------------------------------------------------
  360. */
  361. function fAnswStatCliek(){
  362. var answstatcd = model.getValue("/root/main/cond/answstatcd");
  363. var admininfo = model.getValue("/root/main/admininfo");
  364. if (admininfo == "Y"){
  365. grd_envestbanswlist.colDisabled(grd_envestbanswlist.colRef("baseanswvalflag")) = false;
  366. grd_envestbanswlist.colDisabled(grd_envestbanswlist.colRef("answvalnm")) = true;
  367. grd_envestbanswlist.refresh();
  368. } else if (answstatcd == "1" && admininfo != "Y"){
  369. grd_envestbanswlist.colDisabled(grd_envestbanswlist.colRef("baseanswvalflag")) = true;
  370. grd_envestbanswlist.colDisabled(grd_envestbanswlist.colRef("answvalnm")) = true;
  371. grd_envestbanswlist.refresh();
  372. }else{
  373. grd_envestbanswlist.colDisabled(grd_envestbanswlist.colRef("baseanswvalflag")) = false;
  374. grd_envestbanswlist.colDisabled(grd_envestbanswlist.colRef("answvalnm")) = true;
  375. grd_envestbanswlist.refresh();
  376. }
  377. }
  378. /**
  379. * @desc : 질문그리드 선택되었을때...
  380. * @
  381. * @param :
  382. * @return :
  383. * @author : Moonsh
  384. * @---------------------------------------------------
  385. */
  386. function fQestGridSelt(){
  387. var envpath = "/root/main/envinfo/userenvestb/userenvestblist";
  388. var ioflag = model.getValue(envpath+"[" + grd_userenvestblist.row + "]/ioflag");
  389. var qestclscd = model.getValue(envpath+"[" + grd_userenvestblist.row + "]/qestclscd");
  390. var qestkindcd = model.getValue(envpath+"[" + grd_userenvestblist.row + "]/qestkindcd");
  391. var qestcd = model.getValue(envpath+"[" + grd_userenvestblist.row + "]/qestcd");
  392. var qestnm = model.getValue(envpath+"[" + grd_userenvestblist.row + "]/qestnm");
  393. model.setValue("/root/main/cond/ioflag", ioflag);
  394. model.setValue("/root/main/cond/qestclscd", qestclscd);
  395. model.setValue("/root/main/cond/qestkindcd", qestkindcd);
  396. model.setValue("/root/main/cond/qestcd", qestcd);
  397. model.setValue("/root/main/cond/qestnm", qestnm);
  398. model.refresh();
  399. }
  400. /**
  401. * @desc : interface answer 조회
  402. * @
  403. * @param :
  404. * @return :
  405. * @author : Moonsh
  406. * @---------------------------------------------------
  407. */
  408. function fGetIntefeAnsw(qestcd){
  409. // 조회 변수 조회
  410. //model.setValue("/root/send/interqestcd", qestcd);
  411. // submit("TRMMB01104");
  412. // var answvalnm = model.getValue("/root/main/interface/answvalnm");
  413. //KNUH_20110208, 주희경, 로그인 시 미리 데이터를 조회해 놓고 copy해서 쓰는 방식으로 변경
  414. var answvalnm = "";
  415. var oDsEnvinfo = emr_getOrderBaseInfo("interface");
  416. if (!utlf_isNull(oDsEnvinfo)) {
  417. answvalnm = oDsEnvinfo.getColumn(oDsEnvinfo.findRow("qestcd", qestcd), "answvalnm");
  418. }
  419. return answvalnm ;
  420. }
  421. /**
  422. * @desc : 우측 마우스 클릭 시
  423. * @
  424. * @param :
  425. * @return :
  426. * @author : Moonsh
  427. * @---------------------------------------------------
  428. */
  429. function fMouseRghtBtnClick(){
  430. if (event.button == 3) {
  431. if(grd_envestbanswlist.isCell(event.target) && grd_envestbanswlist.mouseRow >= grd_envestbanswlist.fixedRows){
  432. window.setPopupMenu(true, "/root/main/init/rghtclik/mouserght", "label", "func", false);
  433. } else {
  434. window.setPopupMenu(false);
  435. }
  436. }
  437. model.refresh();
  438. }
  439. /**
  440. * @desc : 답변 그리드 삭제
  441. * @
  442. * @param :
  443. * @return :
  444. * @author : Moonsh
  445. * @---------------------------------------------------
  446. */
  447. function fAnswGridRowDel(){
  448. window.setPopupMenu(false);
  449. var admininfo = model.getValue("/root/main/admininfo");
  450. if (admininfo != "Y"){
  451. alert("Admin 권한만 삭제 권한이 있습니다.");
  452. return;
  453. }
  454. grd_envestbanswlist.rowStatus( grd_envestbanswlist.row ) = 4;
  455. }]]></Script>