SPAHA00100_예약시간선택.xrw 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795
  1. <?xml version="1.0" encoding="EUC-KR"?>
  2. <!--
  3. * 제 목 : SPAHA00100.xrw
  4. * 설 명 : 예약시간선택
  5. * 설 계 자 : 손주연
  6. * 작 성 자 : 손주연
  7. * 작 성 일 : 2007.05.31
  8. * 수정이력 : 환자리스트조회추가-김다영 (2007.10.15)
  9. * 기 타 :
  10. -->
  11. <?xml-stylesheet href="../../../com/commonweb/css/common.css" type="text/css" ?>
  12. <xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/2002/01/xforms" xmlns:ev="http://www.w3.org/2001/xml-events">
  13. <xhtml:head>
  14. <xhtml:title>예약시간선택</xhtml:title>
  15. <model id="model1">
  16. <instance id="instance1">
  17. <root xmlns="">
  18. <main>
  19. <rsrvtmlst>
  20. <rsrvtm/>
  21. <psnnocnt/>
  22. </rsrvtmlst>
  23. <rsrvacptlst>
  24. <item>
  25. <statflag/>
  26. <hngnm/>
  27. <pid/>
  28. <sexage/>
  29. <rsrvtm/>
  30. <pkgcd/>
  31. <pkgnm/>
  32. <cmpynm/>
  33. <remcnts/>
  34. </item>
  35. </rsrvacptlst>
  36. <dayblist>
  37. <remdd/>
  38. <remcnts/>
  39. <instcd/>
  40. </dayblist>
  41. </main>
  42. <send>
  43. <srchcond/>
  44. <srchhealexamflag/>
  45. <srchrsrvmon/>
  46. <srchrsrvdd/>
  47. <srchsex/>
  48. <srchcnstdrid/>
  49. <srchroomcd/>
  50. <srchinstcd/>
  51. <srchdateyn/>
  52. <srchstatfg/>
  53. <srchfromdd/>
  54. <srchtodd/>
  55. <srchhealexamdetlflag/>
  56. <srchrsltcnstrsrvdd/>
  57. <srchrsltcnstrsrvtm/>
  58. <srchrsrvflag/>
  59. <srchrsltremcnts/>
  60. </send>
  61. <init>
  62. <room>
  63. <roomlst>
  64. <itemroom>
  65. <sel/>
  66. <testroomcd/>
  67. <testroomnm/>
  68. <cnt/>
  69. </itemroom>
  70. </roomlst>
  71. </room>
  72. <cnst>
  73. <drlst>
  74. <itemdr>
  75. <drid/>
  76. <drnm/>
  77. </itemdr>
  78. </drlst>
  79. </cnst>
  80. </init>
  81. <hidden>
  82. <default>
  83. <sex>M</sex>
  84. </default>
  85. <calendar>
  86. <year/>
  87. <month/>
  88. <weeklist>
  89. <list>
  90. <sun/>
  91. <mon/>
  92. <tue/>
  93. <wed/>
  94. <thu/>
  95. <fri/>
  96. <sat/>
  97. <sun_memo/>
  98. <mon_memo/>
  99. <tue_memo/>
  100. <wed_memo/>
  101. <thu_memo/>
  102. <fri_memo/>
  103. <sat_memo/>
  104. </list>
  105. </weeklist>
  106. </calendar>
  107. <grdcellcolor>
  108. <calrow/>
  109. <calcol/>
  110. <bfcalrow/>
  111. <bfcalcol/>
  112. </grdcellcolor>
  113. </hidden>
  114. <temp>
  115. <templst/>
  116. </temp>
  117. </root>
  118. </instance>
  119. <script type="javascript" src="../../../com/commonweb/js/common.js"/>
  120. <script type="javascript" src="../../../com/commonweb/js/dateHelper.js"/>
  121. <script type="javascript" src="../../../com/commonweb/js/utilHelper.js"/>
  122. <script type="javascript" src="../../../com/commonweb/js/tfHelper.js"/>
  123. <script type="javascript" src="../../../ast/healexamweb/js/healexam.js"/>
  124. <script type="javascript" ev:event="xforms-ready">
  125. <![CDATA[
  126. fInitCtrl();
  127. ]]>
  128. </script>
  129. <submission id="TRAHB01502" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/room/roomlst"/>
  130. <submission id="TRAHB01503" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/temp/templst"/>
  131. <submission id="TRAHB01504" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/init/cnst/drlst"/>
  132. <submission id="TRAHA00401" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/rsrvacptlst"/>
  133. <submission id="TRAHB01508" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/main/dayblist" resultref="/root/main/dayblist"/>
  134. <submission id="TRAHA00403" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" replace="instance" resultref="/root/main/rsrvacptlst"/>
  135. <!--병원일정-->
  136. <submission id="TRAEA03203" mediatype="application/x-www-form-urlencoded" method="post" ref="/root/send" resultref="/root/hidden/calendarinfo"/>
  137. </model>
  138. <script type="javascript">
  139. <![CDATA[
  140. /**==========================================================================================================================
  141. * 초기화 작업
  142. * SPAHA00100_PARAM1 : 예약조회구분 [건진전체(T), 검사실(R), 상담의별(C)]
  143. * SPAHA00100_PARAM2 : 예약일자
  144. * SPAHA00100_PARAM3 : 성별구분(종건예약일정)
  145. * SPAHA00100_PARAM4 : 예약일자가 setting될 부모 nodeset
  146. * SPAHA00100_PARAM5 : 예약시간 setting될 부모 nodeset
  147. * SPAHA00100_PARAM6 : 건진구분
  148. * SPAHA00100_PARAM7 : 결과상담의id가 setting될 node
  149. * SPAHA00100_PARAM8 : 일반건진 구분
  150. * SPAHA00100_PARAM9 : 비고사항이 setting 될 node
  151. *==========================================================================================================================*/
  152. function fInitCtrl(){
  153. model.removeNodeset("/root/main/rsrvtmlst");
  154. model.removeNodeset("/root/main/rsrvpatlst");
  155. if( checkOpener() ){
  156. var sRsrvFlag = opener.javascript.getParameter("SPAHA00100_PARAM1");
  157. var sRsrvDate = opener.javascript.getParameter("SPAHA00100_PARAM2");
  158. var sSexFlag = opener.javascript.getParameter("SPAHA00100_PARAM3");
  159. var sHealExamFlag = opener.javascript.getParameter("SPAHA00100_PARAM6");
  160. var sRsltCnstDrid = opener.javascript.getParameter("SPAHA00100_PARAM7");
  161. var sHealExamDetlFlag = opener.javascript.getParameter("SPAHA00100_PARAM8");
  162. var sRsltRemCnts = opener.javascript.getParameter("SPAHA00100_PARAM10");
  163. var dfSexFlag = model.getValue("/root/hidden/default/sex");
  164. model.setValue("/root/send/srchhealexamflag", opener.javascript.getParameter("SPAHA00100_PARAM6"));
  165. model.setValue("/root/send/srchhealexamdetlflag", sHealExamDetlFlag);
  166. //model.setValue("/root/send/srchrsrvflag", sRsrvFlag);
  167. model.setValue("/root/send/srchrsltremcnts",sRsltRemCnts);
  168. cmb_srchroomcd.visible = false;
  169. cmb_srchcnstdrid.visible = false;
  170. cap_cnstdr.visible = false;
  171. if(sSexFlag == "") {
  172. rdo_sex.visible = true;
  173. btn_cfm.disabled = true;
  174. }else {
  175. rdo_sex.visible = false;
  176. btn_cfm.disabled = false;
  177. }
  178. //sRsrvFlag : 상담예약 (C) , 건진예약(T)
  179. model.setValue("/root/send/srchcond" , sRsrvFlag);
  180. model.setValue("/root/send/srchsex" , sSexFlag == "" ? dfSexFlag:sSexFlag);
  181. model.setValue("/root/send/srchrsrvdd" , sRsrvDate );
  182. if( sRsrvFlag == "T" ){
  183. grd_rsrvtmlst.attribute("top") = parseInt( cap_cnstdr.attribute("top") );
  184. grd_rsrvtmlst.attribute("height") = parseInt( grd_rsrvtmlst.attribute("height") ) + parseInt( cap_cnstdr.attribute("height") );
  185. }
  186. else{
  187. cap_cnstdr.visible = true;
  188. model.setValue("/root/send/srchinstcd", getUserInfo("dutplceinstcd") );
  189. if( sRsrvFlag == "R"){
  190. cap_cnstdr.attribute("text") = "검사실";
  191. cmb_srchroomcd.visible = true;
  192. submit("TRAHB01502");
  193. }
  194. else {
  195. cmb_srchcnstdrid.visible = true;
  196. submit("TRAHB01504");
  197. cmb_srchcnstdrid.refresh();
  198. //cmb_srchcnstdrid.select(0);
  199. }
  200. }
  201. var curDate = null;
  202. if( sRsrvDate != "" ) {
  203. curDate = sRsrvDate.toDate();
  204. }
  205. else {
  206. curDate = getCurrentDate().toDate();
  207. }
  208. model.setValue("/root/hidden/calendar/year", curDate.getDateFormat('YYYY'));
  209. model.setValue("/root/hidden/calendar/month", curDate.getDateFormat('MM'));
  210. model.refresh();
  211. setCalendar(curDate);
  212. if( sRsrvFlag != "" ){
  213. if( sRsrvFlag == "C" ) {
  214. if(opener.model.getValue(sRsltCnstDrid) != "") {
  215. model.setValue("/root/send/srchcnstdrid" , opener.model.getValue(sRsltCnstDrid) );
  216. }else {
  217. cmb_srchcnstdrid.select(0);
  218. }
  219. }
  220. fGetRsrvSchList(0);
  221. }
  222. }
  223. else {
  224. initCalendar();
  225. }
  226. model.refresh();
  227. }
  228. function fGetHospitalCalendar(){
  229. var dd = (model.getValue("/root/hidden/calendar/year")).concat(model.getValue("/root/hidden/calendar/month"));
  230. model.makeNode("/root/send/date");
  231. model.setValue("/root/send/date",dd);
  232. if (submit("TRAEA03203") == true) return true;
  233. else return false;
  234. }
  235. function setCalendar(dateObj) {
  236. //서버로 자료 요청
  237. if ( fGetHospitalCalendar() != true ){
  238. messageBox("병원일정 데이터를 가져올 수", "I004");
  239. }
  240. // 그리드 초기화
  241. model.removeNodeset("/root/hidden/calendar/weeklist/list");
  242. dateObj.setDate(1);
  243. var startDay = dateObj.getDay();
  244. var days = dateObj.getMonthDay();
  245. var rows = Math.ceil( ( startDay + days ) / 7 );
  246. for( var i = 0; i < rows; i++ )
  247. grd_calendar.addRow(false);
  248. grd_calendar.rebuild();
  249. grd_calendar.rebuildStyle();
  250. var rowIndex = grd_calendar.fixedRows;
  251. var colIndex = startDay;
  252. var dutflag = '';
  253. for( var i = 1; i <= days; i++ ) {
  254. grd_calendar.valueMatrix(rowIndex, colIndex) = i;
  255. grd_calendar.cellStyle("font-weight", rowIndex, colIndex) = "bold";
  256. //write memo
  257. grd_calendar.valueMatrix(rowIndex , colIndex + 7) = setCalendarMemo( i );
  258. dutflag = model.getValue("/root/hidden/calendarinfo/calendarinfolist[" + i +"]/dutflag");
  259. if( dutflag == '8' ){ //'0' 평일, '4' 토요일, '8' 휴일
  260. fSetTextColor(rowIndex, colIndex, '#ff0000');
  261. }
  262. colIndex++;
  263. if( colIndex == 7 ) {
  264. colIndex = 0;
  265. rowIndex++;
  266. }
  267. }
  268. grd_calendar.resizeCells();
  269. }
  270. //해당 일자의 병원 일정 정보를 얻어 온다
  271. function setCalendarMemo( i )
  272. {
  273. var holiflag = "";
  274. var holinm = "";
  275. holiflag = model.getValue("/root/hidden/calendarinfo/calendarinfolist[" + i +"]/holiflag");
  276. holinm = model.getValue("/root/hidden/calendarinfo/calendarinfolist[" + i +"]/holinm");
  277. if( holinm == '-' ){
  278. holinm = "";
  279. }
  280. return holinm;
  281. }
  282. //그리드의 폰트 색상을 변경한다.
  283. function fSetTextColor(calRow, calCol, bgColor) {
  284. if( calCol < 7 ){
  285. //calCol = calCol + 7;
  286. grd_calendar.cellStyle("color", calRow, calCol) = bgColor;
  287. grd_calendar.cellStyle("color", calRow, calCol + 7) = bgColor;
  288. }else{
  289. //calCol = calCol - 7;
  290. grd_calendar.cellStyle("color", calRow, calCol) = bgColor;
  291. grd_calendar.cellStyle("color", calRow, calCol - 7) = bgColor;
  292. }
  293. //grd_calendar.rebuildStyle();
  294. }
  295. /**==========================================================================================================================
  296. * 월별 일별 스케쥴내역 조회.
  297. * vMode : 1 : 일자별 시간대별 가능인원 조회( 시간대만 조회)
  298. 2 : 월별 일자별 가능 인원 조회(달력만 조회~)
  299. 0 : 1, 2 동시 조회
  300. *==========================================================================================================================*/
  301. function fGetRsrvSchList(vMode ){
  302. if(grd_calendar.row == 0) return false;
  303. if( !checkOpener() ) return ;
  304. model.removeNodeset("/root/temp/templst");
  305. model.removeNodeset("/root/main/rsrvddlst"); ///
  306. model.removeNodeset("root/main/rsrvtmlst");
  307. // grd_rsrvtmlst.clear();
  308. model.removeNodeset(grd_rsrvtmlst.nodeset);
  309. var sRsrvMon = model.getValue("/root/hidden/calendar/year") + model.getValue("/root/hidden/calendar/month") ;
  310. if( model.getValue("/root/send/srchhealexamflag" ) == "" ){
  311. model.setValue("/root/send/srchhealexamflag" ,opener.javascript.getParameter("SPAHA00100_PARAM6"));
  312. }
  313. model.makeValue("/root/send/srchhealexamdetlflag" ,opener.javascript.getParameter("SPAHA00100_PARAM8"));
  314. // alert(opener.javascript.getParameter("SPAHA00100_PARAM8"));
  315. /* if( model.getValue("/root/send/srchhealexamdetlflag" ) == "" ){
  316. }
  317. */
  318. model.setValue( "/root/send/srchrsrvmon" , sRsrvMon);
  319. if( vMode == 1 ) {
  320. model.setValue( "/root/send/srchrsrvmon" , "");
  321. model.setValue("/root/send/srchrsrvdd" , fGetCalendarDate(grd_calendar) );
  322. }
  323. else
  324. if( vMode == 2 ) {
  325. model.setValue("/root/send/srchrsrvdd" , "" );
  326. }
  327. model.removeNodeset("/root/temp/templst");
  328. model.removeNodeset("/root/main/rsrvddlst"); ///root/main/rsrvtmlst
  329. submit("TRAHB01503");
  330. var sNode = null;
  331. if( (vMode == 0 ) || (vMode == 2) ) {
  332. sNode = instance1.selectSingleNode("/root/temp/templst/rsrvddlst");
  333. if( sNode != null ){
  334. var dd = null ;
  335. var iCol = null;
  336. var iRow = null;
  337. var firstDay = (sRsrvMon+ "01").toDate().getDay();
  338. sNode = instance1.selectNodes("/root/temp/templst/rsrvddlst");
  339. for( var i = 1 ; i <= sNode.length ; i++){
  340. dd = model.getValue("/root/temp/templst/rsrvddlst[" +i+ "]/rsrvdd" ) ;
  341. iCol = ( sRsrvMon + dd).toDate().getDay();
  342. iRow = Math.ceil( ( firstDay + Number(dd) ) / 7 );
  343. grd_calendar.valueMatrix(iRow , iCol + 7) = model.getValue("/root/temp/templst/rsrvddlst[" +i+ "]/psnnocnt" ) ;
  344. //2017/06/12 이정택 수정
  345. /*
  346. var rsrvpossyn = model.getValue("/root/temp/templst/rsrvddlst[" +i+ "]/rsrvpossyn" ) ;
  347. if(rsrvpossyn=='N'){
  348. grd_calendar.valueMatrix(iRow , iCol + 7) = grd_calendar.valueMatrix(iRow , iCol + 7) + "[초과]";
  349. fSetTextColor(iRow, iCol + 7, '#ff0000');
  350. }
  351. */
  352. //2017/06/12 이정택 수정
  353. }
  354. }
  355. }
  356. if( (vMode == 0 ) || (vMode == 1) ) {
  357. // model.removeNodeset("/root/temp/templst");
  358. model.removeNodeset("/root/main/rsrvddlst"); ///root/main/rsrvtmlst
  359. sNode = instance1.selectSingleNode("/root/temp/templst/rsrvtmlst");
  360. if( sNode != null )
  361. {
  362. copyNodeListType("/root/main", "/root/temp/templst/rsrvtmlst", "after");
  363. }
  364. }
  365. model.refresh();
  366. }
  367. /**==========================================================================================================================
  368. * 선택된 시간 얻기
  369. *==========================================================================================================================*/
  370. function fGetGrdTm(){
  371. var idx = grd_rsrvtmlst.row;
  372. if( idx < 1) {
  373. messageBox("시간을 선택하세요", "E999");
  374. return "";
  375. }
  376. if( (grd_rsrvtmlst.valueMatrix(idx, 2) == "0" ) ||(grd_rsrvtmlst.valueMatrix(idx, 2) == "" ) ) {
  377. messageBox( "예약정원을 초과하였습니다.", "E999");
  378. return "";
  379. }
  380. return grd_rsrvtmlst.valueMatrix(idx, 1);
  381. }
  382. /**==========================================================================================================================
  383. * 부모창에 예약일자/시간 설정
  384. *==========================================================================================================================*/
  385. function fSetRsrvDT(){
  386. if ( checkOpener() ){
  387. var sRsrvdd = fGetCalendarDate(grd_calendar) ;
  388. var sRsrvtm = "";
  389. if( sRsrvdd == "" ){
  390. sRsrvdd = opener.javascript.getParameter("SPAHA00100_PARAM2") ;
  391. }
  392. var vTmRef = opener.javascript.getParameter("SPAHA00100_PARAM5") ;
  393. if( vTmRef != "" ) {
  394. sRsrvtm = fGetGrdTm() ;
  395. if( sRsrvtm == "" ){
  396. return ;
  397. }
  398. }
  399. if( model.getValue("/root/send/srchcond") == "C" ){
  400. var vCnstDridNode = opener.javascript.getParameter("SPAHA00100_PARAM7") ;
  401. var vRsltRemCnts = opener.javascript.getParameter("SPAHA00100_PARAM9");
  402. if( vCnstDridNode != "" ) {
  403. vCnstDrid = model.getValue(cmb_srchcnstdrid.attribute("ref") );
  404. if( vCnstDrid == "" ){
  405. messageBox("결과상담의를 선택하세요", "E999");
  406. return ;
  407. }
  408. opener.model.makeValue(vCnstDridNode, vCnstDrid);
  409. }
  410. // 결과상담 비고등록
  411. opener.model.makeValue(vRsltRemCnts , model.getValue("/root/send/srchrsltremcnts") );
  412. }
  413. if( (sRsrvdd != "" ) && (sRsrvtm != "") ){
  414. var dtRsrvdd = ( sRsrvdd + " " + sRsrvtm + "00" ).toDate("YYYYMMDD hhmmss");
  415. if( dtRsrvdd <= getCurrentDateTime().toDate("YYYYMMDD hhmmss") ) {
  416. messageBox("예약시간이 현재 시간 전입니다. ", "E999");
  417. return ;
  418. }
  419. opener.model.setValue(opener.javascript.getParameter("SPAHA00100_PARAM4") , sRsrvdd ) ;
  420. opener.model.setValue(vTmRef, sRsrvtm ) ;
  421. opener.model.refresh();
  422. window.close();
  423. }
  424. }
  425. }
  426. /**==========================================================================================================================
  427. * 예약시간 선택 시 해당 일자 예약자 리스트 조회
  428. @author : 김다영
  429. @version : 2007-10-08
  430. *==========================================================================================================================*/
  431. function fGetRsrvPatList(){
  432. if(grd_calendar.row == 0) return false;
  433. //건진전체일정 , 검사실예약인원 리스트 조회
  434. model.removeNodeset("/root/main/schedule/rsrvacptlst");
  435. var sRsrvDate = fGetCalendarDate(grd_calendar);
  436. var sHealExamFlag = opener.javascript.getParameter("SPAHA00100_PARAM6");
  437. var sRsrvFlag = opener.javascript.getParameter("SPAHA00100_PARAM1");
  438. model.setValue("/root/send/srchhealexamflag" , opener.javascript.getParameter("SPAHA00100_PARAM6"));
  439. model.setValue("/root/send/srchstatfg" , "C");
  440. model.setValue("/root/send/srchdateyn" , "Y");
  441. model.setValue("/root/send/srchfromdd" , fGetCalendarDate(grd_calendar) );
  442. model.setValue("/root/send/srchtodd" , fGetCalendarDate(grd_calendar) );
  443. model.setValue("/root/send/srchinstcd" , getUserInfo("dutplceinstcd") );
  444. model.removeNodeset(grd_rsrvpatlst.nodeset);
  445. model.setValue("/root/send/srchcnstdrid" , "");
  446. // 예약,결과상담,검사실 일자 등록
  447. if(sRsrvFlag == "C") {
  448. model.setValue("/root/send/srchrsltcnstrsrvdd" , sRsrvDate);
  449. }else if(sRsrvFlag == "T") {
  450. model.setValue("/root/send/srchrsltcnstrsrvdd" , sRsrvDate);
  451. }else if(sRsrvFlag == "R") {
  452. }
  453. submit("TRAHA00403");
  454. }
  455. /**==========================================================================================================================
  456. * 선택한 셀 색깔넣기 #daa7d9(보라색)_2011.10.19By 김금련
  457. *==========================================================================================================================*/
  458. function setCellColor1(gridObj) {
  459. var calRow = 0; //현재선택
  460. var calCol = 0; //현재선택
  461. var bfcalRow = 0; //전에 선택
  462. var bfcalCol = 0; //전에 선택
  463. model.setValue("/root/hidden/grdcellcolor/calrow",grd_calendar.row);
  464. model.setValue("/root/hidden/grdcellcolor/calcol",grd_calendar.col);
  465. calRow = Number(model.getValue("/root/hidden/grdcellcolor/calrow"));
  466. calCol = Number(model.getValue("/root/hidden/grdcellcolor/calcol"));
  467. bfcalRow = Number(model.getValue("/root/hidden/grdcellcolor/bfcalrow"));
  468. bfcalCol = Number(model.getValue("/root/hidden/grdcellcolor/bfcalcol"));
  469. if(bfcalRow != "0" && bfcalCol != "0" ) {
  470. gridObj.cellStyle("background-color", bfcalRow, bfcalCol) = "#ffffff";
  471. if( bfcalCol < 7 ) {
  472. bfcalCol += 7;
  473. } else {
  474. bfcalCol -= 7;
  475. }
  476. gridObj.cellStyle("background-color", bfcalRow, bfcalCol) = "#ffffff";
  477. }
  478. model.setValue("/root/hidden/grdcellcolor/bfcalrow",grd_calendar.row);
  479. model.setValue("/root/hidden/grdcellcolor/bfcalcol",grd_calendar.col);
  480. gridObj.cellStyle("background-color", grd_calendar.row, calCol) = "#daa7d9";
  481. if( calCol < 7 ) {
  482. calCol += 7;
  483. } else {
  484. calCol -= 7;
  485. }
  486. gridObj.cellStyle("background-color", grd_calendar.row, calCol) = "#daa7d9";
  487. }
  488. /**==================================================================================================================
  489. * Calendar 선택한 일자 얻기
  490. *====================================================================================================================*/
  491. function fGetCalendarDate(grdObj){
  492. var cal_row = grdObj.row;
  493. var cal_col = grdObj.col;
  494. if( cal_col > 6) cal_col -= 7;
  495. var rsrvdd = "";
  496. if( cal_row > 0 ){
  497. var dd = model.getValue( grdObj.nodeset + "[" + cal_row + "]/" + grdObj.colAttribute( cal_col,"ref") ) ;
  498. if( dd.length < 2 ) {
  499. dd = "0" + dd;
  500. }
  501. rsrvdd = model.getValue("/root/hidden/calendar/year") + model.getValue("/root/hidden/calendar/month") + dd ;
  502. }
  503. return rsrvdd;
  504. }
  505. /**==================================================================================================================
  506. *Calendar 새로그리기
  507. * param :
  508. * - vDateFg : Y-년도, M-월
  509. * - vIncrease : 증감(+/-)
  510. *return : date (YYYYMMDD)
  511. *====================================================================================================================*/
  512. function fHRefreshCalender(vDateFg, vIncrease){
  513. if( (vDateFg != "Y" ) && (vDateFg != "M") ) {
  514. //alert(vDateFg);
  515. return ;
  516. }
  517. var iTerm = parseInt(vIncrease);
  518. var isMonth = model.getValue("/root/hidden/calendar/month");
  519. var isYear = model.getValue("/root/hidden/calendar/year");
  520. var isDate = (isYear+isMonth+1).toDate().getAddDate(iTerm,vDateFg);
  521. model.setValue("/root/hidden/calendar/year", isDate.getDateFormat('YYYY'));
  522. model.setValue("/root/hidden/calendar/month", isDate.getDateFormat('MM'));
  523. model.refresh();
  524. setCalendar(isDate);
  525. }
  526. ]]>
  527. </script>
  528. </xhtml:head>
  529. <xhtml:body pagewidth="720" pageheight="580" guideline="1,701;" style="margin-left:8; margin-top:8; margin-right:8; margin-bottom:8; ">
  530. <group id="grp_biz" scroll="auto" style="left:0px; top:0px; width:701px; height:550px; ">
  531. <caption id="caption1" class="tit_2" style="left:5px; top:10px; width:95px; height:14px; ">예약시간선택</caption>
  532. <line id="line1" class="line_1" style="x1:0px; y1:25px; x2:692px; y2:25px; "/>
  533. <datagrid id="grd_rsrvtmlst" nodeset="/root/main/rsrvtmlst" caption="시간^예약가능인원" colsep="^" colwidth="58, 75" dataheight="23" extendlastcol="scroll" mergecellsfixedrows="bycolrec" rowheader="seq" rowheight="23" rowsep="|" style="left:530px; top:57px; width:160px; height:345px; ">
  534. <col ref="rsrvtm" format="hh:nn"/>
  535. <col ref="psnnocnt"/>
  536. <script type="javascript" ev:event="ondblclick">
  537. <![CDATA[
  538. if(!btn_cfm.disabled) {
  539. fSetRsrvDT();
  540. }
  541. ]]>
  542. </script>
  543. </datagrid>
  544. <group id="grp_calendar" style="left:0px; top:30px; width:528px; height:40px; ">
  545. <shape id="rectangle1" class="calendar_header" appearance="rectangle" style="left:0px; top:0px; width:527px; height:40px; "/>
  546. <button id="btn_preyear" class="icon_pre_year" style="left:165px; top:12px; width:16px; height:16px; ">
  547. <caption/>
  548. <script type="javascript" ev:event="DOMActivate">
  549. <![CDATA[
  550. fHRefreshCalender("Y", -1);
  551. fGetRsrvSchList(2);
  552. model.removeNodeset("/root/main/rsrvacptlst");
  553. model.refresh();
  554. ]]>
  555. </script>
  556. </button>
  557. <button id="btn_nextyear" class="icon_next_year" style="left:340px; top:12px; width:16px; height:16px; ">
  558. <caption/>
  559. <script type="javascript" ev:event="DOMActivate">
  560. <![CDATA[
  561. fHRefreshCalender("Y", 1);
  562. fGetRsrvSchList(2);
  563. model.removeNodeset("/root/main/rsrvacptlst");
  564. model.refresh();
  565. ]]>
  566. </script>
  567. </button>
  568. <button id="btn_premonth" class="icon_pre_month" style="left:184px; top:12px; width:16px; height:16px; ">
  569. <caption/>
  570. <script type="javascript" ev:event="DOMActivate">
  571. <![CDATA[
  572. fHRefreshCalender("M", -1);
  573. fGetRsrvSchList(2);
  574. model.removeNodeset("/root/main/rsrvacptlst");
  575. model.refresh();
  576. ]]>
  577. </script>
  578. </button>
  579. <button id="btn_nextmonth" class="icon_next_month" style="left:321px; top:12px; width:16px; height:16px; ">
  580. <caption/>
  581. <script type="javascript" ev:event="DOMActivate">
  582. <![CDATA[
  583. fHRefreshCalender("M", 1);
  584. fGetRsrvSchList(2);
  585. model.removeNodeset("/root/main/rsrvacptlst");
  586. model.refresh();
  587. ]]>
  588. </script>
  589. </button>
  590. <output id="opt_year" ref="/root/hidden/calendar/year" class="calendar_output" style="left:210px; top:9px; width:30px; height:19px; "/>
  591. <output id="opt_month" ref="/root/hidden/calendar/month" class="calendar_output" style="left:260px; top:9px; width:30px; height:19px; "/>
  592. <caption id="caption8" class="calendar_output" style="left:240px; top:9px; width:20px; height:19px; ">년</caption>
  593. <caption id="caption9" class="calendar_output" style="left:290px; top:9px; width:20px; height:19px; ">월</caption>
  594. </group>
  595. <line id="line15" class="line_2" style="x1:0px; y1:423px; x2:692px; y2:423px; "/>
  596. <multilinegrid id="grd_calendar" nodeset="/root/hidden/calendar/weeklist/list" class="gridcalendar" autoresize="true" backcoloralternate="transparent" caption="일^월^화^수^목^금^토" colsep="^" colwidth="75, 75, 75, 75, 75, 75, 75" ellipsis="true" extendlastcol="noscroll" focuscolor="transparent" rowsep="|" selectionmode="free" mergecellsfixedrows="bycolrec" style="left:0px; top:69px; width:527px; height:275px; ">
  597. <row>
  598. <col class="color_sun" ref="sun" style="font-weight:bold; border-bottom-width:0px; "/>
  599. <col ref="mon" style="font-weight:bold; border-bottom-width:0px; "/>
  600. <col ref="tue" style="font-weight:bold; border-bottom-width:0px; "/>
  601. <col ref="wed" style="font-weight:bold; border-bottom-width:0px; "/>
  602. <col ref="thu" style="font-weight:bold; border-bottom-width:0px; "/>
  603. <col ref="fri" style="font-weight:bold; border-bottom-width:0px; "/>
  604. <col class="color_sat" ref="sat" style="font-weight:bold; border-bottom-width:0px; "/>
  605. </row>
  606. <row>
  607. <col ref="sun_memo" style="border-top-width:0px; "/>
  608. <col ref="mon_memo" style="border-top-width:0px; "/>
  609. <col ref="tue_memo" style="border-top-width:0px; "/>
  610. <col ref="wed_memo" style="border-top-width:0px; "/>
  611. <col ref="thu_memo" style="border-top-width:0px; "/>
  612. <col ref="fri_memo" style="border-top-width:0px; "/>
  613. <col ref="sat_memo" style="border-top-width:0px; "/>
  614. </row>
  615. <script type="javascript" ev:event="onclick">
  616. <![CDATA[
  617. setCellColor1(grd_calendar); //선택 셀의 컬러처리
  618. //model.setValue("/main/send/srchrsrvdd" ,fGetCalendarDate(grd_calendar) );
  619. model.removeNodeset(grd_rsrvtmlst.nodeset);
  620. fGetRsrvSchList(1); //예약시간 조회
  621. fGetRsrvPatList(); // 환자리스트 조회
  622. //달력의 선택한 일자 일자비고일자에 셋팅.
  623. model.makeValue("/root/main/dayblist/remdd" , fGetCalendarDate(grd_calendar));
  624. ipt_remdd.refresh();
  625. btn_srch_dayb.dispatch("DOMActivate");
  626. model.refresh();
  627. ]]>
  628. </script>
  629. </multilinegrid>
  630. <datagrid id="grd_rsrvpatlst" nodeset="/root/main/rsrvacptlst/item" caption="상태^환자명^등록번호^성별^시간^패키지코드^건진명^사업체^비고" colsep="^" colwidth="80, 58, 61, 44, 41, 67, 120, 118, 200" explorerbar="sort" mergecellsfixedrows="bycolrec" rowheader="seq" rowsep="|" style="left:0px; top:405px; width:692px; height:145px; ">
  631. <col ref="statflag" style="text-align:center; "/>
  632. <col ref="hngnm" style="text-align:center; "/>
  633. <col ref="pid" style="text-align:center; "/>
  634. <col ref="sexage" style="text-align:center; "/>
  635. <col ref="rsrvtm" format="hh:nn" style="text-align:center; "/>
  636. <col ref="pkgcd" style="text-align:center; "/>
  637. <col ref="pkgnm" style="text-align:center; "/>
  638. <col ref="cmpynm" style="text-align:center; "/>
  639. <col ref="remcnts" style="text-align:center; "/>
  640. </datagrid>
  641. <select1 id="cmb_srchcnstdrid" ref="/root/send/srchcnstdrid" class="combo_search" visibility="hidden" appearance="minimal" style="left:579px; top:32px; width:110px; height:19px; ">
  642. <choices>
  643. <itemset nodeset="/root/init/cnst/drlst/itemdr">
  644. <label ref="drnm"/>
  645. <value ref="drid"/>
  646. </itemset>
  647. </choices>
  648. <script type="javascript" ev:event="xforms-select">
  649. <![CDATA[
  650. fGetRsrvSchList(2);
  651. ]]>
  652. </script>
  653. </select1>
  654. <caption id="cap_cnstdr" class="cell_1" style="left:530px; top:31px; width:46px; height:23px; vertical-align:middle; ">상담의</caption>
  655. <line id="line19" class="line_3" style="x1:530px; y1:54px; x2:690px; y2:54px; "/>
  656. <select1 id="cmb_srchroomcd" ref="/root/send/srchroomcd" class="combo_search" visibility="hidden" appearance="minimal" style="left:579px; top:32px; width:110px; height:19px; ">
  657. <choices>
  658. <itemset nodeset="/root/init/room/roomlst/itemroom">
  659. <label ref="testroomnm"/>
  660. <value ref="testroomcd"/>
  661. </itemset>
  662. </choices>
  663. <script type="javascript" ev:event="xforms-select">
  664. <![CDATA[
  665. fGetRsrvSchList(2);
  666. ]]>
  667. </script>
  668. </select1>
  669. <caption id="cap_rsrvflag" class="cell_1" style="left:0px; top:381px; width:55px; height:23px; vertical-align:middle; ">비고사항</caption>
  670. <line id="line2" class="line_2" style="x1:0px; y1:345px; x2:527px; y2:345px; "/>
  671. <input id="input1" ref="/root/send/srchrsltremcnts" class="input_default" style="left:57px; top:383px; width:470px; height:19px; "/>
  672. <select1 id="rdo_sex" ref="/root/hidden/default/sex" visibility="hidden" appearance="full" cols="3" overflow="visible" style="left:620px; top:5px; width:70px; height:20px; border-style:none; ">
  673. <choices>
  674. <item>
  675. <label>남</label>
  676. <value>M</value>
  677. </item>
  678. <item>
  679. <label>여</label>
  680. <value>F</value>
  681. </item>
  682. </choices>
  683. <script type="javascript" ev:event="xforms-value-changed">
  684. <![CDATA[
  685. fInitCtrl();
  686. ]]>
  687. </script>
  688. </select1>
  689. <caption id="caption2" class="cell_1" style="left:0px; top:343px; width:55px; height:37px; vertical-align:middle; ">일자비고</caption>
  690. <textarea id="tar_remcnts" ref="/root/main/dayblist/remcnts" style="left:57px; top:345px; width:470px; height:35px; "/>
  691. <input id="ipt_remdd" ref="/root/main/dayblist/remdd" visibility="hidden" inputtype="date" style="left:150px; top:375px; width:100px; height:19px; "/>
  692. <button id="btn_srch_dayb" class="btn2_letter2" visibility="hidden" style="left:250px; top:375px; width:42px; height:19px; ">
  693. <caption>조회</caption>
  694. <script type="javascript" ev:event="DOMActivate">
  695. <![CDATA[
  696. model.makeValue("/root/main/dayblist/instcd" , getUserInfo("dutplceinstcd"));
  697. submit("TRAHB01508",false);
  698. if(model.getValue("/root/main/dayblist/remdd") == ""){
  699. //해당 일자에 데이터가 없으므로 노드와 일자를 셋팅해줌
  700. model.makeNode("/root/main/dayblist/remcnts");
  701. model.makeValue("/root/main/dayblist/remdd" , fGetCalendarDate(grd_calendar));
  702. }
  703. tar_remcnts.refresh();
  704. ipt_remdd.refresh();
  705. ]]>
  706. </script>
  707. </button>
  708. </group>
  709. <group id="grp_btn" scroll="auto" style="left:0px; top:550px; width:701px; height:27px; ">
  710. <button id="btn_cfm" class="btn4_letter2" style="left:585px; top:5px; width:56px; height:22px; ">
  711. <caption>확인</caption>
  712. <script type="javascript" ev:event="DOMActivate">
  713. <![CDATA[
  714. fSetRsrvDT();
  715. ]]>
  716. </script>
  717. </button>
  718. <button id="btn_cancel" class="btn4_letter2" style="left:644px; top:5px; width:56px; height:22px; ">
  719. <caption>취소</caption>
  720. <script type="javascript" ev:event="DOMActivate">
  721. <![CDATA[
  722. window.close();
  723. ]]>
  724. </script>
  725. </button>
  726. </group>
  727. </xhtml:body>
  728. </xhtml:html>