SMMQK00111.xjs 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[var acptno = "";
  3. var lgv_instcd = false;
  4. /**
  5. * @---------------------------------------------------
  6. * @desc : SMMQK00100_QI활동계획서가 load될때 실행되는 function
  7. * @param :
  8. * @return :
  9. * @---------------------------------------------------
  10. */
  11. function fInitialize(){
  12. lgv_instcd = sysf_getUserInfo("dutplceinstcd") == "032" ? true : false;
  13. var ano = "";
  14. if(frmf_isPopup() == true){
  15. if(utlf_isNull(acptno)){
  16. acptno = opener.frmf_getParameter("ano");
  17. ds_main_cond.setColumn(0, "acptno", acptno);
  18. }
  19. }
  20. /*+++++++++++++++++++++++권한별 화면 설정+++++++++++++++++++++++*/
  21. groupRevitalize("group2.grp_plan", "D", "N"); //모든 콘트롤 활성화로 초기화
  22. var userAuth = "";
  23. //최초등록일 경우
  24. if(utlf_isNull(acptno)){
  25. userAuth = fchkUser(); //사용자별 권한정보 가져오기
  26. ds_main_cond.setColumn(0, "prcsstagecd", "100");
  27. var rgstrid = sysf_getUserId();
  28. var rgstrhngnm = sysf_getUserInfo("usernm");
  29. var rgstrdeptcd = sysf_getUserInfo("dutplcecd");
  30. var rgstrdeptnm = sysf_getUserInfo("dutplcenm");
  31. var rgstdd = utlf_getCurrentDate();
  32. ds_main_cond.setColumn(0, "rgstrid", rgstrid);
  33. ds_main_cond.setColumn(0, "rgstrhngnm", rgstrhngnm);
  34. ds_main_cond.setColumn(0, "rgstrdeptcd", rgstrdeptcd);
  35. ds_main_cond.setColumn(0, "rgstrdeptnm", rgstrdeptnm);
  36. ds_main_cond.setColumn(0, "rgstrdd", rgstdd);
  37. ds_main_cond.setColumn(0, "prizyn", "N"); //포상유무
  38. group2.grp_plan.btn_fbreflt.enable = false;
  39. group2.btn_fbreq.enable = false;
  40. group2.btn_end.enable = false;
  41. }
  42. //조회일 경우
  43. else if(!utlf_isNull(acptno)){
  44. ds_main_cond.setColumn(0, "instcd", sysf_getUserInfo("dutplceinstcd"));
  45. var oParam = {};
  46. oParam.id = "TRMQK00101";
  47. oParam.service = "qiapp.QiActivityMngt";
  48. oParam.method = "reqGetQiActivityMast";
  49. oParam.inds = "req=ds_main_cond";
  50. oParam.outds = "ds_tmp_cond=qiinfo";
  51. oParam.async = false;
  52. //oParam.callback = "cf_TRMQK00101";
  53. tranf_submit(oParam);
  54. if( ds_tmp_cond.rowcount > 0 ){
  55. ds_main_cond.copyRow(0, ds_tmp_cond, 0);
  56. var goalunit = ds_tmp_cond.getColumn(0, "goalunit");
  57. var guDs = group2.grp_plan.ipt_goalunit.innerdataset;
  58. if( guDs.findRow("codecolumn", goalunit) == -1 ){
  59. group2.grp_plan.ipt_goalunit.value = "-";
  60. group2.grp_plan.ipt_goalunit_extn.visible = true;
  61. group2.grp_plan.ipt_goalunit_extn.value = goalunit;
  62. }else if( goalunit == "-"){
  63. group2.grp_plan.ipt_goalunit_extn.visible = true;
  64. }
  65. }
  66. var prcsstatcd = ds_main_cond.getColumn(0, "prcsstatcd");
  67. userAuth = fchkUser(); //사용자별 권한정보 가져오기
  68. // alert("prcsstatcd : "+prcsstatcd);
  69. // alert("userAuth : "+userAuth);
  70. //1. 현재상태가 저장인 경우
  71. if(prcsstatcd == "1"){
  72. group2.tar_feedbackcnts.enable = false;
  73. group2.grp_plan.btn_fbreflt.enable = false; //>F/B 반영
  74. group2.btn_fbreq.enable = false; //F/B 요청
  75. group2.btn_end.enable = false; //마감
  76. }
  77. //2. 현재상태가 전송인 경우
  78. if(prcsstatcd == "2"){
  79. groupRevitalize("group2.grp_plan", "D", "Y");
  80. group2.grp_plan.btn_filedown.enable = true;
  81. if(userAuth == "U"){
  82. group2.btn_fbreq.enable = false;
  83. group2.btn_end.enable = false;
  84. }
  85. if(userAuth == "Q"){
  86. group2.btn_fbreq.enable = true;
  87. group2.btn_end.enable = true;
  88. }
  89. }
  90. //3. 현재상태가 F/B요청 경우
  91. if(prcsstatcd == "3"){
  92. if(userAuth == "U"){
  93. group2.grp_plan.btn_save.enable = false;
  94. group2.grp_plan.btn_tran.enable = false;
  95. group2.btn_fbreq.enable = false;
  96. group2.btn_end.enable = false;
  97. }
  98. else if(userAuth == "Q"){
  99. groupRevitalize("group2.grp_plan", "D", "Y");
  100. group2.grp_plan.btn_filedown.enable = true;
  101. group2.btn_fbreq.enable = false;
  102. group2.btn_end.enable = false;
  103. //QI팀이라도 등록자, 팀장,간사에 속해있으면 F/B반영을 할수잇다.
  104. var loginID = sysf_getUserId();
  105. var rgstID = ds_main_cond.getColumn(0, "rgstrid");
  106. var chfID = ds_main_cond.getColumn(0, "chfid");
  107. var staffid = ds_main_cond.getColumn(0, "staffid");
  108. if(loginID == rgstID || loginID == chfID || loginID == staffid){
  109. groupRevitalize("group2.grp_plan", "D", "N");
  110. group2.grp_plan.btn_save.enable = false;
  111. group2.grp_plan.btn_tran.enable = false;
  112. }
  113. }
  114. }
  115. //4. 현재상태가 F/B반영 경우
  116. if(prcsstatcd == "4"){
  117. if(userAuth == "U"){
  118. groupRevitalize("group2.grp_plan", "D", "Y");
  119. group2.grp_plan.btn_filedown.enable = true;
  120. group2.grp_plan.btn_save.enable = false;
  121. group2.grp_plan.btn_tran.enable = false;
  122. group2.grp_plan.btn_fbreflt.enable = false;
  123. group2.btn_fbreq.enable = false;
  124. group2.btn_end.enable = false;
  125. }
  126. else if(userAuth == "Q"){
  127. groupRevitalize("group2.grp_plan", "D", "Y");
  128. group2.grp_plan.btn_filedown.enable = true;
  129. group2.btn_fbreq.enable = true;
  130. group2.btn_end.enable = true;
  131. }
  132. }
  133. //5. 현재상태가 마감인 경우
  134. if(prcsstatcd == "5"){
  135. groupRevitalize("group2.grp_plan", "D", "Y");
  136. group2.grp_plan.btn_filedown.enable = true;
  137. group2.btn_fbreq.enable = false;
  138. group2.btn_end.enable = false;
  139. }
  140. }
  141. //첨부파일 유무에따른 버튼활성화 상태 설정
  142. if(utlf_isNull(ds_main_cond.getColumn(0, "attfile"))){
  143. group2.grp_plan.btn_filedel.enable = false;
  144. group2.grp_plan.btn_filedown.enable = false;
  145. }
  146. //Qi팀 여부에따른 FeedBack입력란 활성화
  147. if(userAuth == "Q" && prcsstatcd != "5" && prcsstatcd != "1" && prcsstatcd != "3"){
  148. group2.tar_feedbackcnts.enable = true;
  149. }
  150. else{
  151. group2.tar_feedbackcnts.enable = false;
  152. }
  153. //Other이면 조회만 되게끔 설정
  154. if(userAuth == "O"){
  155. groupRevitalize("group2.grp_plan", "D", "Y");
  156. group2.btn_fbreq.enable = false;
  157. group2.btn_end.enable = false;
  158. group2.grp_plan.tar_feedbackcnts.enable = false;
  159. group2.grp_plan.btn_filedown.enable = true;
  160. }
  161. if(userAuth == "Q"){
  162. group2.grp_plan.btn_exe.visible = true;
  163. group2.grp_plan.btn_search.enable = true;
  164. group2.grp_plan.btn_filedel.enable = true;
  165. group2.grp_plan.btn_exe.enable = true;
  166. group2.grp_plan.btn_del.disabled = false;
  167. group2.grp_plan.grp_mngt.disabled = false;
  168. groupRevitalize("group2.grp_plan", "D", "N");
  169. groupRevitalize("group2.grp_plan.grp_mngt", "D", "N");
  170. }else{
  171. groupRevitalize("group2.grp_plan.grp_mngt", "D", "Y");
  172. group2.grp_plan.btn_del.disabled = true;
  173. }
  174. //양식 저장경로 가져오기
  175. var oParam = {};
  176. oParam.id = "TRMQK00103";
  177. oParam.service = "qiapp.QiActivityMngt";
  178. oParam.method = "reqGetForm";
  179. oParam.inds = "req=ds_main_cond";
  180. oParam.outds = "ds_hidden_form=form";
  181. oParam.async = false;
  182. //oParam.callback = "cf_TRMQK00103";
  183. tranf_submit(oParam);
  184. group2.grp_plan.btn_fileform.enable = true;
  185. //항상
  186. //group2.grp_plan.btn_del.enable = true;
  187. /*+++++++++++++++++++++++권한별 화면 설정 끝+++++++++++++++++++++++*/
  188. lf_mmbfGetDeptCodeComboList(ds_init_dept, "I");
  189. }
  190. /**
  191. * @---------------------------------------------------
  192. * @desc : 팀장, 간사 세부정보 조회 function
  193. * @param : kind : 팀장간사구분
  194. * @return :
  195. * @---------------------------------------------------
  196. */
  197. function getUserPopInfo(kind){
  198. ds_main_tempuserinfo_list.clear();
  199. ds_main_userpopupinfo.setColumn(0, "param", "_OneS_DD");
  200. var objArg = new Object();
  201. objArg.param = ds_main_userpopupinfo.getColumn(0, "param");
  202. var rtnDs = frmf_modal("SPZSU10103","SPZSU10103",objArg,"",1,200,200,"","","","","","M");
  203. ds_main_tempuserinfo_list.copyData(rtnDs);
  204. var emplno = ds_main_tempuserinfo_list.getColumn(0, "userid");
  205. var empInm = ds_main_tempuserinfo_list.getColumn(0, "usernm");
  206. //2017.02.28 팀장 및 간사 소속부서를 근무지부서로 수정
  207. //var empdeptcd = ds_main_tempuserinfo_list.getColumn(0, "posdeptcd");
  208. //var empdeptnm = ds_main_tempuserinfo_list.getColumn(0, "posdeptnm");
  209. var empdeptcd = ds_main_tempuserinfo_list.getColumn(0, "dutplcecd");
  210. var empdeptnm = ds_main_tempuserinfo_list.getColumn(0, "dutplcenm");
  211. ds_send_userinfo.setColumn(0, "userid", emplno);
  212. var oParam = {};
  213. oParam.id = "TRMQK00101";
  214. oParam.service = "qiapp.QiActivityMngt";
  215. oParam.method = "reqGetChfInfo";
  216. oParam.inds = "req=ds_send_userinfo";
  217. oParam.outds = "ds_tmp_userinfo=userinfo";
  218. oParam.async = false;
  219. //oParam.callback = "cf_TRMQK00101";
  220. tranf_submit(oParam);
  221. var empemail = ds_tmp_userinfo.getColumn(0, "email");
  222. var emptel = ds_tmp_userinfo.getColumn(0, "tel");
  223. var empmpphonno = ds_tmp_userinfo.getColumn(0, "mpphonno");
  224. if(kind == "1"){
  225. ds_main_cond.setColumn(0, "chfid", emplno);
  226. ds_main_cond.setColumn(0, "chfhngnm", empInm);
  227. ds_main_cond.setColumn(0, "chfdeptcd", empdeptcd);
  228. ds_main_cond.setColumn(0, "chfdeptnm", empdeptnm);
  229. ds_main_cond.setColumn(0, "chfemail", empemail);
  230. ds_main_cond.setColumn(0, "chfcntctel", emptel);
  231. ds_main_cond.setColumn(0, "chfceltel", empmpphonno);
  232. }
  233. else if(kind == "2"){
  234. ds_main_cond.setColumn(0, "staffid", emplno);
  235. ds_main_cond.setColumn(0, "staffhngnm", empInm);
  236. ds_main_cond.setColumn(0, "staffdeptcd", empdeptcd);
  237. ds_main_cond.setColumn(0, "staffdeptnm", empdeptnm);
  238. ds_main_cond.setColumn(0, "staffemail", empemail);
  239. ds_main_cond.setColumn(0, "staffcntctel", emptel);
  240. ds_main_cond.setColumn(0, "staffceltel", empmpphonno);
  241. }
  242. }
  243. /**
  244. * @---------------------------------------------------
  245. * @desc : QI활동 계획서 저장 function
  246. * @param :
  247. * @return :
  248. * @---------------------------------------------------
  249. */
  250. function fSave(){
  251. /*+++++++++++++++++++++++필수 입력란 체크+++++++++++++++++++++++*/
  252. // 칠곡, QI 관리자 권한
  253. var userAuth = fchkUser();
  254. if(lgv_instcd && userAuth == "Q"){
  255. if(!frmf_isRequiredGroup("group2.grp_plan.grp_mngt"))
  256. return false;
  257. }else{
  258. if(!frmf_isRequiredGroup("group2.grp_plan")){
  259. return false;
  260. }
  261. if(fChkSave() == false ){
  262. return false;
  263. }
  264. }
  265. /*+++++++++++++++++++++++끝+++++++++++++++++++++++*/
  266. ds_send_cond_condition.copyRow(0, ds_main_cond, 0);
  267. /////////////////////////////
  268. ///// 목표 단위 체크 //////
  269. if(ds_main_cond.getColumn(0, "goalunit") == "-"){
  270. ds_send_cond_condition.setColumn(0, "goalunit", "");
  271. var unitExtn = group2.grp_plan.ipt_goalunit_extn.value;
  272. if( userAuth != "Q" && utlf_isNull(unitExtn) ){
  273. sysf_messageBox("단위입력은","I003");
  274. group2.grp_plan.ipt_goalunit_extn.setFocus();
  275. return false;
  276. }
  277. if( !utlf_isNull(unitExtn) ){
  278. ds_send_cond_condition.setColumn(0, "goalunit", unitExtn);
  279. }
  280. }
  281. /////////////////////////////
  282. var oParam = {};
  283. oParam.id = "TXMQK00100";
  284. oParam.service = "qiapp.QiActivityMngt";
  285. oParam.method = "reqSetQiActivityPlan";
  286. oParam.inds = "req=ds_send_cond_condition attach=ds_send_cond_attach";
  287. oParam.outds = "ds_temp_cond=acptno";
  288. oParam.async = false;
  289. //oParam.callback = "cf_TXMQK00100";
  290. tranf_submit(oParam);
  291. ds_send_cond_attach.clearData();
  292. ds_send_cond_attach.addRow();
  293. acptno = ds_temp_cond.getColumn(0, "acptno");
  294. ds_main_cond.setColumn(0, "acptno" , acptno);
  295. ds_main_cond.setColumn(0, "prcsstagecd" , "100");
  296. fInitialize();
  297. }
  298. /**
  299. * @---------------------------------------------------
  300. * @desc : Login User 권한 조회
  301. * @param :
  302. * @return : userAuth(사용자권한) U:사용자 Q:QI관리자 O:Other
  303. * @---------------------------------------------------
  304. */
  305. function fchkUser(){
  306. var userAuth = "";
  307. var loginID = sysf_getUserId();
  308. var rgstID = ds_main_cond.getColumn(0, "rgstrid");
  309. var chfID = ds_main_cond.getColumn(0, "chfid");
  310. var staffid = ds_main_cond.getColumn(0, "staffid");
  311. //테스트를위해 생성한 하드코딩
  312. var TestQI = "DEVB03";
  313. //Test 용
  314. //if(loginID == TestQI){
  315. // userAuth = "Q";
  316. //}
  317. //원래이거다 테스트를위해 막아놨음
  318. if(sysf_checkUserGroup("UGE_QIO") || sysf_checkUserGroup("UGE_QIT")){
  319. userAuth = "Q";
  320. }
  321. else if(loginID == rgstID || loginID == chfID || loginID == staffid
  322. || (utlf_isNull(chfID) && utlf_isNull(staffid))){
  323. userAuth = "U";
  324. }
  325. else if(loginID != rgstID && loginID != chfID && loginID != staffid){
  326. userAuth = "O";
  327. }
  328. return userAuth;
  329. }
  330. function fChkSave()
  331. {
  332. if (utlf_isNull(ds_main_cond.getColumn(0, "majrdeptnm")))
  333. {
  334. sysf_messageBox("주무부서는","I003");
  335. return false;
  336. }
  337. if (utlf_isNull(ds_main_cond.getColumn(0, "chfhngnm")) || utlf_isNull(ds_main_cond.getColumn(0, "chfdeptnm")))
  338. {
  339. sysf_messageBox("팀장은","I003");
  340. return false;
  341. }
  342. if (utlf_isNull(ds_main_cond.getColumn(0, "staffhngnm")) || utlf_isNull(ds_main_cond.getColumn(0, "staffdeptnm")))
  343. {
  344. sysf_messageBox("간사는","I003");
  345. return false;
  346. }
  347. }
  348. function fDel()
  349. {
  350. var prcsstatcd = ds_main_cond.getColumn(0, "prcsstatcd");
  351. var prcsstagecd = ds_main_cond.getColumn(0, "prcsstagecd");
  352. var planrgstrid = ds_main_cond.getColumn(0, "planrgstrid");
  353. var planrgstrhngnm = ds_main_cond.getColumn(0, "planrgstrhngnm");
  354. var userAuth = "";
  355. userAuth = fchkUser(); //사용자별 권한정보 가져오기
  356. if (userAuth != "Q"){
  357. if (prcsstatcd != "1") {
  358. sysf_messageBox("삭제할 수 없는 상태입니다","I999");
  359. return false;
  360. }
  361. if (planrgstrid != sysf_getUserInfo("userid")) {
  362. sysf_messageBox("삭제할 수 있는 사용자가 아닙니다. 등록자:"+planrgstrhngnm,"I999");
  363. return false;
  364. }
  365. }
  366. if ( sysf_messageBox ( "삭제 하시겠습니까?","Q") != "6" )
  367. return false;
  368. ds_send_cond_condition.copyRow(0, ds_main_cond, 0);
  369. var oParam = {};
  370. oParam.id = "TXMQK00200";
  371. oParam.service = "qiapp.QiActivityMngt";
  372. oParam.method = "reqDelQiActivityPlan";
  373. oParam.inds = "req=ds_send_cond_condition attach=ds_send_cond_attach";
  374. oParam.outds = "ds_hidden_cnt=cnt";
  375. oParam.async = false;
  376. //oParam.callback = "cf_TXMQK00200";
  377. tranf_submit(oParam);
  378. var delcnt = ds_hidden_cnt.getColumn(0, "delcnt");
  379. if (delcnt > 0){
  380. sysf_messageBox("정상","I002");
  381. if(frmf_isPopup() == true){
  382. this.close();
  383. }else{
  384. this.reload();
  385. }
  386. }
  387. else {
  388. sysf_messageBox("삭제오류","");
  389. }
  390. }
  391. ]]></Script>