SPAYA01300.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430
  1. /**
  2. * 행사일정등록관리
  3. * 2007/11/13 dhkim 신규 작성
  4. *
  5. */
  6. var currentdate = getCurrentDate(); //현재일자
  7. var sdate = ((currentdate.toDate()).getAddDate(-1, "M")).getDateFormat(); //보름전
  8. /*
  9. * 초기화
  10. */
  11. function fInit(isUpdate){
  12. //파라메터에서 가져오는 값을 저장하기 위한 임시 변수
  13. var scrnstatus = '';
  14. var condclsnm = '';
  15. var condclscd = '';
  16. var grd_clscd = '';
  17. var grd_seqno = '';
  18. //팝업띄울때 가져오는 파라메터값을 변수에 임시 저장
  19. if (checkOpener()) {
  20. scrnstatus = opener.javascript.getParameter("scrnstatus"); //INSERT/UPDATE상태값
  21. condclsnm = opener.javascript.getParameter("condclsnm"); //행사명
  22. condclscd = opener.javascript.getParameter("condclscd"); //행사코드
  23. grd_clscd = opener.javascript.getParameter("grd_clscd"); //그리드에서 선택한 행사코드(update시)
  24. grd_seqno = opener.javascript.getParameter("grd_seqno"); //그리드에서 선택한 일련번호(update시)
  25. } else {
  26. messageBox("상위화면이 변경되어 데이터를 전달할 수 ", "I004");
  27. }
  28. if(isUpdate){
  29. scrnstatus = 'updt';
  30. grd_clscd = model.getValue('root/main/hidden/keys/clscd');
  31. grd_seqno = model.getValue('root/main/hidden/keys/seqno');
  32. }
  33. //신규등록 버튼 클릭해서 팝업 띄웠을때
  34. if (scrnstatus == 'ins') {
  35. model.setValue("/root/main/festivschelist/festivschelistinfo/clsnm", condclsnm); //화면 오픈시 행사명에 이름 띄우기
  36. model.setValue("/root/main/festivschelist/festivschelistinfo/clscd", condclscd); //화면 오픈시 행사코드에 값 가져가기
  37. model.setValue("/root/main/festivschelist/festivschelistinfo/status", 'i'); //등록 status설정
  38. //default값 세팅..
  39. model.setValue("/root/main/festivschelist/festivschelistinfo/fromdd", currentdate); //행사시작일
  40. model.setValue("/root/main/festivschelist/festivschelistinfo/todd", currentdate); //행사종료일
  41. grd_progrssche.deleteRow(1);
  42. model.makeNode("/root/temp/main/festivschelist/festivschelistinfo");
  43. model.copyNode("/root/temp/main/festivschelist/festivschelistinfo","/root/main/festivschelist/festivschelistinfo");
  44. }
  45. //수정버튼 클릭해서 팝업 띄웠을때
  46. else if (scrnstatus == 'updt') {
  47. //저장되어 있던 데이터 조회를 위한 key 값 세팅
  48. model.removeNodeset("/root/send/reqdata");
  49. model.makeNode("/root/send/reqdata");
  50. model.makeNode("/root/send/reqdata/clscd");
  51. model.makeNode("/root/send/reqdata/seqno");
  52. model.setValue("/root/send/reqdata/clscd", grd_clscd);
  53. model.setValue("/root/send/reqdata/seqno", grd_seqno);
  54. fSearch();//행사일정 및 행사진행일정 조회
  55. }
  56. model.setValue('/root/hidden/addrowcnt', 1);//default로 행추가 버튼 클릭시 추가할 row 갯수 세팅
  57. model.refresh();
  58. }
  59. /*
  60. * 행사일정 및 행사진행일정 조회
  61. */
  62. function fSearch(){
  63. model.removeNodeset("/root/main/festivdetaillist/festivdetaillistinfo");//행사진행일정 그리드 초기화
  64. //행사일정조회
  65. if (submit("TRAYA01301", false)) {//가져온 카값을 가지고 저장되어있던 데이터를 조회하여 화면에 로드.
  66. //저장시 구분하기 위한 화면 코드
  67. model.makeNode('/root/main/festivschelist/festivschelistinfo/status');
  68. //수정 status설정
  69. model.setValue("/root/main/festivschelist/festivschelistinfo/status",'u');
  70. model.removeNodeset('/root/main/festivdetaillist');
  71. //행사진행일정 조회
  72. submit("TRAYA01302", false);
  73. //node 복사
  74. model.makeNode("/root/temp/main");
  75. model.copyNode("/root/temp/main","/root/main");
  76. model.refresh();
  77. }
  78. }
  79. //담당원목자, 주례자 팝업 호출
  80. function fPastorConslrSearch(flag) {
  81. if(flag == 'pastor'){
  82. model.resetInstanceNode('/root/popdata');
  83. setParameter("SPAYA02800_joblncd", "A");
  84. modal("SPAYA02800", 1, 200, 100);
  85. if(model.getValue("/root/popdata/conslrid") != ''){
  86. //담당원목자 셋팅
  87. model.setValue('/root/main/festivschelist/festivschelistinfo/pastorid', model.getValue("/root/popdata/conslrid"));
  88. model.setValue('/root/main/festivschelist/festivschelistinfo/pastornm', model.getValue("/root/popdata/conslrnm"));
  89. //model.refresh();
  90. }else{
  91. //model.setValue('/root/main/festivschelist/festivschelistinfo/pastorid', model.getValue("/root/hidden/prepoppsn/id"));
  92. //model.setValue('/root/main/festivschelist/festivschelistinfo/pastornm', model.getValue("/root/hidden/prepoppsn/nm"));
  93. //model.refresh();
  94. }
  95. }else if(flag == 'chrgconslr'){
  96. model.resetInstanceNode('/root/popdata');
  97. setParameter("SPAYA02800_joblncd", "A");
  98. modal("SPAYA02800", 1, 200, 100);
  99. if(model.getValue("/root/popdata/conslrid") != ''){
  100. //담당원목자 셋팅
  101. model.setValue('/root/main/festivschelist/festivschelistinfo/chrgconslrid', model.getValue('/root/popdata/conslrid'));
  102. model.setValue('/root/main/festivschelist/festivschelistinfo/chrgconslrnm', model.getValue('/root/popdata/conslrnm'));
  103. //model.refresh();
  104. }else{
  105. //model.setValue('/root/main/festivschelist/festivschelistinfo/chrgconslrid', model.getValue('/root/hidden/prepoppsn/id'));
  106. //model.setValue('/root/main/festivschelist/festivschelistinfo/chrgconslrnm', model.getValue('/root/hidden/prepoppsn/nm'));
  107. //model.refresh();
  108. }
  109. }
  110. model.refresh();
  111. }
  112. /*
  113. * 저장전 유효성 체크
  114. */
  115. function fIsValid(){
  116. var xMPath = '/root/main/festivschelist/festivschelistinfo';
  117. var xDPath = '/root/main/festivdetaillist/festivdetaillistinfo';
  118. //마스터데이터 체크
  119. if(model.getValue(xMPath + '/clscd') == ''){
  120. messageBox('행사일정 관련사항의 행사명이 선택되지 않아 저장', 'E001');
  121. return false;
  122. }
  123. if(model.getValue(xMPath + '/titlnm') == ''){
  124. messageBox('행사내용을', 'C001');
  125. return false;
  126. }
  127. if(model.getValue(xMPath + '/fromdd') == ''){
  128. messageBox('행사시작일을 ', 'C001');
  129. return false;
  130. }
  131. if(model.getValue(xMPath + '/todd') == ''){
  132. messageBox('행사종료일을 ', 'C001');
  133. return false;
  134. }
  135. if(model.getValue(xMPath + '/chrgconslrnm') != '' && model.getValue(xMPath + '/chrgconslrid') == ''){
  136. messageBox('담당원목자를 ', 'C001');
  137. return false;
  138. }
  139. if(model.getValue(xMPath + '/pastorid') != '' && model.getValue(xMPath + '/pastorid') == ''){
  140. messageBox('주례자를 ', 'C001');
  141. return false;
  142. }
  143. /*
  144. if(model.getValue(xMPath + '/fromtm') == ''){
  145. messageBox('시작시간을 ', 'C001');
  146. return false;
  147. }
  148. if(model.getValue(xMPath + '/totm') == ''){
  149. messageBox('종료시간을 ', 'C001');
  150. return false;
  151. }
  152. if(model.getValue(xMPath + '/plcenm') == ''){
  153. messageBox('장소를 ', 'C001');
  154. return false;
  155. }
  156. if(model.getValue(xMPath + '/trgtpsnqty') == ''){
  157. messageBox('참석인원을 ', 'C001');
  158. return false;
  159. }
  160. if(model.getValue(xMPath + '/voluntrnm') == ''){
  161. messageBox('봉사자를 ', 'C001');
  162. return false;
  163. }
  164. */
  165. /*
  166. //유효한 날짜인지 체크.. return true/false;
  167. isValidDateTime(pDateString, pFormat)
  168. */
  169. var prcsdd = '';
  170. var actnm = '';
  171. var stm = '';
  172. var etm = '';
  173. //디테일 체크
  174. for(var i = 1; i < grd_progrssche.rows; i++){
  175. //grd_progrssche.rowStatus(i) -> 0:new, 1 : insert, 2 : update, 3 : insert & new , 4 : delete, 5 : delete & insert , 6 : delete & update
  176. if(grd_progrssche.rowStatus(i) != 4){
  177. prcsdd = model.getValue(xDPath + '[' + i + ']/prcsdd');
  178. actnm = model.getValue(xDPath + '[' + i + ']/actnm');
  179. stm = model.getValue(xDPath + '[' + i + ']/fromtm');
  180. etm = model.getValue(xDPath + '[' + i + ']/totm');
  181. if(actnm == ''){
  182. messageBox(i+ '번째의 활동명을 ', 'C001');
  183. return false
  184. }
  185. if(prcsdd == ''){
  186. messageBox(i+ '번째의 진행일자를 ', 'C001');
  187. return false
  188. }
  189. /*
  190. if(stm == ''){
  191. messageBox(i+ '번째의 시작시간을 ', 'C001');
  192. return false
  193. }
  194. if(etm == ''){
  195. messageBox(i+ '번째의 종료시간을 ', 'C001');
  196. return false
  197. }
  198. */
  199. }
  200. }
  201. return true;
  202. }
  203. /*
  204. * 행사일정 관련사항 저장
  205. */
  206. function fSave(){
  207. if(fIsValid()){
  208. var xFestivListPath = "/root/main/festivschelist/festivschelistinfo";
  209. var xFestivDetailListPath = '/root/main/festivdetaillist/festivdetaillistinfo';
  210. //keys
  211. var clscd = model.getValue(xFestivListPath + "/clscd");
  212. var seqno = model.getValue(xFestivListPath + "/seqno");
  213. var trgtpsnqty = model.getValue(xFestivListPath + "/trgtpsnqty");
  214. if(trgtpsnqty == ''){
  215. trgtpsnqty = 0;
  216. }
  217. //행사일정
  218. var sFestivData = "clscd" //01.분류코드
  219. + "▦seqno" //03.일련번호
  220. + "▦fromdd" //02.시작일자
  221. + "▦todd" //06.종료일자
  222. + "▦titlnm" //05.제목명
  223. + "▦fromtm" //07.시작시간
  224. + "▦totm" //08.종료시간
  225. + "▦plcenm" //09.장소명
  226. + "▦trgtpsnqty" //10.참석인원
  227. + "▦chrgconslrid" //11.담당원목자ID
  228. + "▦pastorid" //12.주례자ID
  229. + "▦pastornm" //13.주례자명
  230. + "▦voluntrnm" //14.봉사자명
  231. + "▦schecnts" //15.일정내용
  232. + "▦valursltcnts" //16.평가결과내용
  233. + "▦valubugtcnts" //17.평가예산내용
  234. + "▦status" //18.i,u,d상태플래그
  235. + "▩" ;
  236. sFestivData += clscd //01.분류코드
  237. + "▦" + seqno //03.일련번호
  238. + "▦" + model.getValue(xFestivListPath + "/fromdd") //02.시작일자
  239. + "▦" + model.getValue(xFestivListPath + "/todd") //06.종료일자
  240. + "▦" + model.getValue(xFestivListPath + "/titlnm") //05.제목명
  241. + "▦" + model.getValue(xFestivListPath + "/fromtm") //07.시작시간
  242. + "▦" + model.getValue(xFestivListPath + "/totm") //08.종료시간
  243. + "▦" + model.getValue(xFestivListPath + "/plcenm") //09.장소명
  244. + "▦" + trgtpsnqty //10.참석인원
  245. + "▦" + model.getValue(xFestivListPath + "/chrgconslrid") //11.담당원목자ID
  246. + "▦" + model.getValue(xFestivListPath + "/pastorid") //12.주례자ID
  247. + "▦" + model.getValue(xFestivListPath + "/pastornm") //13.주례자명
  248. + "▦" + model.getValue(xFestivListPath + "/voluntrnm") //14.봉사자명
  249. + "▦" + model.getValue(xFestivListPath + "/schecnts") //15.일정내용
  250. + "▦" + model.getValue(xFestivListPath + "/valursltcnts") //16.평가결과내용
  251. + "▦" + model.getValue(xFestivListPath + "/valubugtcnts") //17.평가예산내용
  252. + "▦" + model.getValue(xFestivListPath + "/status"); //18.i,u,d상태플래그
  253. + "▩" ;
  254. var sFestivDetailData = getGridUpdateData(grd_progrssche);
  255. model.removenode("/root/send");
  256. model.makeNode("/root/send");
  257. model.makeValue("/root/send/sFestivData", sFestivData );
  258. model.makeValue("/root/send/sFestivDetailData", sFestivDetailData );
  259. if(submit("TXAYA01301", false)){
  260. messageBox("자료 저장이 ","I002");
  261. //fSearch();
  262. //fInit(true);
  263. window.close();
  264. }
  265. }
  266. }
  267. /*
  268. //원목자명 입력후 엔터키 치면 실제 원목자팝업 조회쿼리에서 아이디를 찾는다.
  269. //명칭 입력한 것에 대한 아이디가 없으면 원목자선택하는 팝업을 띄워준다.
  270. */
  271. function fgetPastorConslrId(pcGbn, pcNm){
  272. //alert(pcNm);
  273. model.removeNodeset('/root/send/conslrpastor');
  274. model.makeNode('/root/send/conslrpastor/conslrpastorgbn');
  275. model.makeNode('/root/send/conslrpastor/conslrpastornm');
  276. model.setValue('/root/send/conslrpastor/conslrpastorgbn', pcGbn);
  277. model.setValue('/root/send/conslrpastor/conslrpastornm', pcNm);
  278. if (pcNm == '')
  279. {
  280. if(pcGbn == 'pastor'){
  281. model.setValue('/root/main/festivschelist/festivschelistinfo/pastorid', '');
  282. model.setValue('/root/main/festivschelist/festivschelistinfo/pastornm', '');
  283. }else if(pcGbn == 'chrgconslr'){
  284. model.setValue('/root/main/festivschelist/festivschelistinfo/chrgconslrid', '');
  285. model.setValue('/root/main/festivschelist/festivschelistinfo/chrgconslrnm', '');
  286. }
  287. return;
  288. model.setValue('/root/main/festivschelist/festivschelistinfo/chrgconslrid', '');
  289. model.setValue('/root/main/festivschelist/festivschelistinfo/chrgconslrnm', '');
  290. }
  291. if(submit('TRAYA01303')){
  292. fsetPastorConslrId(pcGbn);
  293. }
  294. }
  295. /*
  296. 조회해 온 원목자, 주례자를 세팅한다.
  297. pcGbn : 원목자, 주례자 구분 (원목자 : 'chrgconslr' , 주례자 : 'pastor')
  298. */
  299. function fsetPastorConslrId(pcGbn){
  300. var pcId = model.getValue('/root/hidden/conslrpastor/chrgconslrlistinfo/conslrpastorid');
  301. var pcNm = model.getValue('/root/hidden/conslrpastor/chrgconslrlistinfo/conslrpastornm');
  302. model.setValue('/root/main/festivschelist/festivschelistinfo/' + pcGbn + 'id', pcId);
  303. model.setValue('/root/main/festivschelist/festivschelistinfo/' + pcGbn + 'nm', pcNm);
  304. //model.refresh();
  305. if(pcId == ''){
  306. fPastorConslrSearch(pcGbn);//조회해온 아이디값이 없으면 원목자, 주례자 선택 팝업을 호출한다.
  307. }
  308. }