SPMMO30000.js 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617
  1. /*
  2. EDC스케줄관리(SMMNE05101.xfm - JScript )
  3. - Version :
  4. 1) : Ver.1.00.01
  5. - Create : 2009.06.09
  6. */
  7. //당직스케줄 그리드의 수정상태값
  8. var isEdited = 'N';
  9. var orddept = null;
  10. //당직기준시간
  11. var scheftm = "9999";//0900
  12. var schettm = "8888";//0859
  13. // 이전 진료과 코드
  14. var preOrddeptcd = null;
  15. //화면초기화
  16. function fInit(chngMonth){
  17. //당직스케줄 기준시간관리 기관별로 관리
  18. var pCode = "'175'"; // 조회할 CdGrupID 코드정보
  19. var pDate = getCurrentDate(); //조회기준일자
  20. fGetNursHardCdInfo(pCode, pDate);
  21. var cdnm = model.getValue("/root/code/codeinfo/codelist[cdgrupid = '175' and cdid = '"+ getUserInfo("dutplceinstcd") +"']/cdnm");
  22. if(cdnm != "" && cdnm.split("|").length > 0){
  23. scheftm = cdnm.split("|")[0];//당직시작시간
  24. schettm = cdnm.split("|")[1];//당직종료시간
  25. }
  26. if (isNull(chngMonth)) {
  27. //타이틀 헤더세팅
  28. var curym = getCurrentDate().substring(0, 6);
  29. var worktitle = curym.substring(0, 4) + '년 ' + curym.substring(4, 6) + '월 당직리스트';
  30. cpt_worktitle.text = worktitle;
  31. model.removenode('/root/send');
  32. model.makeValue('/root/send/srchym', curym);
  33. } else {
  34. //타이틀 헤더세팅
  35. var curym = model.getValue("/root/cond/srchym");
  36. var worktitle = curym.substring(0, 4) + '년 ' + curym.substring(4, 6) + '월 당직리스트';
  37. cpt_worktitle.text = worktitle;
  38. model.removenode('/root/send');
  39. model.makeValue('/root/send/srchym', curym);
  40. }
  41. //진료과 불러오기
  42. var instcd = getUserInfo("dutplceinstcd");
  43. var standard_yn = "orduseyn";
  44. var ord_deptflag = 'D';
  45. var rslt_ref = "/root/init/orddeptinfo";
  46. var sort_field = "depthngnm";
  47. var sort_method = "asc";
  48. zbcfGetDeptCodeList(instcd, standard_yn, ord_deptflag, rslt_ref, sort_field, sort_method);
  49. //조회조건 초기화
  50. model.removenode('/root/cond');
  51. model.removenode('/root/main/titleinfo');
  52. model.removenode('/root/init/deptpartinfo');
  53. model.makeValue('/root/cond/srchym', curym);
  54. model.makeValue('/root/cond/orddeptcd', getUserInfo('dutplcecd'));
  55. model.makeNode("/root/cond/deptpartinfo"); // kskim
  56. model.makeNode("/root/temp/orddeptcd");
  57. var orddeptcd = model.getValue('/root/cond/orddeptcd');
  58. //선택된 진료과의 의사리스트조회
  59. fGetDrInfo(orddeptcd);
  60. //기준시간 셋팅
  61. model.makeValue('/root/main/titleinfo/fromtm', scheftm);
  62. model.makeValue('/root/main/titleinfo/totm', schettm);
  63. op_fromtm.text=scheftm;
  64. op_totm.text=schettm;
  65. model.refresh();
  66. }
  67. //선택된 진료과의 의사리스트조회
  68. function fGetDrInfo(orddeptcd){
  69. if(orddeptcd == null || orddeptcd == ""){
  70. orddeptcd = model.getValue('/root/cond/orddeptcd');
  71. }
  72. // 진료과 정보가 변경 되었는지 체크. start
  73. // 2010.04.01
  74. // 김광성- kskim
  75. var preorddeptcd = model.getValue('/root/temp/orddeptcd');
  76. if( preorddeptcd == null || preorddeptcd == "" || preorddeptcd != orddeptcd){
  77. model.removenode("/root/cond/deptpartinfo"); // 진료과 정보가 바뀌었기 때문에 파트정보 초기화
  78. model.setValue("/root/temp/orddeptcd", orddeptcd );
  79. }
  80. // 진료과 정보가 변경 되었는지 체크. end
  81. model.removenode('/root/send');
  82. model.makeValue('/root/send/drinfo/orddeptcd', orddeptcd);
  83. if(!submit('TRMMO30001')){
  84. messageBox('진료과별 당직대상자 조회를 실패하였습니다.', 'E999');
  85. return false;
  86. }
  87. }
  88. //의사명 선택시 상세정보를 조회후 세팅한다
  89. function fSetDrInfo(clickflag, drid){
  90. model.removenode('/root/main/drdetlinfo');
  91. if(clickflag == 'worklist'){
  92. //당직자리스트에서 의사 선택한경우 의사아이디로 상세정보를 조회해온다.
  93. model.removenode('/root/send');
  94. model.makeValue('/root/send/drid', drid);
  95. if(submit('TRMNE05104')){
  96. }
  97. }else{
  98. //당직대상자에서 의사 선택한 경우 그리드정보에서 상세정보를 세팅한다.
  99. model.makeValue('/root/main/drdetlinfo/drid', drid);//사번
  100. model.makeValue('/root/main/drdetlinfo/drnm', model.getValue('/root/main/drinfo/drinfolist[drid="' + drid + '"]/drnm'));//의사명
  101. model.makeValue('/root/main/drdetlinfo/phone', model.getValue('/root/main/drinfo/drinfolist[drid="' + drid + '"]/phone'));//핸드폰
  102. model.makeValue('/root/main/drdetlinfo/bbtel', model.getValue('/root/main/drinfo/drinfolist[drid="' + drid + '"]/bbtel'));//비퍼
  103. model.refresh();
  104. }
  105. }
  106. //당직대상자리스트를 조회한다
  107. function fGetWorkScheduleList(srchym, grtype, orddeptcd, staffid, deptpartinfo){
  108. // 당직대상자리스트를 가져오기전에 파트정보가 있는지 여부를 사전 조회
  109. // 파트정보가 있을 경우 파트를 선택해야지 당직대상자리스트 조회 가능히도록 설정
  110. // kskim
  111. // 2010.04.03
  112. //if ( fChkDeptDetlFlag() ){
  113. // return;
  114. //}
  115. fChkDeptDetlFlag() ;
  116. //저장하기전 다른 row를 선택했을때 blocking 하기위해 중증분류의 row값을 임시저장해둠
  117. //curRow = grd_grpmaster.row;
  118. orddept = cmb_orddeptcd.value;
  119. if(srchym == null || srchym == ''){
  120. srchym = model.getValue('/root/cond/srchym');
  121. }
  122. if(grtype == null || grtype == ''){
  123. grtype = 'C';
  124. }
  125. if(orddeptcd == null || orddeptcd == ''){
  126. orddeptcd = model.getValue("/root/cond/orddeptcd");
  127. }
  128. if(staffid == null || staffid == ''){
  129. staffid = '-';
  130. }
  131. model.removenode('/root/send');
  132. model.makeValue('/root/send/srchym', srchym);
  133. model.makeValue('/root/send/orddeptcd', orddeptcd);
  134. model.makeValue('/root/send/grtype', grtype);
  135. model.makeValue('/root/send/staffid', staffid);
  136. model.makeValue('/root/send/fromtm', scheftm);
  137. model.makeValue('/root/send/totm', schettm);
  138. model.makeValue('/root/send/monthcnt', getDayCountForMonth(srchym.substring(0, 4), srchym.substring(4, 6)));//조회년월의 마지막일
  139. model.makeValue('/root/send/deptpartinfo', deptpartinfo);
  140. if(submit('TRMNE05105')){
  141. //글로벌변수 초기화
  142. isEdited = 'N';
  143. //curRow = 0;
  144. orddept = null;
  145. //당직대상자의 선택제거
  146. grd_drlist.row = 0;
  147. //당직리스트의 선택제거
  148. grd_workerlist.row = 0;
  149. //상세정보 초기화
  150. fSetDrInfo();
  151. //당직리스트색깔 초기화
  152. for(var i = 1; i <= grd_workerlist.rows; i++){
  153. grd_workerlist.cellstyle("background-color", i, 0, i, 6) = '#ffffff';
  154. grd_workerlist.cellStyle("background-image", i, 0, i, 6) = '';
  155. }
  156. //당직스케줄 변경여부 조회를 위해 임시노드에 copy 해둔다.
  157. model.removenode('/root/orgscheinfo');
  158. model.makenode('/root/orgscheinfo/workinfo');
  159. model.copyNode('/root/orgscheinfo/workinfo', '/root/main/workerinfo');
  160. }
  161. }
  162. //오른쪽마우스 메뉴중 추가 선택시 호출
  163. function fAddWorkDr(){
  164. //tf오른쪽메뉴에 parameter지정을 할 수 없어서 만들었음
  165. fSetWorkDr('ADD');
  166. }
  167. //setFlag : ADD 당직자리스트그리드의 선택된 모든셀에 의사를 세팅한다.
  168. //setFlag : DEL 당직자리스트그리드의 선택된 모든셀에 의사를 지워준다.
  169. function fSetWorkDr(setFlag){
  170. //진료과 파트 정보가 존재할 경우 파트 정보를 선택하지 않고 스케줄 등록 시 블록킹. start
  171. // 2010.04.01
  172. // 김광성 - kskim
  173. //if( fChkDeptDetlFlag() ){
  174. // return;
  175. //}
  176. //진료과 파트 정보가 존재할 경우 파트 정보를 선택하지 않고 스케줄 등록 시 블록킹. end
  177. //선택된 당직대상자정보(id, nm)
  178. var drid = model.getValue('/root/main/drinfo/drinfolist[' + grd_drlist.row + ']/drid');
  179. var drnm = model.getValue('/root/main/drinfo/drinfolist[' + grd_drlist.row + ']/drnm');
  180. var saveyn = model.getValue('/root/main/drinfo/drinfolist[' + grd_drlist.row + ']/saveyn');
  181. var deptcd = model.getValue("/root/cond/orddeptcd");
  182. var phone = model.getValue('/root/main/drinfo/drinfolist[' + grd_drlist.row + ']/phone');
  183. var bbtel = model.getValue('/root/main/drinfo/drinfolist[' + grd_drlist.row + ']/bbtel');
  184. var mespclyn = model.getValue('/root/main/drinfo/drinfolist[' + grd_drlist.row + ']/mespclyn');
  185. //의사추가의경우
  186. if(setFlag == 'ADD'){
  187. //선택된 당직대상자정보가 없으면 세팅하지않고 바로 리턴
  188. if(drid == null || drid == ''){
  189. return false;
  190. }
  191. //응급호출의사정보마스터에 등록되어있지 않은 의사를 선택한 경우 등록화면을 호출
  192. if(phone == "-" || phone == "0"){
  193. var btnChk = messageBox('"'+drnm+'"님은 근무자관리에 연락처가 등록되어 있지 않습니다.\r\n'+ '근무자 연락처 등록을', 'Q004');
  194. if(btnChk == 6){//예
  195. setParameter('drid', drid);
  196. setParameter('drnm', drnm);
  197. setParameter('deptcd', deptcd);
  198. setParameter('phone', phone);
  199. setParameter('bbtel', bbtel);
  200. modal('SMMNE05000', "", "500", "500", "SMMNE05000", "", "");
  201. var saveyn = getParameter("saveyn");
  202. if(saveyn == 'Y' || saveyn == 'D'){//Y:저장, D : 삭제
  203. //당직대상자 재조회 후 포커스 원래상태로
  204. var curRow = grd_drlist.row;
  205. fGetDrInfo();
  206. grd_drlist.row = curRow;
  207. }
  208. }
  209. return false;
  210. }
  211. }
  212. //현재날짜+시간(yyyymmddhhss)
  213. var currentDD = getCurrentDateTime().replace(" ", "").substring(0, 12);
  214. var errYn = 'N'; //과거일자 선택여부
  215. var cells = grd_workerlist.selectedCells; //선택된 쎌의 배열
  216. var sRow, sCol, sColNm; //선택된 쎌의 row, col 값, 선택된 col의 필드명
  217. var selectedDD; //선택된일자
  218. for(var i = 0; i < cells.length; i++){
  219. sRow = cells.item(i).row;
  220. sCol = cells.item(i).col;
  221. sColNm = grd_workerlist.colAttribute(sCol, "ref");
  222. selectedDD = model.getValue('/root/main/workerinfo/workerinfolist[' + sRow + ']/todd');
  223. //현재일자보다 이전일자의 스케줄을 변경하지 못하게 blocking한다.
  224. if(selectedDD < currentDD){
  225. errYn = 'Y';
  226. }else{
  227. if(sCol != 0){//일자셀 선택의 경우는 변경하지 않음
  228. //의사추가의경우
  229. if(setFlag == 'ADD'){
  230. //선택된 쎌에 의사이름 쎄팅
  231. if (grd_workerlist.col == grd_workerlist.colRef("drnm4") &&mespclyn == "N") { // 스탭이 아니면 return;
  232. messageBox("스탭행은 스탭만 등록가능합니다.", "I");
  233. return;
  234. }
  235. model.setValue('/root/main/workerinfo/workerinfolist['+ sRow + ']/' + sColNm, drnm);
  236. model.setValue('/root/main/workerinfo/workerinfolist['+ sRow + ']/drid' + sColNm.substring(4), drid);
  237. //선택된 쎌 색상 변경
  238. grd_workerlist.cellStyle('background-color', sRow, sCol) = "#F4A6EE";
  239. //지우개 이미지 삭제
  240. grd_workerlist.cellStyle("background-image", sRow, sCol) = '';
  241. }
  242. /*
  243. //삭제기능 사용하지않음.
  244. //의사삭제의경우
  245. else{
  246. //셀에 데이터가 세팅되어 있는경우만 삭제되게
  247. var drnm = model.getValue('/root/main/workerinfo/workerinfolist['+ sRow + ']/' + sColNm);
  248. if(drnm != ''){
  249. //선택된 쎌에 의사이름 쎄팅
  250. model.setValue('/root/main/workerinfo/workerinfolist['+ sRow + ']/drid' + sColNm.substring(4), '-');
  251. //선택된 쎌에 삭제 이미지 세팅
  252. grd_workerlist.cellStyle("background-image", sRow, sCol) = '../../../com/commonweb/images/icon_eraser.gif';
  253. grd_workerlist.cellStyle("background-position", sRow, sCol) = 'center';
  254. //배경색을 흰색으로 초기화
  255. grd_workerlist.cellStyle('background-color', sRow, sCol) = "#ffffff";
  256. }
  257. }
  258. */
  259. }
  260. }
  261. }
  262. //과거일자만 빼고 나머지 일자는 변경가능하도록 한다
  263. if(errYn == 'Y'){
  264. messageBox('과거일자의 스케줄은 변경하실 수 없습니다.', 'E999');
  265. return false;
  266. }
  267. }
  268. //수정한 내역을 새로고침한다
  269. function fRefreshWorkDr(){
  270. var btnRst = messageBox('새로고침하시면 저장하지 않은 내역은 모두 초기화됩니다.\r\n'+ '새로고침을', 'Q004');
  271. if(btnRst == 6){//예
  272. grd_workerlist.rebuildStyle();
  273. var curRow = grd_drlist.row;
  274. var srchym = model.getValue('/root/cond/srchym');
  275. var grtype = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist['+ grd_grpmaster.row + ']/grtype');
  276. var orddeptcd = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist['+ grd_grpmaster.row + ']/orddeptcd');
  277. var staffid = model.getValue('/root/main/grpmasterinfo/grpmasterinfolist['+ grd_grpmaster.row + ']/staffid');
  278. var deptpartinfo = model.getValue("/root/cond/deptpartinfo");
  279. fGetWorkScheduleList(srchym, grtype, orddeptcd, staffid, deptpartinfo);
  280. }
  281. }
  282. //세팅한 내역을 저장한다
  283. function fSaveWorkDr(){
  284. //오늘날짜 이후의 당직 리스트가 비어있는 경우 메시지를 띄워준다.
  285. var curdate = getCurrentDate().substring(0, 8);
  286. var emptycell=null;
  287. // 일단위로 등록을 검사하는 부분. 시작
  288. // 작성자 : kskim
  289. // 작성일 : 2010.03.23
  290. var cntDr = 0;
  291. for(var grdIdx = 1; grdIdx <= grd_workerlist.rows; grdIdx++){
  292. cntDr = 0;
  293. for(var drIdx = 1; drIdx <= grd_workerlist.cols-1; drIdx++){
  294. var drnm = null;
  295. drnm = model.getValue("root/main/workerinfo/workerinfolist[" + grdIdx + "]/drnm" + drIdx);
  296. if( !isNull(drnm) ){
  297. cntDr ++;
  298. }
  299. }
  300. //KNUH, 1~4 당직의가 없어소 스텝 지정 가능하도록 변경 요청 (2011.03.07 JJE)
  301. /*if( cntDr > 0 && cntDr < 4 ){
  302. messageBox( model.getValue("root/main/workerinfo/workerinfolist[" + grdIdx + "]/workdd") + '의 당직 리스트를 모두 입력하여 주십시오.', 'I');
  303. return;
  304. }*/
  305. }
  306. // kskim
  307. // 일단위로 등록을 검사하는 부분. 끝
  308. /*
  309. emptycell = model.getValue("/root/main/workerinfo/workerinfolist[(drnm1='' or drnm2='' or drnm3='' or drnm4='') and workdd >='"+curdate+"']/workdd");
  310. if( !isNull(emptycell) || emptycell !=''){
  311. messageBox(emptycell+'의 당직 리스트를 입력하여 주십시오.', 'I');
  312. return;
  313. }
  314. */
  315. var grtype = 'C';
  316. var orddeptcd = model.getValue('/root/cond/orddeptcd');
  317. var staffid = '-';
  318. var srchym = model.getValue('/root/cond/srchym');
  319. var deptpartinfo = model.getValue("/root/cond/deptpartinfo");
  320. model.removeNodeset("/root/send");
  321. model.makeValue("/root/send/workerlist", grd_workerlist.getupdatedataAll("i"));
  322. model.makeValue("/root/send/grtype", grtype);
  323. model.makeValue("/root/send/orddeptcd", orddeptcd);
  324. model.makeValue("/root/send/staffid", staffid);
  325. model.makeValue("/root/send/srchym", srchym);
  326. model.makeValue("/root/send/deptpartinfo", deptpartinfo);
  327. //kskim
  328. if(submit('TXMNE05101')){
  329. //당직리스트색깔 초기화
  330. for(var i = 1; i <= grd_workerlist.rows; i++){
  331. grd_workerlist.cellstyle("background-color", i, 0, i, 6) = '#ffffff';
  332. grd_workerlist.cellStyle("background-image", i, 0, i, 6) = '';
  333. }
  334. var srchym = model.getValue('/root/cond/srchym');
  335. var grtype = 'C'
  336. var orddeptcd = model.getValue('/root/cond/orddeptcd');
  337. var staffid = '-';
  338. var deptpartinfo = model.getValue("/root/cond/deptpartinfo"); // kskim
  339. fGetWorkScheduleList(srchym, grtype, orddeptcd, staffid, deptpartinfo);//당직자리스트를 조회한다
  340. }
  341. }
  342. //이전 년버튼 클릭시 - 전년도+월로 세팅
  343. function fClkBfYear(srchym){
  344. var yyear = srchym.substring(0, 4);
  345. var mmont = srchym.substring(4, 6);
  346. yyear--;
  347. srchym = yyear + mmont;
  348. model.setValue('/root/cond/srchym', srchym);
  349. model.refresh();
  350. }
  351. //다음 년버튼 클릭시 - 다음년도+월로 세팅
  352. function fClkAfYear(srchym){
  353. var yyear = srchym.substring(0, 4);
  354. var mmont = srchym.substring(4, 6);
  355. yyear++;
  356. srchym = yyear + mmont;
  357. model.setValue('/root/cond/srchym', srchym);
  358. model.refresh();
  359. }
  360. //이전 달버튼 클릭시 - 년도+전월 세팅
  361. function fClkBfMonth(srchym){
  362. var yyear = srchym.substring(0, 4);
  363. var mmont = srchym.substring(4, 6);
  364. mmont = mmont.toDate('MM').getAddDate(-1, "M").getDateFormat('MM');
  365. if(mmont == '12'){
  366. yyear--;
  367. }
  368. srchym = yyear + mmont;
  369. model.setValue('/root/cond/srchym', srchym);
  370. model.refresh();
  371. }
  372. //다음 달버튼 클릭시 - 년도+다음월 세팅
  373. function fClkAfMonth(srchym){
  374. var yyear = srchym.substring(0, 4);
  375. var mmont = srchym.substring(4, 6);
  376. mmont = mmont.toDate('MM').getAddDate(+1, "M").getDateFormat('MM');
  377. if(mmont == '01'){
  378. yyear++;
  379. }
  380. srchym = yyear + mmont;
  381. model.setValue('/root/cond/srchym', srchym);
  382. model.refresh();
  383. }
  384. //셀색상을 선택색으로 변경되지 않도록 원래색상으로 유지한다
  385. function fSetCellColor(clickRow, clickCol, clickColNm){
  386. var curColor = grd_workerlist.cellstyle("background-color", clickRow, clickCol, clickRow, clickCol);
  387. grd_workerlist.cellstyle("background-color", clickRow, clickCol, clickRow, clickCol) = curColor;
  388. }
  389. //당직대상자 마우스 오른쪽메뉴 mouse down
  390. function fMouseDownGridRow(){
  391. var rows = grd_workerlist.rows;
  392. var row = grd_workerlist.mouseRow-1;
  393. var col = grd_workerlist.mouseCol;
  394. if(row + 1 <= rows && rows > 2 && row > 0){
  395. if(event.button == 3){
  396. window.setPopupMenu(true, "/root/init/menu/item", "name", "func", false);
  397. }
  398. }else{
  399. window.setPopupMenu(false);
  400. }
  401. }
  402. //클릭한 그리드의 선택된 셀의 텍스트 크기를 설정
  403. function fSetSelectedFontStyle(grdNm){
  404. //선택된 그리드의 셀의 텍스트 크기,굵기를 변경
  405. grdNm.cellStyle("font-size", grdNm.row, grdNm.col, grdNm.row, grdNm.col) = '12px';
  406. grdNm.cellStyle("font-weight", grdNm.row, grdNm.col, grdNm.row, grdNm.col) = 'bold';
  407. //나머지 셀의 텍스트 크기, 굵기를 초기화
  408. for(var i = 0; i < grdNm.rows; i++){
  409. if(i != grdNm.row){
  410. grdNm.rebuildStyle(i, 0);
  411. }
  412. }
  413. }
  414. //그리드가 변경상태인지 조회한다.
  415. function isScheduleRefresh(isClose){
  416. var drStr;
  417. for(var i = 1; i < grd_workerlist.rows; i++){
  418. if(instance1.selectSingleNode("/root/orgscheinfo/workinfo/workerinfolist[" + i + "]") != null){
  419. if(instance1.selectSingleNode("/root/orgscheinfo/workinfo/workerinfolist[" + i + "]").xml
  420. != instance1.selectSingleNode("/root/main/workerinfo/workerinfolist[" + i + "]").xml){
  421. isEdited = 'Y';
  422. drStr += model.getValue('/root/main/workerinfo/workerinfolist[' + i + ']/workdd') + '일자 변경';
  423. break;
  424. }
  425. }
  426. }
  427. if(isEdited == 'Y'){
  428. //20090703 dhkim 창을 닫을때와 새로 조회할때의 메세지를 다르게 구성 Q003(계속진행하시겠습니까?)
  429. if(isClose){
  430. var saveYn = messageBox('수정하신 스케줄을 저장하지 않고 창을 닫으시겠습니까?', 'Q');//Q: 6:예, 7:아니오.
  431. }else{
  432. var saveYn = messageBox('수정하신 스케줄을 저장하지 않고 새로운 내역을', 'Q005');//Q005:조회하시겠습니까? 6:예, 7:아니오.
  433. }
  434. if(saveYn == 6){
  435. return 'Y';
  436. }else{
  437. return 'N';
  438. }
  439. }
  440. }
  441. function fGetDeptDetlFlag() {
  442. var ref = "/root/cond";
  443. var rstRef = "/root/init/deptpartinfo";
  444. //var orddeptcd = model.getValue('/root/cond/orddeptcd');
  445. var deptpartinfo = model.getValue('/root/cond/deptpartinfo');
  446. var srchym = model.getValue("/root/cond/srchym");
  447. var srchymfirstday = srchym.concat("01");
  448. var srchymlastday = srchym.concat(fGetLastDay(srchym));
  449. model.makeValue("/root/cond/srchymfirstday", srchymfirstday );
  450. model.makeValue("/root/cond/srchymlastday ", srchymlastday );
  451. if( !submit("TRMMO30002", "false", ref, rstRef)){
  452. messageBox('진료과별 파트정보 조회를 실패하였습니다.', 'E999');
  453. cmb_partinfo.refresh();
  454. return false;
  455. }
  456. var nodeList = instance1.selectNodes('/root/init/deptpartinfo/partlist');
  457. if( nodeList.length <= 0 ){
  458. //alert( nodeList.length + " nodeList.length ");
  459. model.removenode("/root/send/deptpartinfo");
  460. }
  461. model.makeValue("/root/cond/deptpartinfo", deptpartinfo );
  462. }
  463. // 부서 파트 정보가 있는지 체크
  464. // 부서 파트 정보가 있는데 파트 정보를 입력하지 않았을 경우 true리턴
  465. function fChkDeptDetlFlag(){
  466. var nodeList = instance1.selectNodes('/root/init/deptpartinfo/partlist');
  467. var deptdetlflag = model.getValue("/root/cond/deptpartinfo");
  468. var orddeptnm = model.getValue("/root/cond/orddeptcd");
  469. if( nodeList.length > 0 && ( deptdetlflag == null || deptdetlflag =="") ){
  470. //messageBox(orddeptnm + "는 파트정보가", "I003");
  471. //model.removeNodeset("/root/main/workerinfo/workerinfolist");
  472. return true;
  473. }
  474. return false;
  475. }
  476. function fChkSelDeptDetlFlag(){
  477. //var selDeptDetlFlag = model.getValue("/root/cond/deptpartinfo");
  478. var nodeList = instance1.selectNodes('/root/init/deptpartinfo/partlist');
  479. if ( fChkDeptDetlFlag() ){
  480. cmb_partinfo.select(0);
  481. cmb_partinfo.disabled="false";
  482. }
  483. else if( nodeList.length > 0 ){
  484. cmb_partinfo.disabled="false";
  485. }
  486. else{
  487. cmb_partinfo.disabled="true";
  488. model.removenode("/root/cond/deptpartinfo");
  489. }
  490. }
  491. function fGetLastDay(mm){
  492. var dd = 31;
  493. switch(mm){
  494. case 4:
  495. case 6:
  496. case 9:
  497. case 11:
  498. dd = 30;
  499. break;
  500. case 2:
  501. if( (yyyy%4)==0 || (yyyy%100)==0){
  502. dd=29;
  503. }
  504. else{
  505. dd=28;
  506. }
  507. break;
  508. }
  509. return dd;
  510. }