SMMND03200.xjs 50 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type ="xscript4.0"><![CDATA[/*
  3. HD의사지정 (SMMND03200.xrw - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. */
  7. /**
  8. * _group :
  9. * _ver : 2007.08.20
  10. * _by : 김진아
  11. * _---------------------------------------------------
  12. * _type : function
  13. * _access : public
  14. * _desc : 화면 초기화
  15. * _param :
  16. * _return :
  17. * _---------------------------------------------------
  18. */
  19. function fDone(){
  20. //** 그리드 초기화 **//
  21. //ds_main_hddrapnthistlist.clearData();
  22. var sFromYear = utlf_getCurrentDate().substr(0, 4)+ "0201";
  23. var sToYear = getDateCalc(getDateCalc(utlf_getCurrentDate(), 365 , "+").substr(0, 4)+"0301", 1, "-");
  24. ds_main_cond.setColumn( 0, "srchflag" , "H");
  25. ds_main_cond.setColumn( 0, "srchfromdd", sFromYear);
  26. ds_main_cond.setColumn( 0, "srchtodd" , sToYear);
  27. grp_pdhist.enable = false;
  28. }
  29. /**
  30. * _group :
  31. * _ver : 2007.08.20
  32. * _by : 김진아
  33. * _---------------------------------------------------
  34. * _type : function
  35. * _access : public
  36. * _desc : 사용자팝업
  37. * _param :
  38. * _return :
  39. * _---------------------------------------------------
  40. */
  41. function fSrchDr(userid, sIDPath, sNMPath){
  42. //** 사용자팝업 **//
  43. ds_main_hddrapntcretlist_hddrapntcretinfo_userpopupinfo.clearData();
  44. dsf_makeValue( ds_main_hddrapntcretlist_hddrapntcretinfo_userpopupinfo, "param", "string", "_OneS" ); // 한 사용자 선택 팝업을 띄울시 "팝업에 전달할 노드"_param 의 값 설정
  45. dsf_makeValue( ds_main_hddrapntcretlist_hddrapntcretinfo_userpopupinfo, "flag", "string", "userid"); // 한 사용자 선택 팝업을 띄울시 "팝업에 전달할 노드"_flag 의 값 설정
  46. dsf_makeValue( ds_main_hddrapntcretlist_hddrapntcretinfo_userpopupinfo, "searchitem", "string", userid ); // 한 사용자 선택 팝업을 띄울시 "팝업에 전달할 노드"_searchitem 의 값 설정
  47. frmf_modal("../.._userdeptinfoweb_xrw_SPZSU10103_사용자부서선택조회", "SPZSU10103", "ds_main_hddrapntcretlist_hddrapntcretinfo_userpopupinfo""-"ds_main_temp"", "", "1", "200", "200", "", "", "", "", "", "M");
  48. var iParam = frmf_getParameter("SPZSU10103_");
  49. model.removeNodeset("ds_main_hddrapntcretlist_hddrapntcretinfo_getdrinfo" );
  50. dsf_makeValue( ds_main_hddrapntcretlist_hddrapntcretinfo, "getdrinfo", "string", "" );
  51. dsf_setCSVToDs ("ds_main_hddrapntcretlist_hddrapntcretinfo_getdrinfo", iParam);
  52. frmf_clearParameter("SPZSU10103_");
  53. // ** 정보 보여주기 구현 **//
  54. var xPath = "ds_main_hddrapntcretlist_hddrapntcretinfo/";
  55. var sUserNm = ds_main_hddrapntcretlist_hddrapntcretinfo_getdrinfo_list.getColumn(0, "usernm"); // 의사이름
  56. var sUserId = ds_main_hddrapntcretlist_hddrapntcretinfo_getdrinfo_list.getColumn(0, "userid"); // 의사아이디
  57. model.makeValue(xPath + sNMPath, sUserNm); // 의사이름
  58. model.makeValue(xPath + sIDPath, sUserId); // 의사아이디
  59. //model.refresh();
  60. }
  61. /**
  62. * _group :
  63. * _ver : 2007.08.20
  64. * _by : 김진아
  65. * _---------------------------------------------------
  66. * _type : function
  67. * _access : public
  68. * _desc : 지정의사 컨트롤 활성여부 설정
  69. * _param :
  70. * _return :
  71. * _---------------------------------------------------
  72. */
  73. function fSetDisabled(pFlag){
  74. switch(pFlag){
  75. case "H":
  76. var sFlag = ds_main_hddrapntcretlist_hddrapntcretinfo.getColumn(0, "cretopt"); // 지정의사 선택 값 (1:전체, 2:Shift별)
  77. if(sFlag == "1") { // 전체
  78. ipt_alldrapntid.enable = true;
  79. btn_srchalldrapnt.enable = true;
  80. ipt_fstdrapntid.enable = false;
  81. btn_srchfstdrapnt.enable = false;
  82. ipt_scnddrapntid.enable = false;
  83. btn_srchscnddrapnt.enable = false;
  84. ipt_lastdrapntid.enable = false;
  85. btn_srchlastdrapnt.enable = false;
  86. ipt_erdrapntid.enable = false; //응급Shift추가-kys-20091217
  87. btn_srcherdrapnt.enable = false; //응급Shift추가-kys-20091217
  88. }else if(sFlag == "2") { // Shift별
  89. ipt_alldrapntid.enable = false;
  90. btn_srchalldrapnt.enable = false;
  91. ipt_fstdrapntid.enable = true;
  92. btn_srchfstdrapnt.enable = true;
  93. ipt_scnddrapntid.enable = true;
  94. btn_srchscnddrapnt.enable = true;
  95. ipt_lastdrapntid.enable = true;
  96. btn_srchlastdrapnt.enable = true;
  97. ipt_erdrapntid.enable = true; //응급Shift추가-kys-20091217
  98. btn_srcherdrapnt.enable = true; //응급Shift추가-kys-20091217
  99. }
  100. break;
  101. case "P": // PD예약의사지정 오전오후 생성으로 추가_20100125
  102. var sFlag = ds_main_pddrapntcretlist_pddrapntcretinfo.getColumn(0, "cretopt"); // 지정의사 선택 값 (1:전체, 2:시간별)
  103. if(sFlag == "1") { // 전체
  104. ipt_pdalldrapntid.enable = true;
  105. btn_pdsrchalldrapnt.enable = true;
  106. ipt_pdfstdrapntid.enable = false;
  107. btn_pdsrchfstdrapnt.enable = false;
  108. ipt_pdscnddrapntid.enable = false;
  109. btn_pdsrchscnddrapnt.enable = false;
  110. }else if(sFlag == "2") { // 시간별
  111. ipt_pdalldrapntid.enable = false;
  112. btn_pdsrchalldrapnt.enable = false;
  113. ipt_pdfstdrapntid.enable = true;
  114. btn_pdsrchfstdrapnt.enable = true;
  115. ipt_pdscnddrapntid.enable = true;
  116. btn_pdsrchscnddrapnt.enable = true;
  117. }
  118. break;
  119. }
  120. //model.refresh();
  121. }
  122. /**
  123. * _group :
  124. * _ver : 2007.08.20
  125. * _by : 김진아
  126. * _---------------------------------------------------
  127. * _type : function
  128. * _access : public
  129. * _desc : HD의사지정 History조회
  130. * _param :
  131. * _return :
  132. * _---------------------------------------------------
  133. */
  134. function fSrchDrApntHist(pFlag){
  135. var currentdate = utlf_getCurrentDate();
  136. ipt_appfromdd.enable = true;
  137. ipt_apptodd.enable = true;
  138. ds_main_hddrapnthistlist.clearData();
  139. ds_main_pddrapnthistlist.clearData();
  140. ds_send_reqdata.clearData();
  141. dsf_makeValue( ds_send_reqdata, "srchfromdd", "string", ds_main_cond.getColumn(0, "srchfromdd"));
  142. dsf_makeValue( ds_send_reqdata, "srchtodd", "string", ds_main_cond.getColumn(0, "srchtodd"));
  143. if(pFlag == "H"){
  144. grd_hddrapnthistinfo.rebuildStyle();
  145. // submit("TRMND03201");
  146. var oParam = {};
  147. oParam.id = "TRMND03201";
  148. oParam.service = "dialapp.DialPatMngt";
  149. oParam.method = "reqGetHDDrApntHist";
  150. oParam.inds = "req=ds_";
  151. oParam.outds = "ds_=hddrapnthistinfo";
  152. oParam.async = false;
  153. oParam.callback = "cf_TRMND03201";
  154. tranf_submit(oParam);
  155. /*
  156. function cf_TRMND03201(sSvcId, nErrorCode, sErrorMsg) {
  157. if(nErrorCode < 0) return;
  158. }
  159. function cf_TRMND03201(sSvcId, nErrorCode, sErrorMsg) {
  160. arErrorCode.push(sSvcId, nErrorCode);
  161. }
  162. arErrorCode.pop("TRMND03201") > -1
  163. arErrorCode.pop("TRMND03201") < 0
  164. */
  165. for(var i = grd_hddrapnthistinfo.fixedrows ; i < grd_hddrapnthistinfo.rows ; i++){
  166. if( grd_hddrapnthistinfo.valueMatrix(i, grd_hddrapnthistinfo.colRef("usernm")) == "" ){
  167. grd_hddrapnthistinfo.rowStyle(i, "all", "background-color") = "#ffd98d";
  168. }
  169. if( grd_hddrapnthistinfo.valueMatrix(i, grd_hddrapnthistinfo.colRef("appdd")) <= currentdate &&
  170. grd_hddrapnthistinfo.valueMatrix(i, grd_hddrapnthistinfo.colRef("apptodd")) >= currentdate ){
  171. grd_hddrapnthistinfo.rowStyle(i, "all", "background-color") = "#ccff99";
  172. }
  173. }
  174. }else{
  175. grd_pddrapnthistinfo.rebuildStyle();
  176. // submit("TRMND03203");
  177. var oParam = {};
  178. oParam.id = "TRMND03201";
  179. oParam.service = "dialapp.DialPatMngt";
  180. oParam.method = "reqGetPDDrApntHist";
  181. oParam.inds = "req=ds_";
  182. oParam.outds = "ds_=pddrapnthistinfo";
  183. oParam.async = false;
  184. oParam.callback = "cf_TRMND03201";
  185. tranf_submit(oParam);
  186. /*
  187. function cf_TRMND03201(sSvcId, nErrorCode, sErrorMsg) {
  188. if(nErrorCode < 0) return;
  189. }
  190. function cf_TRMND03201(sSvcId, nErrorCode, sErrorMsg) {
  191. arErrorCode.push(sSvcId, nErrorCode);
  192. }
  193. arErrorCode.pop("TRMND03201") > -1
  194. arErrorCode.pop("TRMND03201") < 0
  195. */
  196. for(var i = grd_pddrapnthistinfo.fixedrows ; i < grd_pddrapnthistinfo.rows ; i++){
  197. if( grd_pddrapnthistinfo.valueMatrix(i, grd_pddrapnthistinfo.colRef("usernm")) == "" ){
  198. grd_pddrapnthistinfo.rowStyle(i, "all", "background-color") = "#ffd98d";
  199. }
  200. if( grd_pddrapnthistinfo.valueMatrix(i, grd_pddrapnthistinfo.colRef("appdd")) <= currentdate &&
  201. grd_pddrapnthistinfo.valueMatrix(i, grd_pddrapnthistinfo.colRef("apptodd")) >= currentdate ){
  202. grd_pddrapnthistinfo.rowStyle(i, "all", "background-color") = "#ccff99";
  203. }
  204. }
  205. }
  206. }
  207. /**
  208. * _group :
  209. * _ver : 2007.08.21
  210. * _by : 김진아
  211. * _---------------------------------------------------
  212. * _type : function
  213. * _access : public
  214. * _desc : 적용일자 체크
  215. * _param :
  216. * _return :
  217. * _---------------------------------------------------
  218. */
  219. function fChkAppdd(sPath, pFlag){
  220. //** 오늘 이전 적용일자 설정 금지 **//
  221. var xPath ="";
  222. if(pFlag == "H"){
  223. xPath = "ds_main_hddrapntcretlist_hddrapntcretinfo/";
  224. }else{
  225. xPath = "ds_main_pddrapntcretlist_pddrapntcretinfo/";
  226. }
  227. var sSelDate = model.getValue(xPath + sPath);
  228. var lstMonthDay = new Date().getMonthDay(); // 해달 월의 마직막 일
  229. //if(sSelDate <= utlf_getCurrentDate()) {
  230. //alert("kkkk=====" + sSelDate );
  231. if(sSelDate < utlf_getCurrentDate()) { //20131231 kya 당일을 포함하도록 수정
  232. sysf_messageBox("적용일자를 오늘 이전으로 설정", "E001", "적용일자를 다시 입력하세요.");
  233. model.setValue(xPath + sPath, getDateAddc(utlf_getCurrentDate(),1));
  234. //model.refresh();
  235. return;
  236. }
  237. //** 적용기간 범위 확인 **//
  238. var sAppFromDD = model.getValue(xPath +"appfromdd");
  239. var sAppToDD = model.getValue(xPath +"apptodd" );
  240. if( sAppFromDD != "" && sAppFromDD > sAppToDD) {
  241. sysf_messageBox("잘못된 범위 입니다.", "E");
  242. fInit(pFlag); // 예약의사지정 초기화
  243. return;
  244. }
  245. }
  246. /**
  247. * _group :
  248. * _ver : 2007.08.22
  249. * _by : 김진아
  250. * _---------------------------------------------------
  251. * _type : function
  252. * _access : public
  253. * _desc : 생성일시, 적용기간 초기화
  254. * _param :
  255. * _return :
  256. * _---------------------------------------------------
  257. */
  258. function fInit(pFlag){
  259. var currentDate = utlf_getCurrentDate(); // 현재일자
  260. switch(pFlag){
  261. case "H":
  262. var lstAppToDD = ds_main_hddrapnthistlist_hddrapnthistinfo.getColumn(1, "apptodd");
  263. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "cretopt", "1"); // 지정의사 Defalt설정 (1: 전체)
  264. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "cretdd" , currentDate ); // 생성일자
  265. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "crettm" , utlf_getCurrentTime().substr(0,4)); // 생성시간
  266. if(lstAppToDD != "") {
  267. lstAppToDD = (lstAppToDD.toDate("YYYYMMDD")).getAddDate(1);
  268. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "appfromdd", lstAppToDD.getDateFormat() ); // 적용일자
  269. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "apptodd" , (lstAppToDD.getAddDate(1, "M")).getDateFormat()); // 1개월 후 일자
  270. } else {
  271. currentDate = (currentDate.toDate("YYYYMMDD")).getAddDate(1);
  272. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "appfromdd", currentDate.getDateFormat()); // 적용일자
  273. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "apptodd" , (currentDate.getAddDate(1, "M")).getDateFormat()); // 1개월 후 일자
  274. }
  275. ipt_alldrapntid.setFocus(); //** 초기 포커스 설정(전체적용의사) **//
  276. fInitDrApnt(pFlag); // 의사지정 초기화
  277. fSetDisabled(rdo_srchflag.value); // 지정의사 컨트롤 활성여부 설정
  278. ipt_appfromdd.enable = true;
  279. ipt_apptodd.enable = true;
  280. //model.refresh();
  281. break;
  282. case "P":
  283. var lstAppToDD = ds_main_pddrapnthistlist_pddrapnthistinfo.getColumn(1, "apptodd");
  284. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "cretdd" , currentDate ); // 생성일자
  285. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "crettm" , utlf_getCurrentTime().substr(0,4)); // 생성시간
  286. if(lstAppToDD != "") {
  287. lstAppToDD = (lstAppToDD.toDate("YYYYMMDD")).getAddDate(1);
  288. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "appfromdd", lstAppToDD.getDateFormat() ); // 적용일자
  289. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "apptodd" , (lstAppToDD.getAddDate(1, "M")).getDateFormat()); // 1개월 후 일자
  290. } else {
  291. currentDate = (currentDate.toDate("YYYYMMDD")).getAddDate(1);
  292. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "appfromdd", currentDate.getDateFormat()); // 적용일자
  293. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "apptodd" , (currentDate.getAddDate(1, "M")).getDateFormat()); // 1개월 후 일자
  294. }
  295. ipt_pdalldrapntid.setFocus(); //** 초기 포커스 설정(전체적용의사) **//
  296. fInitDrApnt(pFlag); // 의사지정 초기화
  297. fSetDisabled(rdo_srchflag.value); // 지정의사 컨트롤 활성여부 설정
  298. ipt_pdappfromdd.enable = true;
  299. ipt_pdapptodd.enable = true;
  300. //model.refresh();
  301. break;
  302. }
  303. }
  304. /**
  305. * _group :
  306. * _ver : 2007.08.22
  307. * _by : 김진아
  308. * _---------------------------------------------------
  309. * _type : function
  310. * _access : public
  311. * _desc : 의사지정 초기화
  312. * _param :
  313. * _return :
  314. * _---------------------------------------------------
  315. */
  316. function fInitDrApnt(pFlag){
  317. switch(pFlag){
  318. case "H":
  319. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "alldrapntid" , "");
  320. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "alldrapntnm" , "");
  321. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "fstdrapntid" , "");
  322. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "fstdrapntnm" , "");
  323. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "scnddrapntid", "");
  324. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "scnddrapntnm", "");
  325. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "lastdrapntid", "");
  326. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "lastdrapntnm", "");
  327. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "erdrapntid", ""); //응급Shift추가-kys-20091217
  328. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "erdrapntnm", ""); //응급Shift추가-kys-20091217
  329. break;
  330. case "P":
  331. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "alldrapntid" , "");
  332. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "alldrapntnm" , "");
  333. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "fstdrapntid" , "");
  334. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "fstdrapntnm" , "");
  335. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "scnddrapntid", "");
  336. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "scnddrapntnm", "");
  337. break;
  338. }
  339. }
  340. /**
  341. * _group :
  342. * _ver : 2007.08.22
  343. * _by : 김진아
  344. * _---------------------------------------------------
  345. * _type : function
  346. * _access : public
  347. * _desc : 예약의사 지정 기존정보 수정 설정
  348. * _param :
  349. * _return :
  350. * _---------------------------------------------------
  351. */
  352. function fSetDrApntHist(pFlag){
  353. var currentdate = utlf_getCurrentDate();
  354. if(pFlag == "H"){
  355. var xSavePath = "ds_main_hddrapntcretlist_hddrapntcretinfo";
  356. var sRow = grd_hddrapnthistinfo.row;
  357. //그리스 상단 선택 제어
  358. if(sRow < grd_hddrapnthistinfo.fixedRows ){
  359. return;
  360. }
  361. //과거 예약 이력 변경 제어
  362. //start
  363. //20140205 kya 수정 당일 진료의가 변경될 수 있도록 수정함.
  364. //if(grd_hddrapnthistinfo.valueMatrix(sRow, grd_hddrapnthistinfo.colRef("apptodd")) <= currentdate){
  365. if(grd_hddrapnthistinfo.valueMatrix(sRow, grd_hddrapnthistinfo.colRef("apptodd")) < currentdate){
  366. //end
  367. sysf_messageBox("과거의 의사지정 내역은 수정할 수 없습니다.", "I");
  368. return;
  369. }
  370. var sMsg = "";
  371. if(grd_hddrapnthistinfo.valueMatrix(sRow, grd_hddrapnthistinfo.colRef("usernm")) != "" ){
  372. sMsg = sysf_messageBox("기존 예약의사 정보를 수정하시겠습니까?", "S");
  373. }
  374. if(sMsg == 6 || sMsg == "") { //return : yes=6, no=7, 취소=2
  375. var iRow = (grd_hddrapnthistinfo.row)-1;
  376. dsf_makeValue( ds_main_hddrapntcretlist_hddrapntcretinfo, "status", "string", "i");
  377. if(ds_main_hddrapnthistlist_hddrapnthistinfo.getColumn(iRow, "usernm"))==""){
  378. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "cretdd" , currentdate );
  379. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "crettm" , utlf_getCurrentTime().substr(0,4) );
  380. }else{
  381. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "cretdd" , model.getValue("ds_main_hddrapnthistlist_hddrapnthistinfo["+iRow+"]_cretdd" ));
  382. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "crettm" , model.getValue("ds_main_hddrapnthistlist_hddrapnthistinfo["+iRow+"]_crettm" ));
  383. }
  384. if(ds_main_hddrapnthistlist_hddrapnthistinfo.getColumn(iRow, "appdd")) <= currentdate &&
  385. ds_main_hddrapnthistlist_hddrapnthistinfo.getColumn(iRow, "apptodd")) > currentdate ){
  386. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "appfromdd" , getDateCalc(currentdate, 1 , "+") );
  387. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "apptodd" , model.getValue("ds_main_hddrapnthistlist_hddrapnthistinfo["+iRow+"]_apptodd" ));
  388. }else{
  389. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "appfromdd" , model.getValue("ds_main_hddrapnthistlist_hddrapnthistinfo["+iRow+"]_appdd" ));
  390. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "apptodd" , model.getValue("ds_main_hddrapnthistlist_hddrapnthistinfo["+iRow+"]_apptodd" ));
  391. }
  392. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "fstdrapntid" , model.getValue("ds_main_hddrapnthistlist_hddrapnthistinfo["+iRow+"]_fstdrapntid" ));
  393. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "fstdrapntnm" , model.getValue("ds_main_hddrapnthistlist_hddrapnthistinfo["+iRow+"]_fstdrapntnm" ));
  394. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "scnddrapntid", ds_main_hddrapnthistlist_hddrapnthistinfo.getColumn(iRow, "scnddrapntid")));
  395. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "scnddrapntnm", ds_main_hddrapnthistlist_hddrapnthistinfo.getColumn(iRow, "scnddrapntnm")));
  396. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "lastdrapntid", ds_main_hddrapnthistlist_hddrapnthistinfo.getColumn(iRow, "lastdrapntid")));
  397. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "lastdrapntnm", ds_main_hddrapnthistlist_hddrapnthistinfo.getColumn(iRow, "lastdrapntnm")));
  398. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "erdrapntid", ds_main_hddrapnthistlist_hddrapnthistinfo.getColumn(iRow, "erdrapntid"))); //응급Shift추가-kys-20091217
  399. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "erdrapntnm", ds_main_hddrapnthistlist_hddrapnthistinfo.getColumn(iRow, "erdrapntnm"))); //응급Shift추가-kys-20091217
  400. ds_main_hddrapntcretlist_hddrapntcretinfo.setColumn( 0, "cretopt" , "2");
  401. //model.refresh();
  402. fSetDisabled(rdo_srchflag.value); // 지정의사 컨트롤 활성여부 설정
  403. //ipt_appfromdd.enable = false;
  404. //ipt_apptodd.enable = false;
  405. }else {
  406. return;
  407. }
  408. }else{
  409. var sRow = grd_pddrapnthistinfo.row;
  410. //그리스 상단 선택 제어
  411. if(sRow < grd_pddrapnthistinfo.fixedRows ){
  412. return;
  413. }
  414. //과거 예약 이력 변경 제어
  415. //start
  416. //20140205 kya 수정 당일 진료의가 변경될 수 있도록 수정함.
  417. // if(grd_pddrapnthistinfo.valueMatrix(sRow, grd_pddrapnthistinfo.colRef("apptodd")) <= currentdate ){
  418. if(grd_pddrapnthistinfo.valueMatrix(sRow, grd_pddrapnthistinfo.colRef("apptodd")) < currentdate ){
  419. //end
  420. sysf_messageBox("과거의 의사지정 내역은 수정할 수 없습니다.", "I");
  421. return;
  422. }
  423. var sMsg = "";
  424. if(grd_pddrapnthistinfo.valueMatrix(sRow, grd_pddrapnthistinfo.colRef("usernm")) != "" ){
  425. sMsg = sysf_messageBox("기존 예약의사 정보를 수정하시겠습니까?", "S");
  426. }
  427. if(sMsg == 6 || sMsg == "") { //return : yes=6, no=7, 취소=2
  428. var iRow = (grd_pddrapnthistinfo.row)-1;
  429. dsf_makeValue( ds_main_pddrapntcretlist_pddrapntcretinfo, "status", "string", "i");
  430. if(ds_main_pddrapntcretlist_pddrapntcretinfo.getColumn(iRow, "usernm"))==""){
  431. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "cretdd" , currentdate );
  432. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "crettm" , utlf_getCurrentTime().substr(0,4) );
  433. }else{
  434. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "cretdd" , model.getValue("ds_main_hddrapnthistlist_hddrapnthistinfo["+iRow+"]_cretdd" ));
  435. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "crettm" , model.getValue("ds_main_hddrapnthistlist_hddrapnthistinfo["+iRow+"]_crettm" ));
  436. }
  437. if(ds_main_pddrapnthistlist_pddrapnthistinfo.getColumn(iRow, "appdd")) <= currentdate &&
  438. ds_main_pddrapnthistlist_pddrapnthistinfo.getColumn(iRow, "apptodd")) > currentdate ){
  439. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "appfromdd" , getDateCalc(currentdate, 1 , "+") );
  440. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "apptodd" , model.getValue("ds_main_pddrapnthistlist_pddrapnthistinfo["+iRow+"]_apptodd" ));
  441. }else{
  442. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "appfromdd" , model.getValue("ds_main_pddrapnthistlist_pddrapnthistinfo["+iRow+"]_appdd" ));
  443. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "apptodd" , model.getValue("ds_main_pddrapnthistlist_pddrapnthistinfo["+iRow+"]_apptodd" ));
  444. }
  445. //ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "cretdd" , model.getValue("ds_main_pddrapnthistlist_pddrapnthistinfo["+iRow+"]_cretdd" ));
  446. //ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "crettm" , model.getValue("ds_main_pddrapnthistlist_pddrapnthistinfo["+iRow+"]_crettm" ));
  447. // ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "alldrapntid" , model.getValue("ds_main_pddrapnthistlist_pddrapnthistinfo["+iRow+"]_fstdrapntid" ));
  448. // ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "alldrapntnm" , model.getValue("ds_main_pddrapnthistlist_pddrapnthistinfo["+iRow+"]_fstdrapntnm" ));
  449. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "fstdrapntid" , model.getValue("ds_main_pddrapnthistlist_pddrapnthistinfo["+iRow+"]_fstdrapntid" ));
  450. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "fstdrapntnm" , model.getValue("ds_main_pddrapnthistlist_pddrapnthistinfo["+iRow+"]_fstdrapntnm" ));
  451. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "scnddrapntid" , model.getValue("ds_main_pddrapnthistlist_pddrapnthistinfo["+iRow+"]_scnddrapntid" ));
  452. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "scnddrapntnm" , model.getValue("ds_main_pddrapnthistlist_pddrapnthistinfo["+iRow+"]_scnddrapntnm" ));
  453. ds_main_pddrapntcretlist_pddrapntcretinfo.setColumn( 0, "cretopt" , "2");
  454. //model.refresh();
  455. fSetDisabled(rdo_srchflag.value); // 지정의사 컨트롤 활성여부 설정
  456. //ipt_appfromdd.enable = false;
  457. //ipt_apptodd.enable = false;
  458. }else {
  459. return;
  460. }
  461. }
  462. }
  463. /**
  464. * _group :
  465. * _ver : 2007.07.25 // 수정일자 : 2007.09.21
  466. * _by : 최경용 // 수정자 : 김진아
  467. * _---------------------------------------------------
  468. * _type : function
  469. * _access : public
  470. * _desc : 참여자 정보 팝업 조회
  471. * _param : originalNode
  472. * _param : copyNode
  473. * _return : "true"/"false"
  474. * _---------------------------------------------------
  475. */
  476. function fClickUserBtn(userflag, sIDPath, sNMPath){
  477. var jobkindcd = "03";
  478. //var deptcd = "2010700000"; // 신장내과 부서코드:"2010700000"
  479. //하드코드수정-20090416
  480. var deptcd = ds_code_codeinfo_codelist.getColumn(0, "cdid");
  481. //alert("deptcd = " + deptcd);
  482. var titlenm = "인공신장실 예약 지정의 리스트";
  483. frmf_setParameter("SPMNN02100_deptcd", deptcd);
  484. frmf_setParameter("SPMNN02100_jobkindcd", jobkindcd);
  485. frmf_setParameter("SPMNN02100_titlenm" , titlenm);
  486. frmf_setParameter("SPMNN02100_userflag" , "doctor");
  487. frmf_modal("SPMNN02100", "", ""-"", "", "", "event.screenX ", "event.screenY", "", "", "", "", "", "M");
  488. var userid = frmf_getParameter("SPMNN02100_userid");
  489. var usernm = frmf_getParameter("SPMNN02100_usernm");
  490. var xHDPath = "ds_main_hddrapntcretlist_hddrapntcretinfo/";
  491. var xPDPath = "ds_main_pddrapntcretlist_pddrapntcretinfo/";
  492. switch(userflag){
  493. case "H":
  494. if(userid != ""){
  495. model.makeValue(xHDPath + sIDPath, userid);
  496. model.makeValue(xHDPath + sNMPath, usernm);
  497. }
  498. break;
  499. case "P":
  500. if(userid != ""){
  501. model.makeValue(xPDPath + sIDPath, userid);
  502. model.makeValue(xPDPath + sNMPath, usernm);
  503. }
  504. break;
  505. }
  506. frmf_setParameter("SPMNN02100_userid", "");
  507. frmf_setParameter("SPMNN02100_usernm", "");
  508. //model.refresh();
  509. }
  510. /**
  511. * _group :
  512. * _ver : 2007.08.20
  513. * _by : 김진아
  514. * _---------------------------------------------------
  515. * _type : function
  516. * _access : public
  517. * _desc : 예약의사지정 생성 저장
  518. * _param :
  519. * _return :
  520. * _---------------------------------------------------
  521. */
  522. function fSaveDrApntCret(pFlag){
  523. switch(pFlag){
  524. case "H":
  525. var xPath = "ds_main_hddrapntcretlist_hddrapntcretinfo/";
  526. var sAppDD = model.getValue(xPath + "appfromdd" ); // 적용일자
  527. var sAppToDD = model.getValue(xPath + "apptodd" ); // 적용종료일자
  528. var sCretDD = model.getValue(xPath + "cretdd" ); // 생성일자
  529. var sCretTM = model.getValue(xPath + "crettm" ); // 생성시간
  530. var sCretOpt = model.getValue(xPath + "cretopt" ); // 지정의사 옵션 값
  531. var sAllDrApntID = model.getValue(xPath + "alldrapntid" ); // 전체 예약의사ID
  532. var sAllDrApntNM = model.getValue(xPath + "alldrapntnm" ); // 전체 예약의사명
  533. var sFstDrApntID = model.getValue(xPath + "fstdrapntid" ); // 1shift 예약의사ID
  534. var sFstDrApntNM = model.getValue(xPath + "fstdrapntnm" ); // 1shift 예약의사명
  535. var sScndDrApntID = model.getValue(xPath + "scnddrapntid"); // 2shift 예약의사ID
  536. var sScndDrApntNM = model.getValue(xPath + "scnddrapntnm"); // 2shift 예약의사명
  537. var sLastDrApntID = model.getValue(xPath + "lastdrapntid"); // 3shift 예약의사ID
  538. var sLastDrApntNM = model.getValue(xPath + "lastdrapntnm"); // 3shift 예약의사명
  539. var sErDrApntID = model.getValue(xPath + "erdrapntid"); // 응급shift 예약의사ID-kys-20091217
  540. var sErDrApntNM = model.getValue(xPath + "erdrapntnm"); // 응급shift 예약의사명-kys-20091217
  541. //** 저장 전 빈값 확인 **//
  542. if(sAppDD == "") {
  543. sysf_messageBox("적용일자는 필수입력입니다.", "I", "적용일자를 입력하십시오.");
  544. ipt_appfromdd.setFocus();
  545. fSetDisabled(rdo_srchflag.value); return;
  546. }
  547. if(sAppToDD == "") {
  548. sysf_messageBox("적용종료일자는 필수입력입니다.", "I", "적용종료일자를 입력하십시오.");
  549. ipt_apptodd.setFocus();
  550. fSetDisabled(rdo_srchflag.value); return;
  551. }
  552. if(sCretDD == "") {
  553. sysf_messageBox("생성일자는 필수입력입니다.", "I", "생성일자를 입력하십시오.");
  554. ipt_cretdd.setFocus();
  555. fSetDisabled(rdo_srchflag.value); return;
  556. }
  557. if(sCretTM == "") {
  558. sysf_messageBox("생성시간은 필수입력입니다.", "I", "생성시간를 입력하십시오.");
  559. ipt_crettm.setFocus();
  560. fSetDisabled(rdo_srchflag.value); return;
  561. }
  562. if(sCretOpt == "") {
  563. sysf_messageBox("지정의사 정보는 필수입력입니다.", "I", "지정의사 옵션 값을 선택하십시오.");
  564. rdo_cretopt.setFocus();
  565. fSetDisabled(rdo_srchflag.value); return;
  566. } else if(sCretOpt == "1"){ // 전체
  567. if(sAllDrApntID == "" || sAllDrApntNM == "") {
  568. sysf_messageBox("지정의사 정보는 필수입력입니다.", "I", "지정의사ID를 입력한 후 엔터키를 누르십시오.");
  569. ipt_alldrapntid.setFocus();
  570. fSetDisabled(rdo_srchflag.value); return;
  571. }
  572. }else if(sCretOpt == "2"){ // Shift별
  573. // 1Shift
  574. if(sFstDrApntID == "" || sFstDrApntNM == "") {
  575. sysf_messageBox("지정의사 정보는 필수입력입니다.", "I", "1Shift 지정의사ID를 입력한 후 엔터키를 누르십시오.");
  576. ipt_fstdrapntid.setFocus();
  577. fSetDisabled(rdo_srchflag.value); return;
  578. }
  579. // 2Shift
  580. if(sScndDrApntID == "" || sScndDrApntNM == "") {
  581. sysf_messageBox("지정의사 정보는 필수입력입니다.", "I", "2Shift 지정의사ID를 입력한 후 엔터키를 누르십시오.");
  582. ipt_scnddrapntid.setFocus();
  583. fSetDisabled(rdo_srchflag.value); return;
  584. }
  585. // 3Shift
  586. if(sLastDrApntID == "" || sLastDrApntNM == "") {
  587. sysf_messageBox("지정의사 정보는 필수입력입니다.", "I", "3Shift 지정의사ID를 입력한 후 엔터키를 누르십시오.");
  588. ipt_lastdrapntid.setFocus();
  589. fSetDisabled(rdo_srchflag.value); return;
  590. }
  591. // 응급Shift추가-kys-20091217
  592. if(sErDrApntID == "" || sErDrApntNM == "") {
  593. sysf_messageBox("지정의사 정보는 필수입력입니다.", "I", "응급Shift 지정의사ID를 입력한 후 엔터키를 누르십시오.");
  594. ipt_erdrapntid.setFocus();
  595. fSetDisabled(rdo_srchflag.value); return;
  596. }
  597. }
  598. var sChkYN = "N";
  599. //** 동일일자 데이터 존재 유무 확인 **//
  600. for(var i=1; i<grd_hddrapnthistinfo.rows; i++) {
  601. var sHistAppFromDD = model.getValue("ds_main_hddrapnthistlist_hddrapnthistinfo["+ i +"]_appdd" ); // 기존적용일자
  602. var sHistAppToDD = ds_main_hddrapnthistlist_hddrapnthistinfo.getColumn(i, "apptodd"); // 기존적용종료일자
  603. var sAftHistAppFromDD = model.getValue("ds_main_hddrapnthistlist_hddrapnthistinfo["+ i+1 +"]_appdd" ); // 다음기존적용일자
  604. var sPreHistAppToDD = ds_main_hddrapnthistlist_hddrapnthistinfo.getColumn(i-1, "apptodd"); // 이전기존적용종료일자
  605. var sHistUser = ds_main_hddrapnthistlist_hddrapnthistinfo.getColumn(i, "usernm"); // 기존적용종료일자
  606. if(sAftHistAppFromDD==""){
  607. sAftHistAppFromDD = "99991231";
  608. }
  609. if(sPreHistAppToDD==""){
  610. sPreHistAppToDD = "00010101";
  611. }
  612. // if( ((sHistAppFromDD < sAppDD ) && (sAppDD < sHistAppToDD ))) {
  613. // var sMsg = sysf_messageBox("적용일자 구간에 지정의사가 존재합니다.", "S", "기존정보를 강제종료 시키시겠습니까?");
  614. //
  615. // // 기존의 지정의사정보를 수정
  616. // if(sMsg == 6) { //return : yes=6, no=7, 취소=2
  617. // //** 기존의 지정의사정보를 수정 **//
  618. // //dsf_makeValue( ds_main_hddrapntcretlist_hddrapntcretinfo, "status", "string", "u");
  619. //
  620. // ds_send.clearData();
  621. // dsf_makeValue( ds, "send", "string", "" );
  622. // dsf_makeValue( ds_send_savedata, "appdd", "string", sHistAppFromDD );
  623. // dsf_makeValue( ds_send_savedata, "apptodd", "string", sHistAppToDD );
  624. // dsf_makeValue( ds_send_savedata, "newappdd", "string", sAppDD);
  625. //
  626. // if(submit("TXMND03202") == true){ // 기존정보 종료일자 Update
  627. // dsf_makeValue( ds_main_hddrapntcretlist_hddrapntcretinfo, "status", "string", "i");
  628. // }
  629. // }else {
  630. // fInit(pFlag); // 생성일자, 적용일자 초기화
  631. // return;
  632. // }
  633. // } //if()
  634. // else
  635. if( ((sHistAppFromDD==sAppDD)||(sHistAppToDD==sAppDD)||(sHistAppFromDD==sAppToDD)||(sHistAppToDD==sAppToDD)
  636. ||((sHistAppFromDD<sAppToDD)&&(sAppToDD<sHistAppToDD))
  637. ||((sHistAppFromDD>sAppDD) &&(sAppToDD>sHistAppToDD))) && sHistUser != "" ){
  638. sChkYN ="Y";
  639. }
  640. }// end of for
  641. if(sChkYN == "Y"){
  642. var sMsg = sysf_messageBox("등록할 일자 구간에 기입력된 스케줄이 존재합니다.", "Q003");
  643. if(sMsg == "7"){
  644. fInit(pFlag); // 생성일자, 적용일자 초기화
  645. return;
  646. }
  647. }
  648. ds_send.clearData();
  649. dsf_makeValue( ds, "send", "string", "" );
  650. if(ds_main_hddrapntcretlist_hddrapntcretinfo.getColumn(0, "status") == "") {
  651. dsf_makeValue( ds_main_hddrapntcretlist_hddrapntcretinfo, "status", "string", "i");
  652. }
  653. dsf_makeValue( ds_send_savedata, "saveflag", "string", "H"); // 저장구분
  654. dsf_makeValue( ds_send_savedata, "status", "string", model.getValue(xPath + "status")); // 상태값
  655. dsf_makeValue( ds_send_savedata, "cretdd", "string", sCretDD); // 생성일자
  656. dsf_makeValue( ds_send_savedata, "crettm", "string", sCretTM); // 생성시간
  657. dsf_makeValue( ds_send_savedata, "apptodd", "string", sAppToDD); // 적용종료일자
  658. dsf_makeValue( ds_send_savedata, "appdd", "string", sAppDD ); // 적용일자
  659. if(sCretOpt == "1") {
  660. dsf_makeValue( ds_send_savedata, "fstdrapntid", "string", sAllDrApntID ); // 1shift 예약의사ID
  661. dsf_makeValue( ds_send_savedata, "fstdrapntnm", "string", sAllDrApntNM ); // 1shift 예약의사명
  662. dsf_makeValue( ds_send_savedata, "scnddrapntid", "string", sAllDrApntID ); // 2shift 예약의사ID
  663. dsf_makeValue( ds_send_savedata, "scnddrapntnm", "string", sAllDrApntNM ); // 2shift 예약의사명
  664. dsf_makeValue( ds_send_savedata, "lastdrapntid", "string", sAllDrApntID ); // 3shift 예약의사ID
  665. dsf_makeValue( ds_send_savedata, "lastdrapntnm", "string", sAllDrApntNM ); // 3shift 예약의사명
  666. dsf_makeValue( ds_send_savedata, "erdrapntid", "string", sAllDrApntID ); // 응급shift 예약의사ID-추가-kys-20091217
  667. dsf_makeValue( ds_send_savedata, "erdrapntnm", "string", sAllDrApntNM ); // 응급shift 예약의사명-추가-kys-20091217
  668. } else {
  669. dsf_makeValue( ds_send_savedata, "fstdrapntid", "string", sFstDrApntID ); // 1shift 예약의사ID
  670. dsf_makeValue( ds_send_savedata, "fstdrapntnm", "string", sFstDrApntNM ); // 1shift 예약의사명
  671. dsf_makeValue( ds_send_savedata, "scnddrapntid", "string", sScndDrApntID); // 2shift 예약의사ID
  672. dsf_makeValue( ds_send_savedata, "scnddrapntnm", "string", sScndDrApntNM); // 2shift 예약의사명
  673. dsf_makeValue( ds_send_savedata, "lastdrapntid", "string", sLastDrApntID); // 3shift 예약의사ID
  674. dsf_makeValue( ds_send_savedata, "lastdrapntnm", "string", sLastDrApntNM); // 3shift 예약의사명
  675. dsf_makeValue( ds_send_savedata, "erdrapntid", "string", sErDrApntID); // 응급shift 예약의사ID-추가-kys-20091217
  676. dsf_makeValue( ds_send_savedata, "erdrapntnm", "string", sErDrApntNM); // 응급shift 예약의사명-추가-kys-20091217
  677. }
  678. // if (submit("TXMND03201") == true){
  679. var oParam = {};
  680. oParam.id = "TXMND03201";
  681. oParam.service = "dialapp.DialPatMngt";
  682. oParam.method = "reqExeSaveHDDrApntCret";
  683. oParam.inds = "req=ds_";
  684. oParam.outds = "";
  685. oParam.async = false;
  686. oParam.callback = "cf_TXMND03201";
  687. tranf_submit(oParam);
  688. /*
  689. function cf_TXMND03201(sSvcId, nErrorCode, sErrorMsg) {
  690. if(nErrorCode < 0) return;
  691. }
  692. function cf_TXMND03201(sSvcId, nErrorCode, sErrorMsg) {
  693. arErrorCode.push(sSvcId, nErrorCode);
  694. }
  695. arErrorCode.pop("TXMND03201") > -1
  696. arErrorCode.pop("TXMND03201") < 0
  697. */
  698. //20090211-외래예약 진료의 변경을 위해 추가=============
  699. var sUpdChkyn = "N";
  700. //입력(수정)한 시작일이 기존종료일안에 포함되는지를 판단.
  701. for(var i=1; i<grd_hddrapnthistinfo.rows; i++) {
  702. var sHistAppToDD = "";
  703. sHistAppToDD = ds_main_hddrapnthistlist_hddrapnthistinfo.getColumn(i, "apptodd"); // 기존적용종료일자
  704. //alert("sHistAppToDD = " + sHistAppToDD);
  705. //alert("sAppDD = " + sAppDD);
  706. if(sHistAppToDD >= sAppDD){
  707. sUpdChkyn = "Y";
  708. break;
  709. }
  710. }
  711. //입력(수정)한 적용시작일이 기존 종료일안에 포함될경우 외래예약변경 팝업 호출
  712. if(sUpdChkyn == 'Y'){
  713. sysf_messageBox("미래예약존재시 진료의변경을 하셔야 합니다.", "I");
  714. var sPhFlag = "H";
  715. if(sCretOpt == "1"){
  716. var param = sPhFlag + "▦" + sAppDD + "▦" + sAppToDD + "▦" + sAllDrApntID + "▦" + sAllDrApntID + "▦" + sAllDrApntID;
  717. }else{
  718. var param = sPhFlag + "▦" + sAppDD + "▦" + sAppToDD + "▦" + sFstDrApntID + "▦" + sScndDrApntID + "▦" + sLastDrApntID;
  719. }
  720. //alert("param = " + param);
  721. frmf_setParameter("SMMND03600_param_pinfo", param);
  722. frmf_modal("../../.._emr_dialroomweb_xrw_SMMND03600", "SMMND03600", ""-"", "", "1", "event.screenX", "event.screenY", "", "", "", "", "", "M");
  723. }
  724. //20090211-외래예약 진료의 변경을 위해 추가 ================
  725. fSrchDrApntHist(pFlag); // HD의사지정 History조회
  726. fInit(pFlag); // 예약의사지정 초기화
  727. } else {
  728. sysf_messageBox("저장을 실패했습니다.", "C");
  729. }
  730. break;
  731. case "P":
  732. var xPath = "ds_main_pddrapntcretlist_pddrapntcretinfo/";
  733. var sAppDD = model.getValue(xPath + "appfromdd" ); // 적용일자
  734. var sAppToDD = model.getValue(xPath + "apptodd" ); // 적용종료일자
  735. var sCretDD = model.getValue(xPath + "cretdd" ); // 생성일자
  736. var sCretTM = model.getValue(xPath + "crettm" ); // 생성시간
  737. var sCretOpt = model.getValue(xPath + "cretopt" ); // 지정의사 옵션 값
  738. var sAllDrApntID = model.getValue(xPath + "alldrapntid" ); // 전체 예약의사ID
  739. var sAllDrApntNM = model.getValue(xPath + "alldrapntnm" ); // 전체 예약의사명
  740. var sFstDrApntID = model.getValue(xPath + "fstdrapntid" ); // 오전 예약의사ID
  741. var sFstDrApntNM = model.getValue(xPath + "fstdrapntnm" ); // 오전 예약의사명
  742. var sScndDrApntID = model.getValue(xPath + "scnddrapntid"); // 오후 예약의사ID
  743. var sScndDrApntNM = model.getValue(xPath + "scnddrapntnm"); // 오후 예약의사명
  744. //var sLastDrApntID = model.getValue(xPath + "lastdrapntid"); // 3shift 예약의사ID
  745. //var sLastDrApntNM = model.getValue(xPath + "lastdrapntnm"); // 3shift 예약의사명
  746. //** 저장 전 빈값 확인 **//
  747. if(sAppDD == "") {
  748. sysf_messageBox("적용일자는 필수입력입니다.", "I", "적용일자를 입력하십시오.");
  749. ipt_appfromdd.setFocus();
  750. fSetDisabled(rdo_srchflag.value); return;
  751. }
  752. if(sAppToDD == "") {
  753. sysf_messageBox("적용종료일자는 필수입력입니다.", "I", "적용종료일자를 입력하십시오.");
  754. ipt_apptodd.setFocus();
  755. fSetDisabled(rdo_srchflag.value); return;
  756. }
  757. if(sCretDD == "") {
  758. sysf_messageBox("생성일자는 필수입력입니다.", "I", "생성일자를 입력하십시오.");
  759. ipt_cretdd.setFocus();
  760. fSetDisabled(rdo_srchflag.value); return;
  761. }
  762. if(sCretTM == "") {
  763. sysf_messageBox("생성시간은 필수입력입니다.", "I", "생성시간를 입력하십시오.");
  764. ipt_crettm.setFocus();
  765. fSetDisabled(rdo_srchflag.value); return;
  766. }
  767. if(sCretOpt == "") {
  768. sysf_messageBox("지정의사 정보는 필수입력입니다.", "I", "지정의사 옵션 값을 선택하십시오.");
  769. rdo_pdcretopt.setFocus();
  770. fSetDisabled(rdo_srchflag.value); return;
  771. } else if(sCretOpt == "1"){ // 전체
  772. if(sAllDrApntID == "" || sAllDrApntNM == "") {
  773. sysf_messageBox("지정의사 정보는 필수입력입니다.", "I", "지정의사ID를 입력한 후 엔터키를 누르십시오.");
  774. ipt_pdalldrapntid.setFocus();
  775. fSetDisabled(rdo_srchflag.value); return;
  776. }
  777. }else if(sCretOpt == "2"){ // 시간별
  778. // 오전
  779. if(sFstDrApntID == "" || sFstDrApntNM == "") {
  780. sysf_messageBox("지정의사 정보는 필수입력입니다.", "I", "오전 지정의사ID를 입력한 후 엔터키를 누르십시오.");
  781. ipt_pdfstdrapntid.setFocus();
  782. fSetDisabled(rdo_srchflag.value); return;
  783. }
  784. // 오후
  785. if(sScndDrApntID == "" || sScndDrApntNM == "") {
  786. sysf_messageBox("지정의사 정보는 필수입력입니다.", "I", "오후 지정의사ID를 입력한 후 엔터키를 누르십시오.");
  787. ipt_pdscnddrapntid.setFocus();
  788. fSetDisabled(rdo_srchflag.value); return;
  789. }
  790. // // 3Shift
  791. // if(sLastDrApntID == "" || sLastDrApntNM == "") {
  792. // sysf_messageBox("지정의사 정보는 필수입력입니다.", "I", "3Shift 지정의사ID를 입력한 후 엔터키를 누르십시오.");
  793. // ipt_lastdrapntid.setFocus();
  794. // fSetDisabled(); return;
  795. // }
  796. }
  797. /*
  798. if(sAllDrApntID == "" || sAllDrApntNM == "") {
  799. sysf_messageBox("지정의사 정보는 필수입력입니다.", "I", "지정의사ID를 입력한 후 엔터키를 누르십시오.");
  800. ipt_pdalldrapntid.setFocus();
  801. //fSetDisabled();
  802. return;
  803. }
  804. */
  805. var sChkYN = "N";
  806. //** 동일일자 데이터 존재 유무 확인 **//
  807. for(var i=1; i<grd_pddrapnthistinfo.rows; i++) {
  808. var sHistAppFromDD = model.getValue("ds_main_pddrapnthistlist_pddrapnthistinfo["+ i +"]_appdd" ); // 기존적용일자
  809. var sHistAppToDD = ds_main_pddrapnthistlist_pddrapnthistinfo.getColumn(i, "apptodd"); // 기존적용종료일자
  810. var sAftHistAppFromDD = model.getValue("ds_main_pddrapnthistlist_pddrapnthistinfo["+ i+1 +"]_appdd" ); // 다음기존적용일자
  811. var sPreHistAppToDD = ds_main_pddrapnthistlist_pddrapnthistinfo.getColumn(i-1, "apptodd"); // 이전기존적용종료일자
  812. if(sAftHistAppFromDD==""){
  813. sAftHistAppFromDD = "99991231";
  814. }
  815. if(sPreHistAppToDD==""){
  816. sPreHistAppToDD = "00010101";
  817. }
  818. // if( ((sHistAppFromDD < sAppDD ) && (sAppDD < sHistAppToDD ))) {
  819. // var sMsg = sysf_messageBox("적용일자 구간에 지정의사가 존재합니다.", "S", "기존정보를 강제종료 시키시겠습니까?");
  820. //
  821. // // 기존의 지정의사정보를 수정
  822. // if(sMsg == 6) { //return : yes=6, no=7, 취소=2
  823. // //** 기존의 지정의사정보를 수정 **//
  824. // //dsf_makeValue( ds_main_hddrapntcretlist_hddrapntcretinfo, "status", "string", "u");
  825. //
  826. // ds_send.clearData();
  827. // dsf_makeValue( ds, "send", "string", "" );
  828. // dsf_makeValue( ds_send_savedata, "appdd", "string", sHistAppFromDD );
  829. // dsf_makeValue( ds_send_savedata, "apptodd", "string", sHistAppToDD );
  830. // dsf_makeValue( ds_send_savedata, "newappdd", "string", sAppDD);
  831. //
  832. // if(submit("TXMND03202") == true){ // 기존정보 종료일자 Update
  833. // dsf_makeValue( ds_main_pddrapntcretlist_pddrapntcretinfo, "status", "string", "i");
  834. // }
  835. // }else {
  836. // fInit(pFlag); // 생성일자, 적용일자 초기화
  837. // return;
  838. // }
  839. // } //if()
  840. // else
  841. if( ((sHistAppFromDD==sAppDD)||(sHistAppToDD==sAppDD)||(sHistAppFromDD==sAppToDD)||(sHistAppToDD==sAppToDD)
  842. ||((sHistAppFromDD<sAppToDD)&&(sAppToDD<sHistAppToDD))
  843. ||((sHistAppFromDD>sAppDD) &&(sAppToDD>sHistAppToDD))) && sHistUser != "" ){
  844. sChkYN ="Y";
  845. //sysf_messageBox("적용기간이", "E006", "적용기간을 확인하여 다시 시도하십시오.");
  846. //fInit(pFlag); // 생성일자, 적용일자 초기화
  847. //return;
  848. }
  849. }// end of for
  850. if(sChkYN == "Y"){
  851. var sMsg = sysf_messageBox("등록할 일자 구간에 기입력된 스케줄이 존재합니다.", "Q003");
  852. if(sMsg == "7"){
  853. fInit(pFlag); // 생성일자, 적용일자 초기화
  854. return;
  855. }
  856. }
  857. ds_send.clearData();
  858. dsf_makeValue( ds, "send", "string", "" );
  859. if(ds_main_pddrapntcretlist_pddrapntcretinfo.getColumn(0, "status") == "") {
  860. dsf_makeValue( ds_main_pddrapntcretlist_pddrapntcretinfo, "status", "string", "i");
  861. }
  862. dsf_makeValue( ds_send_savedata, "saveflag", "string", "P"); // 저장구분
  863. dsf_makeValue( ds_send_savedata, "status", "string", model.getValue(xPath + "status")); // 상태값
  864. dsf_makeValue( ds_send_savedata, "cretdd", "string", sCretDD); // 생성일자
  865. dsf_makeValue( ds_send_savedata, "crettm", "string", sCretTM); // 생성시간
  866. dsf_makeValue( ds_send_savedata, "apptodd", "string", sAppToDD); // 적용종료일자
  867. dsf_makeValue( ds_send_savedata, "appdd", "string", sAppDD ); // 적용일자
  868. /*원본_20100125
  869. dsf_makeValue( ds_send_savedata, "fstdrapntid", "string", sAllDrApntID ); // 1shift 예약의사ID
  870. dsf_makeValue( ds_send_savedata, "fstdrapntnm", "string", sAllDrApntNM ); // 1shift 예약의사명
  871. */
  872. if(sCretOpt == "1") { // 전체
  873. dsf_makeValue( ds_send_savedata, "fstdrapntid", "string", sAllDrApntID ); // 오전 예약의사ID
  874. dsf_makeValue( ds_send_savedata, "fstdrapntnm", "string", sAllDrApntNM ); // 오전 예약의사명
  875. dsf_makeValue( ds_send_savedata, "scnddrapntid", "string", sAllDrApntID ); // 오후 예약의사ID
  876. dsf_makeValue( ds_send_savedata, "scnddrapntnm", "string", sAllDrApntNM ); // 오후 예약의사명
  877. } else { // 시간별
  878. dsf_makeValue( ds_send_savedata, "fstdrapntid", "string", sFstDrApntID ); // 오전 예약의사ID
  879. dsf_makeValue( ds_send_savedata, "fstdrapntnm", "string", sFstDrApntNM ); // 오전 예약의사명
  880. dsf_makeValue( ds_send_savedata, "scnddrapntid", "string", sScndDrApntID); // 오후 예약의사ID
  881. dsf_makeValue( ds_send_savedata, "scnddrapntnm", "string", sScndDrApntNM); // 오후 예약의사명
  882. }
  883. // if (submit("TXMND03201") == true){
  884. var oParam = {};
  885. oParam.id = "TXMND03201";
  886. oParam.service = "dialapp.DialPatMngt";
  887. oParam.method = "reqExeSaveHDDrApntCret";
  888. oParam.inds = "req=ds_";
  889. oParam.outds = "";
  890. oParam.async = false;
  891. oParam.callback = "cf_TXMND03201";
  892. tranf_submit(oParam);
  893. /*
  894. function cf_TXMND03201(sSvcId, nErrorCode, sErrorMsg) {
  895. if(nErrorCode < 0) return;
  896. }
  897. function cf_TXMND03201(sSvcId, nErrorCode, sErrorMsg) {
  898. arErrorCode.push(sSvcId, nErrorCode);
  899. }
  900. arErrorCode.pop("TXMND03201") > -1
  901. arErrorCode.pop("TXMND03201") < 0
  902. */
  903. //20090211-외래예약 진료의 변경을 위해 추가=============
  904. var sUpdChkyn = "N";
  905. //입력(수정)한 시작일이 기존종료일안에 포함되는지를 판단.
  906. for(var i=1; i<grd_pddrapnthistinfo.rows; i++) {
  907. var sHistAppToDD = "";
  908. sHistAppToDD = ds_main_pddrapnthistlist_pddrapnthistinfo.getColumn(i, "apptodd"); // 기존적용종료일자
  909. //alert("sHistAppToDD = " + sHistAppToDD);
  910. //alert("sAppDD = " + sAppDD);
  911. if(sHistAppToDD >= sAppDD){
  912. sUpdChkyn = "Y";
  913. break;
  914. }
  915. }
  916. //입력(수정)한 적용시작일이 기존 종료일안에 포함될경우 외래예약변경 팝업 호출
  917. if(sUpdChkyn == 'Y'){
  918. sysf_messageBox("미래예약존재시 진료의변경을 하셔야 합니다.", "I");
  919. var sPhFlag = "P";
  920. //var param = sPhFlag + "▦" + sAppDD + "▦" + sAppToDD + "▦" + sAllDrApntID + "▦" + "" + "▦" + ""; // 원본_20100125
  921. if(sCretOpt == "1"){ // 전체
  922. var param = sPhFlag + "▦" + sAppDD + "▦" + sAppToDD + "▦" + sAllDrApntID + "▦" + sAllDrApntID;
  923. }else{ // 시간별
  924. var param = sPhFlag + "▦" + sAppDD + "▦" + sAppToDD + "▦" + sFstDrApntID + "▦" + sScndDrApntID;
  925. }
  926. //alert("param = " + param);
  927. frmf_setParameter("SMMND03600_param_pinfo", param);
  928. frmf_modal("../../.._emr_dialroomweb_xrw_SMMND03600", "SMMND03600", ""-"", "", "1", "event.screenX", "event.screenY", "", "", "", "", "", "M");
  929. }
  930. //20090211-외래예약 진료의 변경을 위해 추가 ================
  931. fSrchDrApntHist(pFlag); // HD의사지정 History조회
  932. fInit(pFlag); // 예약의사지정 초기화
  933. } else {
  934. sysf_messageBox("저장을 실패했습니다.", "C");
  935. }
  936. break;
  937. }
  938. }
  939. ]]></Script>