SMAYA01700.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524
  1. /**
  2. * @desc : 방송기도일정조회 화면 오픈시
  3. * @
  4. * @param :
  5. * @return :
  6. * @author :
  7. * @---------------------------------------------------
  8. */
  9. function fInit() {
  10. //그리드 초기화
  11. //model.removeNodeset("/root/main/cal/weeks");
  12. //model.removeNodeset("/root/main/brodcstscheinfo/brodcstschelistinfo");
  13. //조회일자 오늘날짜로 셋팅
  14. var CurrentDate = getCurrentDate();
  15. var sYear = CurrentDate.substr(0,4);
  16. var sMonth = CurrentDate.substr(4,2);
  17. model.setValue("/root/main/cond/brodcstyy", sYear);
  18. model.setValue("/root/main/cond/brodcstmm", sMonth);
  19. //방송구분 콤보리스트 조회
  20. zbcfGetCodeList(new Array("A0214"), new Array("/root/init/comcodelist/brodcstflagcd_cmblist"), true);
  21. model.refresh();
  22. var InsUpdtValue = model.getValue("/root/init/insupdtvalue"); //저장, 수정 여부
  23. if (InsUpdtValue == 'y') {
  24. fBrodcstRef();
  25. } else {
  26. return;
  27. }
  28. //원목자리스트 조회
  29. submit("TRAYA01701");
  30. }//fInit END
  31. /**
  32. * @desc : 방송기도 일정조회
  33. * @
  34. * @param :
  35. * @return :
  36. * @author :
  37. * @---------------------------------------------------
  38. */
  39. function fBrodcstRef() {
  40. var brodcstyy = model.getValue("/root/main/cond/brodcstyy");
  41. var brodcstmm = model.getValue("/root/main/cond/brodcstmm");
  42. var btn_AMsel = "M";
  43. var btn_PMsel = "N";
  44. if(btn_PM.selected == true) {
  45. model.setValue("/root/main/cond/brodcstflagcd", btn_PMsel);
  46. model.refresh();
  47. }else if(btn_PM.selected == false){
  48. model.setValue("/root/main/cond/brodcstflagcd", btn_AMsel);
  49. model.refresh();
  50. }
  51. var brodcstdate = brodcstyy.concat(brodcstmm);
  52. model.setValue("/root/main/cond/brodcstdate", brodcstdate);
  53. model.removeNodeset("/root/send/reqdata");
  54. model.makeNode("/root/send/reqdata");
  55. model.copyNode("/root/send/reqdata", "/root/main/cond");
  56. model.refresh();
  57. if (submit("TRAYA01702") == true) {
  58. model.resetInstanceNode("/root/main/cal");
  59. fSetCalendar();
  60. fSetCalendarStyle();
  61. fSetScheList();
  62. } else {
  63. messageBox("병원일정 데이터를 가져올 수", "I004");
  64. return;
  65. }
  66. }//fBrodcstRef END
  67. /**
  68. * @desc : 달력정보 및 일자별 담당원목자를 달력에 표시
  69. * @
  70. * @param :
  71. * @return :
  72. * @author :
  73. * @---------------------------------------------------
  74. */
  75. function fSetCalendar() {
  76. var selDataCnt = getNodesetCnt(model1, "/root/main/brodcstscheinfo/caldatainfo");
  77. var dw = "sun mon tue wed thu fri sat";
  78. var sDay = dw.split(" ");
  79. for ( i = 1; i <= selDataCnt; i++) {
  80. var row = model.getValue("/root/main/brodcstscheinfo/caldatainfo[" + i + "]/weekno");
  81. var col = model.getValue("/root/main/brodcstscheinfo/caldatainfo[" + i + "]/dw")-1 ;
  82. var dutflag = model.getValue("/root/main/brodcstscheinfo/caldatainfo[" + i + "]/dutflag");
  83. if (dutflag == "4"){ //토요일인 경우, 파란색 설정
  84. grd_calendar.cellStyle("color", row, col, row, col) = "#0000ff";
  85. } else if ( dutflag == '8') { //휴일인 경우, 빨간색 설정
  86. grd_calendar.cellStyle("color", row, col, row, col) = "#ff0000";
  87. } else { //그 이외는 검정색(평일 : 0)
  88. grd_calendar.cellStyle("color", row, col, row, col) = "#000000";
  89. }
  90. model.setValue("/root/main/cal/weeks[" + row + "]/" + sDay[col], model.getValue("/root/main/brodcstscheinfo/caldatainfo[" + i + "]/day") + "\n"
  91. + " " + model.getValue("/root/main/brodcstscheinfo/caldatainfo[" + i + "]/chrgdeptnm") + "\n"
  92. + " " + model.getValue("/root/main/brodcstscheinfo/caldatainfo[" + i + "]/chrgempnm") + "\n"
  93. + " " + model.getValue("/root/main/brodcstscheinfo/caldatainfo[" + i + "]/biblenm"));
  94. }
  95. model.refresh();
  96. }//fSetCalendar END
  97. /**
  98. * @desc : 리스트 구분항목 셋팅
  99. * @
  100. * @param :
  101. * @return :
  102. * @author :
  103. * @---------------------------------------------------
  104. */
  105. function fSetScheList() {
  106. for ( var i = 1; i < grd_list.rows; i++) {
  107. var brodcstflagcd = model.getValue("/root/main/cond/brodcstflagcd");
  108. model.setValue("/root/main/brodcstscheinfo/brodcstschelistinfo[" + i + "]/brodcstflagcd", brodcstflagcd);
  109. }
  110. model.refresh();
  111. }//fSetScheList END
  112. /**
  113. * @desc : 달력스타일 셋팅
  114. * @
  115. * @param :
  116. * @return :
  117. * @author :
  118. * @---------------------------------------------------
  119. */
  120. function fSetCalendarStyle() {
  121. //height
  122. grd_calendar.dataHeight = 92;
  123. //font style
  124. grd_calendar.allStyle("all", "font-size") = "15px";
  125. //달력 기본색 지정
  126. grd_calendar.allStyle("all", "background-color") = "#ffffff"; //흰색
  127. }//fSetCalendarStyle END
  128. /**
  129. * @desc : 달력 클릭시
  130. * @
  131. * @param :
  132. * @return :
  133. * @author :
  134. * @---------------------------------------------------
  135. */
  136. function fSetColor() {
  137. var iRow = grd_calendar.row;
  138. var iCol = grd_calendar.col;
  139. if (iRow < 1) return;
  140. var selectedCells = grd_calendar.selectedCells;
  141. var cell = grd_calendar.selectedCells.item(0);
  142. var dataarray = grd_calendar.valueMatrix(cell.row, cell.col).split("\n"); //일
  143. var dd = model.getValue("/root/main/brodcstscheinfo/caldatainfo[day='" + dataarray[0] + "']/basedd"); //년월일
  144. if (dd != "") {
  145. grd_calendar.allStyle("all", "background-color") = "#ffffff"; //흰색
  146. grd_calendar.cellstyle("background-color", iRow, iCol, iRow, iCol) = "#ccffff"; //하늘색
  147. }
  148. model.refresh();
  149. }//fSetColor END
  150. /**
  151. * @desc : 달력 더블 클릭시 팝업호출
  152. * @
  153. * @param :
  154. * @return :
  155. * @author :
  156. * @---------------------------------------------------
  157. */
  158. function fSelectedDate() {
  159. var iRow = grd_calendar.row;
  160. if (iRow < 1) return;
  161. var selectedCells = grd_calendar.selectedCells;
  162. var cell = grd_calendar.selectedCells.item(0);
  163. var dataarray = grd_calendar.valueMatrix(cell.row, cell.col).split("\n"); //일
  164. var dd = model.getValue("/root/main/brodcstscheinfo/caldatainfo[day='" + dataarray[0] + "']/basedd"); //년월일
  165. var btn_AMsel = "M";
  166. var btn_PMsel = "N";
  167. if(btn_PM.selected == true) {
  168. model.setValue("/root/main/cond/brodcstflagcd", btn_PMsel);
  169. model.refresh();
  170. }else{
  171. model.setValue("/root/main/cond/brodcstflagcd", btn_AMsel);
  172. model.refresh();
  173. }
  174. if (dd != "") {
  175. //등록화면 팝업
  176. var brodcstflagcd = setParameter("brodcstflagcd", model.getValue("/root/main/cond/brodcstflagcd"));
  177. var basedd = setParameter("basedd", dd);
  178. modal("SPAYA01800", 1, 200, 100, "SPAYA01800", "/root/main/brodcstscheinfo/caldatainfo[basedd = '" + dd + "']", "/root/temp/brodcstschelistinfo");
  179. //저장, 수정 후 재조회
  180. var InsUpdtValue = model.getValue("/root/init/insupdtvalue"); //저장, 수정 여부
  181. if (InsUpdtValue == 'y') {
  182. fBrodcstRef();
  183. } else {
  184. return;
  185. }
  186. }
  187. }//fSelectedDate END
  188. /**
  189. * @desc : 리스트 더블 클릭시 팝업호출
  190. * @
  191. * @param :
  192. * @return :
  193. * @author :
  194. * @---------------------------------------------------
  195. */
  196. function fSelectedDatelist() {
  197. var iRow = grd_list.row;
  198. if (iRow < 1) return;
  199. var selectedCells = grd_list.selectedCells;
  200. var cell = grd_list.selectedCells.item(1);
  201. var dataarray = grd_list.valueMatrix(cell.row, cell.col).split("\n"); //일
  202. var dd = model.getValue("/root/main/brodcstscheinfo/brodcstschelistinfo[basedd='" + dataarray[0] + "']/basedd"); //년월일
  203. var btn_AMsel = "M";
  204. var btn_PMsel = "N";
  205. if(btn_PM.selected == true) {
  206. model.setValue("/root/main/cond/brodcstflagcd", btn_PMsel);
  207. model.refresh();
  208. }else{
  209. model.setValue("/root/main/cond/brodcstflagcd", btn_AMsel);
  210. model.refresh();
  211. }
  212. if(dd != "") {
  213. //등록화면 팝업
  214. var brodcstflagcd = setParameter("brodcstflagcd", model.getValue("/root/main/cond/brodcstflagcd"));
  215. var basedd = setParameter("basedd", dd);
  216. modal("SPAYA01800", 1, 200, 100, "SPAYA01800", "/root/main/brodcstscheinfo/caldatainfo[basedd = '" + dd + "']", "/root/temp/brodcstschelistinfo");
  217. //저장, 수정 후 재조회
  218. var InsUpdtValue = model.getValue("/root/init/insupdtvalue"); //저장, 수정 여부
  219. if (InsUpdtValue == 'y') {
  220. fBrodcstRef();
  221. } else {
  222. return;
  223. }
  224. }
  225. }//fSelectedDatelist END
  226. /**
  227. * @desc : 노드 갯수 구함
  228. * @
  229. * @param :
  230. * @return :
  231. * @author :
  232. * @---------------------------------------------------
  233. */
  234. function getNodesetCnt(srchModel, path) {
  235. var insXml = srchModel.instances(0);
  236. var nodeList = insXml.selectNodes(path);
  237. return nodeList.length;
  238. }//getNodesetCnt END
  239. /**
  240. * @desc : 등록버튼 클릭시
  241. * @
  242. * @param :
  243. * @return :
  244. * @author :
  245. * @---------------------------------------------------
  246. */
  247. function fCalScheInfo() {
  248. var selectedCells = grd_calendar.selectedCells;
  249. var cell = selectedCells.item(0);
  250. if (cell) {
  251. var caldataarray = grd_calendar.valueMatrix(cell.row, cell.col).split("\n"); //일
  252. var caldd = model.getValue("/root/main/brodcstscheinfo/caldatainfo[day='" + caldataarray[0] + "']/basedd"); //년월일
  253. if (caldd != "") {
  254. var brodcstflagcd = setParameter("brodcstflagcd", model.getValue("/root/main/cond/brodcstflagcd"));
  255. //달력에서 등록화면 팝업
  256. var calbasedd = setParameter("basedd", caldd);
  257. modal("SPAYA01800", 1, 200, 100, "SPAYA01800", "/root/main/brodcstscheinfo/caldatainfo[basedd = '" + caldd + "']", "/root/temp/brodcstschelistinfo");
  258. //저장, 수정 후 재조회
  259. var InsUpdtValue = model.getValue("/root/init/insupdtvalue"); //저장, 수정 여부
  260. if (InsUpdtValue == 'y') {
  261. fBrodcstRef();
  262. } else {
  263. return;
  264. }
  265. }
  266. } else {
  267. messageBox("등록할 일자를","C002");
  268. return;
  269. }
  270. }//fCalScheInfo END
  271. function fListScheInfo() {
  272. var selectedCells = grd_list.selectedCells;
  273. var cell = grd_list.selectedCells.item(1);
  274. if (cell) {
  275. var listdataarray = grd_list.valueMatrix(cell.row, cell.col).split("\n"); //일
  276. var listdd = model.getValue("/root/main/brodcstscheinfo/brodcstschelistinfo[basedd='" + listdataarray[0] + "']/basedd"); //년월일
  277. if(listdd != ""){
  278. var brodcstflagcd = setParameter("brodcstflagcd", model.getValue("/root/main/cond/brodcstflagcd"));
  279. //리스트에서 등록화면 팝업
  280. var listbasedd = setParameter("basedd", listdd);
  281. modal("SPAYA01800", 1, 200, 100, "SPAYA01800", "/root/main/brodcstscheinfo/brodcstschelistinfo[basedd= '" + listdd + "']", "/root/temp/brodcstschelistinfo");
  282. //저장, 수정 후 재조회
  283. var InsUpdtValue = model.getValue("/root/init/insupdtvalue"); //저장, 수정 여부
  284. if (InsUpdtValue == 'y') {
  285. fBrodcstRef();
  286. } else {
  287. return;
  288. }
  289. }
  290. } else {
  291. messageBox("등록할 일자를","C002");
  292. return;
  293. }
  294. }//fListScheInfo END
  295. /**
  296. * @desc : 달력 OR 리스트별 삭제버튼 클릭시
  297. * @
  298. * @param :
  299. * @return :
  300. * @author :
  301. * @---------------------------------------------------
  302. */
  303. function fDelCalInfo() {
  304. var selectedCells = grd_calendar.selectedCells;
  305. var cell = selectedCells.item(0);
  306. if (cell ) {
  307. var dataarray = grd_calendar.valueMatrix(cell.row, cell.col).split("\n"); //일
  308. var dd = model.getValue("/root/main/brodcstscheinfo/caldatainfo[day='" + dataarray[0] + "']/basedd"); //년월일
  309. var rgstyn = model.getValue("/root/main/brodcstscheinfo/caldatainfo[basedd = '" + dd + "']/seqno");
  310. if (rgstyn != "") {
  311. var btn = messageBox("선택 일정을 ", "Q001");
  312. if (btn == '6') {
  313. model.setValue("/root/main/brodcstscheinfo/caldatainfo[basedd = '" + dd + "']/status", 'd');
  314. model.refresh();
  315. model.removeNodeset("/root/send/removedata");
  316. model.makeNode("/root/send/removedata");
  317. model.copyNode("/root/send/removedata", "/root/main/brodcstscheinfo/caldatainfo[basedd = '" + dd + "']");
  318. submit("TXAYA01701");
  319. fBrodcstRef();
  320. } else if (btn == '7') {
  321. return;
  322. }
  323. } else {
  324. messageBox("삭제할 일정이 ", "I004");
  325. return;
  326. }
  327. } else {
  328. messageBox("삭제할 일자를", "C002");
  329. return;
  330. }
  331. }//fDelCalInfo END
  332. function fDelListInfo(){
  333. var selectedCells = grd_list.selectedCells;
  334. var cell = grd_list.selectedCells.item(1);
  335. if(cell){
  336. var dataarray = grd_list.valueMatrix(cell.row, cell.col).split("\n"); //일
  337. var dd = model.getValue("/root/main/brodcstscheinfo/brodcstschelistinfo[basedd='" + dataarray[0] + "']/basedd"); //년월일
  338. var rgstyn = model.getValue("/root/main/brodcstscheinfo/brodcstschelistinfo[basedd='" + dd + "']/seqno");
  339. if (rgstyn != "") {
  340. var btn = messageBox("선택 일정을 ", "Q001");
  341. if (btn == '6') {
  342. model.setValue("/root/main/brodcstscheinfo/brodcstschelistinfo[basedd = '" + dd + "']/status", 'd');
  343. model.refresh();
  344. model.removeNodeset("/root/send/removedata");
  345. model.makeNode("/root/send/removedata");
  346. model.copyNode("/root/send/removedata", "/root/main/brodcstscheinfo/brodcstschelistinfo[basedd = '" + dd + "']");
  347. submit("TXAYA01701");
  348. fBrodcstRef();
  349. } else if (btn == '7') {
  350. return;
  351. }
  352. } else {
  353. messageBox("삭제할 일정이 ", "I004");
  354. return;
  355. }
  356. } else {
  357. messageBox("삭제할 일자를", "C002");
  358. return;
  359. }
  360. }//fDelListInfo END
  361. /**
  362. * @desc : 달력보기 or 리스트보기 콤보박스 선택
  363. * @
  364. * @param :
  365. * @return :
  366. * @author :
  367. * @---------------------------------------------------
  368. */
  369. function fFlag(){
  370. var refflag = model.getValue("/root/main/refflag");
  371. if(refflag == 'C'){
  372. // btn_print.visible = true;
  373. model.toggle("case_calendar");
  374. }else if(refflag == 'L'){
  375. // btn_print.visible = false;
  376. model.toggle("case_list");
  377. }
  378. }//fFlag END
  379. /**
  380. * @desc : 탭(아침, 저녁)별로 선택
  381. * @
  382. * @param :
  383. * @return :
  384. * @author :
  385. * @---------------------------------------------------
  386. */
  387. function fFlagMo(){
  388. var refflag = model.getValue("/root/main/refflag");
  389. if(refflag == 'C'){
  390. // btn_print.visible = true;
  391. com_flag.select(0);
  392. model.toggle("case_calendar");
  393. }else if(refflag == 'L'){
  394. // btn_print.visible = false;
  395. com_flag.select(1);
  396. model.toggle("case_list");
  397. }
  398. }//fFlagMo END
  399. function fFlagEv(){
  400. var refflag = model.getValue("/root/main/refflag");
  401. if(refflag == 'C'){
  402. // btn_print.visible = true;
  403. com_flag.select(0);
  404. model.toggle("case_calendar");
  405. }else if(refflag == 'L'){
  406. // btn_print.visible = false;
  407. com_flag.select(1);
  408. model.toggle("case_list");
  409. }
  410. }//fFlagEv END
  411. /**
  412. * @desc : 방송기도일정 출력버튼 클릭
  413. * @
  414. * @param :
  415. * @return :
  416. * @author :
  417. * @---------------------------------------------------
  418. */
  419. function fPreview(){
  420. if (swt_battmptsche.selectedIndex == 1) {
  421. if(btn_AM.selected == true){
  422. model.setValue("/root/main/cond/brodcstflagcdrex", "아침");
  423. model.refresh();
  424. }else{
  425. model.setValue("/root/main/cond/brodcstflagcdrex", "저녁");
  426. model.refresh();
  427. }
  428. exeReportPreview("RPAYA01701", "XMLSTR");
  429. }else{
  430. if(btn_AM.selected == true){
  431. model.setValue("/root/main/cond/brodcstflagcdrex", "아침");
  432. model.refresh();
  433. }else{
  434. model.setValue("/root/main/cond/brodcstflagcdrex", "저녁");
  435. model.refresh();
  436. }
  437. exeReportPreview("RPAYA01702", "XMLSTR");
  438. }
  439. }//fPreview END