SMMQK00220.xjs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[var acptno = "";
  3. /**
  4. * @---------------------------------------------------
  5. * @desc : SMMQK00200_QI활동보고서 내용 가져오기
  6. * @param : acptno 접수번호
  7. * @return :
  8. * @---------------------------------------------------
  9. */
  10. function fGetCond(){
  11. //alert(fGetCond);
  12. acptno = ds_main_cond.getColumn(0, "acptno");
  13. if( !utlf_isNull(acptno) ){
  14. var oParam = {};
  15. oParam.id = "TRMQK00101";
  16. oParam.service = "qiapp.QiActivityMngt";
  17. oParam.method = "reqGetQiActivityMast";
  18. oParam.inds = "req=ds_main_cond";
  19. oParam.outds = "ds_tmp_cond=qiinfo";
  20. oParam.async = false;
  21. tranf_submit(oParam);
  22. ds_main_cond.copyData(ds_tmp_cond);
  23. var prcsstatcd = ds_main_cond.getColumn(0, "prcsstatcd");
  24. userAuth = fchkUser(); //사용자별 권한정보 가져오기
  25. //TEST를 위해 저장
  26. dsf_makeValue(ds_hidden,"userauth", "string", userAuth);
  27. //단계
  28. var prcsstagecd = ds_main_cond.getColumn(0, "prcsstagecd");
  29. //CASE1 : 1차보고서만 지표입력 가능
  30. if(prcsstagecd == "100"){
  31. //CASE1 0. 최초등록일경우
  32. if(prcsstatcd == "0"){
  33. var rgstrid = sysf_getUserId();
  34. var rgstrhngnm = sysf_getUserInfo("usernm");
  35. var rgstrdeptcd = sysf_getUserInfo("dutplcecd");
  36. var rgstrdeptnm = sysf_getUserInfo("dutplcenm");
  37. var rgstdd = utlf_getCurrentDate();
  38. ds_main_cond.setColumn(0, "rgstrid", rgstrid);
  39. ds_main_cond.setColumn(0, "rgstrhngnm", rgstrhngnm);
  40. ds_main_cond.setColumn(0, "rgstrdeptcd", rgstrdeptcd);
  41. ds_main_cond.setColumn(0, "rgstrdeptnm", rgstrdeptnm);
  42. ds_main_cond.setColumn(0, "rgstrdd", rgstdd);
  43. groupRevitalize("group5.grp_report", "D", "N");
  44. groupRevitalize("grp_fb", "D", "Y");
  45. group5.grp_report.btn_fbreflt.enable = false;
  46. }
  47. //CASE1 1. 현재상태가 저장인 경우
  48. if(prcsstatcd == "1"){
  49. groupRevitalize("group5.grp_report", "D", "N");
  50. groupRevitalize("grp_fb", "D", "Y");
  51. group5.grp_report.btn_fbreflt.enable= false;
  52. }
  53. //CASE1 2. 현재상태가 전송인 경우
  54. if(prcsstatcd == "2"){
  55. groupRevitalize("group5.grp_report", "D", "Y");
  56. if(userAuth == "U"){
  57. groupRevitalize("grp_fb", "D", "Y");
  58. }
  59. if(userAuth == "Q"){
  60. groupRevitalize("grp_fb", "D", "N");
  61. }
  62. }
  63. //CASE1 3. 현재상태가 F/B요청 경우
  64. if(prcsstatcd == "3"){
  65. groupRevitalize("grp_fb", "D", "Y");
  66. group5.grp_report.btn_save.enable= false;
  67. group5.grp_report.btn_tran.enable = false;
  68. if(userAuth == "Q"){
  69. groupRevitalize("group5.grp_report", "D", "Y");
  70. //QI팀이라도 등록자, 팀장,간사에 속해있으면 F/B반영을 할수잇다.
  71. var loginID = sysf_getUserId();
  72. var rgstID = ds_main_cond.getColumn(0, "rgstrid");
  73. var chfID = ds_main_cond.getColumn(0, "chfid");
  74. var staffid = ds_main_cond.getColumn(0, "staffid");
  75. if(loginID == rgstID || loginID == chfID || loginID == staffid){
  76. groupRevitalize("group5.grp_report", "D", "N");
  77. group5.grp_report.btn_save.enable = false;
  78. group5.grp_report.btn_tran.enable = false;
  79. groupRevitalize("grp_fb", "D", "Y");
  80. }
  81. }
  82. }
  83. //CASE1 4. 현재상태가 F/B반영 경우
  84. if(prcsstatcd == "4"){
  85. groupRevitalize("group5.grp_report", "D", "Y");
  86. if(userAuth == "U"){
  87. groupRevitalize("grp_fb", "D", "Y");
  88. }
  89. if(userAuth == "Q"){
  90. groupRevitalize("grp_fb", "D", "N");
  91. }
  92. }
  93. //CASE1 5. 현재상태가 마감인 경우
  94. if(prcsstatcd == "5"){
  95. groupRevitalize("group5.grp_report", "D", "Y");
  96. groupRevitalize("grp_fb", "D", "Y");
  97. }
  98. }
  99. //CASE2 : 2~4차보고서 저장시
  100. else{
  101. //CASE2 0. 최초등록일경우
  102. if(prcsstatcd == "0"){
  103. var rgstrid = sysf_getUserId();
  104. var rgstrhngnm = sysf_getUserInfo("usernm");
  105. var rgstrdeptcd = sysf_getUserInfo("dutplcecd");
  106. var rgstrdeptnm = sysf_getUserInfo("dutplcenm");
  107. var rgstdd = utlf_getCurrentDate();
  108. ds_main_cond.setColumn(0, "rgstrid", rgstrid);
  109. ds_main_cond.setColumn(0, "rgstrhngnm", rgstrhngnm);
  110. ds_main_cond.setColumn(0, "rgstrdeptcd", rgstrdeptcd);
  111. ds_main_cond.setColumn(0, "rgstrdeptnm", rgstrdeptnm);
  112. ds_main_cond.setColumn(0, "rgstrdd", rgstdd);
  113. groupRevitalize("group5.grp_report", "D", "Y");
  114. group5.grp_report.btn_save.enable = true;
  115. group5.grp_report.btn_tran.enable = true;
  116. group5.grp_report.btn_fbreflt.enable = false;
  117. groupRevitalize("grp_fb", "D", "Y");
  118. }
  119. //CASE2 1. 현재상태가 저장인 경우
  120. if(prcsstatcd == "1"){
  121. groupRevitalize("group5.grp_report", "D", "Y");
  122. group5.grp_report.btn_save.enable = true;
  123. group5.grp_report.btn_tran.enable = true;
  124. group5.grp_report.btn_fbreflt.enable = false;
  125. group5.grp_report.btn_filedel.enable = true;
  126. group5.grp_report.btn_filedown.enable = true;
  127. group5.grp_report.btn_search.enable = true;
  128. groupRevitalize("grp_fb", "D", "Y");
  129. group5.grp_report.btn_fbreflt.enable = false;
  130. }
  131. //CASE2 2. 현재상태가 전송인 경우
  132. if(prcsstatcd == "2"){
  133. groupRevitalize("group5.grp_report", "D", "Y");
  134. if(userAuth == "U"){
  135. groupRevitalize("grp_fb", "D", "Y");
  136. }
  137. if(userAuth == "Q"){
  138. groupRevitalize("grp_fb", "D", "N");
  139. }
  140. }
  141. //CASE2 3. 현재상태가 F/B요청 경우
  142. if(prcsstatcd == "3"){
  143. groupRevitalize("grp_fb", "D", "Y");
  144. groupRevitalize("group5.grp_report", "D", "Y");
  145. group5.grp_report.btn_fbreflt.enable = true;
  146. group5.grp_report.btn_search.enable = true;
  147. group5.grp_report.btn_filedel.enable = true;
  148. if(userAuth == "Q"){
  149. groupRevitalize("group5.grp_report", "D", "Y");
  150. //QI팀이라도 등록자, 팀장,간사에 속해있으면 F/B반영을 할수잇다.
  151. var loginID = sysf_getUserId();
  152. var rgstID = ds_main_cond.getColumn(0, "rgstrid");
  153. var chfID = ds_main_cond.getColumn(0, "chfid");
  154. var staffid = ds_main_cond.getColumn(0, "staffid");
  155. if(loginID == rgstID || loginID == chfID || loginID == staffid){
  156. group5.grp_report.btn_fbreflt.enable = true;
  157. group5.grp_report.btn_search.enable = true;
  158. group5.grp_report.btn_filedel.enable = true;
  159. }
  160. }
  161. }
  162. //CASE2 4. 현재상태가 F/B반영 경우
  163. if(prcsstatcd == "4"){
  164. groupRevitalize("group5.grp_report", "D", "Y");
  165. if(userAuth == "U"){
  166. groupRevitalize("grp_fb", "D", "Y");
  167. }
  168. if(userAuth == "Q"){
  169. groupRevitalize("grp_fb", "D", "N");
  170. }
  171. }
  172. //CASE2 5. 현재상태가 마감인 경우
  173. if(prcsstatcd == "5"){
  174. groupRevitalize("group5.grp_report", "D", "Y");
  175. groupRevitalize("grp_fb", "D", "Y");
  176. }
  177. group5.grp_report.btn_skip.enable= true;
  178. }
  179. }
  180. if(userAuth == "Q"){
  181. group5.grp_report.btn_search.enable = true;
  182. group5.grp_report.btn_filedel.enable = true;
  183. group5.grp_report.btn_exe.visible = true;
  184. group5.grp_report.btn_exe.enable = true;
  185. }
  186. //첨부파일 유무에따른 버튼활성화 상태 설정
  187. if( utlf_isNull(ds_main_cond.getColumn(0, "attfile")) ){
  188. group5.grp_report.btn_filedel.enable = false;
  189. group5.grp_report.btn_filedown.enable = false;
  190. group5.grp_report.btn_search.enable = true;
  191. }
  192. else{
  193. group5.grp_report.btn_filedown.enable = true;
  194. }
  195. //Other이면 조회만 되게끔 설정
  196. if(userAuth == "O"){
  197. groupRevitalize("group5.grp_report", "D", "Y");
  198. groupRevitalize("grp_fb", "D", "Y");
  199. group5.grp_report.btn_filedown.enable = true;
  200. }
  201. //보고서 선택 버튼 focus상태 설정
  202. var savePrcsStageCd = ds_main_cond.getColumn(0, "saveprcsstagecd");
  203. //alert("넘어온거 : "+ prcsstagecd +", 저장된거 : " + savePrcsStageCd);
  204. if(savePrcsStageCd <= prcsstagecd){
  205. savePrcsStageCd = prcsstagecd;
  206. }
  207. var btnNm = "btn_report" + prcsstagecd;
  208. if(btnNm == "btn_report200"){
  209. group5.tab.tabindex = 0;
  210. }
  211. if(btnNm == "btn_report300"){
  212. group5.tab.tabindex = 1;
  213. }
  214. if(btnNm == "btn_report400"){
  215. group5.tab.tabindex = 2;
  216. }
  217. if(btnNm == "btn_report500"){
  218. group5.tab.tabindex = 3;
  219. }
  220. //테스트 강지훈 특별권한 ㅋㅋ
  221. if(sysf_getUserId() == "DEVB07"){
  222. group5.btn_admin.visible = true;
  223. }
  224. //양식 저장경로 가져오기
  225. var sSendDs = "ds_main_cond";
  226. //2017.05.30 양식 통일
  227. if( sysf_getUserInfo("dutplceinstcd") == "032" ){
  228. sSendDs = dsf_createDsRow("ds_cond_TRMQK00103", [{col:"prcsstagecd", type:"STRING", size:256, val:"100"}]);
  229. }
  230. var oParam = {};
  231. oParam.id = "TRMQK00103";
  232. oParam.service = "qiapp.QiActivityMngt";
  233. oParam.method = "reqGetForm";
  234. oParam.inds = "req="+sSendDs;
  235. oParam.outds = "ds_hidden_form=form";
  236. oParam.async = false;
  237. tranf_submit(oParam);
  238. group5.grp_report.btn_fileform.enable = true;
  239. }
  240. /**
  241. * @---------------------------------------------------
  242. * @desc : SMMQK00200_QI활동보고서가 load될때 실행되는 function
  243. * @param :
  244. * @return :
  245. * @---------------------------------------------------
  246. */
  247. function fInitialize(){
  248. //파라메터 받아오기
  249. if(frmf_isPopup() == true){
  250. acptno = opener.frmf_getParameter("ano");
  251. prcsstagecd = opener.frmf_getParameter("prcsstagecd");
  252. if( !utlf_isNull(acptno) ){
  253. ds_main_cond.setColumn(0, "acptno", acptno);
  254. ds_main_cond.setColumn(0, "prcsstagecd", prcsstagecd);
  255. }
  256. }
  257. //cap_attfile.attribute("text") = prcsstagecd+"차보고서 파일";
  258. //화면정보 불러오기
  259. fGetCond();
  260. }
  261. /**
  262. * @---------------------------------------------------
  263. * @desc : user의 권한을 체크한다.
  264. * @param :
  265. * @return : userAuth 유저권한 U:유저 Q:QI O:Other
  266. * @---------------------------------------------------
  267. */
  268. function fchkUser(){
  269. var userAuth = ""
  270. var loginID = sysf_getUserId(); //로그인ID
  271. var dutplcecd = sysf_getUserInfo("dutplcecd");
  272. var planrgstrdeptcd = ds_main_cond.getColumn(0, "planrgstrdeptcd"); //등록부서
  273. var rgstID = ds_main_cond.getColumn(0, "rgstrid"); //등록자ID
  274. var chfID = ds_main_cond.getColumn(0, "chfid"); //팀장ID
  275. var staffid = ds_main_cond.getColumn(0, "staffid"); //간사ID
  276. if( sysf_checkUserGroup("UGE_QIO")){
  277. userAuth = "Q";
  278. }
  279. else if ( loginID == rgstID || loginID == chfID || loginID == staffid || dutplcecd == planrgstrdeptcd ){
  280. userAuth = "U";
  281. }
  282. else if(loginID != rgstID && loginID != chfID && loginID != staffid){
  283. userAuth = "O";
  284. }
  285. return userAuth;
  286. }
  287. /**
  288. * @---------------------------------------------------
  289. * @desc : QI활동 계획서 저장 function
  290. * @param :
  291. * @return :
  292. * @---------------------------------------------------
  293. */
  294. function fSave(){
  295. dsf_copyColInfo(ds_send_cond_condition, ds_main_cond);
  296. if(ds_send_cond_condition.rowcount == 0){
  297. ds_send_cond_condition.addRow();
  298. }
  299. ds_send_cond_condition.copyRow(0, ds_main_cond, 0);
  300. var oParam = {};
  301. oParam.id = "TXMQK00100";
  302. oParam.service = "qiapp.QiActivityMngt";
  303. oParam.method = "reqSetQiActivityPlan";
  304. oParam.inds = "req=ds_send_cond_condition attach=ds_send_cond_attach";
  305. oParam.outds = "ds_temp_cond=acptno";
  306. oParam.async = false;
  307. //oParam.callback = "cf_TXMQK00100";
  308. tranf_submit(oParam);
  309. ds_send_cond_attach.clearData();
  310. ds_send_cond_attach.addRow();
  311. fGetCond();
  312. }
  313. function fSkipPrcss(){
  314. ds_send_cond_condition.copyRow(0, ds_main_cond, 0);
  315. var oParam = {};
  316. oParam.id = "TXMQK00101";
  317. oParam.service = "qiapp.QiActivityMngt";
  318. oParam.method = "reqSetSkipQiActivityPlan";
  319. oParam.inds = "req=ds_send_cond_condition attach=ds_send_cond_attach";
  320. oParam.outds = "ds_temp_cond=cnt";
  321. oParam.async = false;
  322. tranf_submit(oParam);
  323. fGetCond();
  324. }]]></Script>