SMMNE05700.xjs 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Script type="xscript4.0"><![CDATA[/*
  3. 권역외상센터 당직 전문의 스케줄 관리(SMMNE05700.xfm - JScript )
  4. - Version :
  5. 1) : Ver.1.00.01
  6. - Create : 2012.08.01
  7. */
  8. //당직스케줄 그리드의 수정상태값
  9. var isEdited = 'N';
  10. //화면초기화
  11. function fInit(){
  12. var curdd = utlf_getCurrentDate();
  13. var curym = utlf_getCurrentDate().substring(0, 6);
  14. var worktitle = curym.substring(0, 4) + '년 ' + curym.substring(4, 6) + '월 전문의 당직리스트 (권역외상센터)';
  15. group3.group1.cpt_worktitle.text = worktitle;
  16. ds_cond.setColumn(0, "srchdd", curdd);
  17. ds_cond.setColumn(0, "srchym", curym);
  18. ds_send.setColumn(0, "srchym", curym);
  19. ds_send.setColumn(0, "gbn", ds_cond.getColumn(0, "gbn"));
  20. ds_init_orddeptinfo_orddeptinfolist.clearData();
  21. // 당직 기준 진료과 가져오기
  22. var oParam = {};
  23. oParam.id = "TRMNE05401";
  24. oParam.service = "ercareapp.ERPatMngt";
  25. oParam.method = "reqGetErProfscheDeptInfo";
  26. oParam.inds = "req=ds_send";
  27. oParam.outds = "ds_init_orddeptinfo_orddeptinfolist=orddeptinfolist";
  28. oParam.async = false;
  29. //oParam.callback = "cf_TRMNE05401";
  30. tranf_submit(oParam);
  31. group3.group1.grd_workerlistDN.visible = true;
  32. group3.group1.grd_workerlistOC.visible = false;
  33. // 외상당직 superuser 여부
  34. ds_send.setColumn(0, "userid", sysf_getUserInfo("userid"));
  35. ds_send.setColumn(0, "dutplcecd", sysf_getUserInfo("dutplcecd"));
  36. ds_send.setColumn(0, "workdd", utlf_getCurrentDate());
  37. var oParam = {};
  38. oParam.id = "TRMNE05805";
  39. oParam.service = "ercareapp.ERPatMngt";
  40. oParam.method = "reqGetSuperUserTCenter";
  41. oParam.inds = "req=ds_send";
  42. oParam.outds = "ds_main_userinfo=userinfo";
  43. oParam.async = false;
  44. //oParam.callback = "cf_TRMNE05805";
  45. tranf_submit(oParam);
  46. var sSuperUser = ds_main_userinfo.getColumn(0, "superuser");
  47. if (sSuperUser == "Y") {
  48. group3.group1.btn_cnfm.enable = true;
  49. } else {
  50. group3.group1.btn_cnfm.enable = false;
  51. }
  52. }
  53. //당직대상자리스트를 조회한다
  54. function fGetWorkScheduleList(orddeptcd, callopt){
  55. var srchym = utlf_transNullToEmpty(ds_cond.getColumn(0, "srchym"));
  56. var gbn = ds_cond.getColumn(0, "gbn");
  57. var worktitle = srchym.substring(0, 4) + '년 ' + srchym.substring(4, 6) + '월 전문의 당직리스트 (권역외상센터)';
  58. group3.group1.cpt_worktitle.text = worktitle;
  59. if( utlf_isNull(orddeptcd) ){
  60. orddept = group3.group4.cmb_orddeptcd.value;
  61. }
  62. ds_send.setColumn(0, "srchym", srchym);
  63. ds_send.setColumn(0, "gbn", gbn);
  64. ds_send.setColumn(0, "orddeptcd", orddeptcd);
  65. ds_send.setColumn(0, "monthcnt", utlf_getDayCountForMonth(srchym.substring(0, 4), srchym.substring(4, 6)));//조회년월의 마지막일
  66. var rslt = "";
  67. var oParam = {};
  68. oParam.id = "TRMNE05702";
  69. oParam.service = "ercareapp.ERPatMngt";
  70. oParam.method = "reqGetTrProfscheListDN";
  71. oParam.inds = "req=ds_send";
  72. oParam.outds = "ds_main_workerinfo_workerinfolist=workerinfolist";
  73. oParam.async = false;
  74. //oParam.callback = "cf_TRMNE05702";
  75. tranf_submit(oParam);
  76. if( utlf_isNull(ds_main_workerinfo_workerinfolist.getColumnInfo("confirmyn")) ){
  77. ds_main_workerinfo_workerinfolist.addColumn("confirmyn", "string");
  78. }
  79. ds_main_workerinfo_workerinfolist.addColumn("colColor1", "string");
  80. ds_main_workerinfo_workerinfolist.addColumn("colColor2", "string");
  81. ds_main_workerinfo_workerinfolist.addColumn("colColor3", "string");
  82. ds_main_workerinfo_workerinfolist.addColumn("colColor4", "string");
  83. ds_main_workerinfo_workerinfolist.addColumn("colColor5", "string");
  84. ds_main_workerinfo_workerinfolist.addColumn("colImage1", "string");
  85. ds_main_workerinfo_workerinfolist.addColumn("colImage2", "string");
  86. ds_main_workerinfo_workerinfolist.addColumn("colImage3", "string");
  87. ds_main_workerinfo_workerinfolist.addColumn("colImage4", "string");
  88. ds_main_workerinfo_workerinfolist.addColumn("colImage5", "string");
  89. grd_temp = group3.group1.grd_workerlistDN;
  90. if( arErrorCode.pop("TRMNE05701") > -1 ){
  91. //글로벌변수 초기화
  92. isEdited = 'N';
  93. //당직대상자의 선택제거
  94. if(callopt != "save") {
  95. ds_main_drinfo_drinfolist.rowposition = -1;
  96. }
  97. //당직리스트의 선택제거
  98. ds_main_workerinfo_workerinfolist.rowposition = -1;
  99. //당직리스트색깔 초기화
  100. for(var i = 0; i < grd_temp.rowcount; i++){
  101. ds_main_workerinfo_workerinfolist.setColumn(i, "colColor1", "");
  102. ds_main_workerinfo_workerinfolist.setColumn(i, "colColor2", "");
  103. ds_main_workerinfo_workerinfolist.setColumn(i, "colColor3", "");
  104. ds_main_workerinfo_workerinfolist.setColumn(i, "colColor4", "");
  105. ds_main_workerinfo_workerinfolist.setColumn(i, "colColor5", "");
  106. ds_main_workerinfo_workerinfolist.setColumn(i, "colImage1", "");
  107. ds_main_workerinfo_workerinfolist.setColumn(i, "colImage2", "");
  108. ds_main_workerinfo_workerinfolist.setColumn(i, "colImage3", "");
  109. ds_main_workerinfo_workerinfolist.setColumn(i, "colImage4", "");
  110. ds_main_workerinfo_workerinfolist.setColumn(i, "colImage5", "");
  111. // grd_temp.cellstyle("background-color", i, 0, i, 6) = '#ffffff';
  112. // grd_temp.cellStyle("background-image", i, 0, i, 6) = '';
  113. }
  114. }
  115. }
  116. function cf_TRMNE05701(sSvcId, nErrorCode, sErrorMsg) {
  117. arErrorCode.push(sSvcId, nErrorCode);
  118. }
  119. //그리드가 변경상태인지 조회한다.
  120. function isScheduleRefresh(isClose){
  121. var gbn = ds_cond.getColumn(0, "gbn");
  122. // if (gbn == "O") {
  123. // grd_temp = grd_workerlistOC;
  124. // } else {
  125. // grd_temp = grd_workerlistDN;
  126. // }
  127. grd_temp = group3.group1.grd_workerlistDN;
  128. var drStr;
  129. for(var i = 0 ; i < grd_temp.rowcount; i++){
  130. //사용하지않는 로직인듯..
  131. // if(instance1.selectSingleNode("/root/orgscheinfo/workinfo/workerinfolist[" + i + "]") != null){
  132. // if(instance1.selectSingleNode("/root/orgscheinfo/workinfo/workerinfolist[" + i + "]").xml
  133. // != instance1.selectSingleNode("/root/main/workerinfo/workerinfolist[" + i + "]").xml){
  134. // isEdited = 'Y';
  135. // drStr += model.getValue('/root/main/workerinfo/workerinfolist[' + i + ']/workdd') + '일자 변경';
  136. // break;
  137. // }
  138. // }
  139. }
  140. if(isEdited == 'Y'){
  141. //20090703 dhkim 창을 닫을때와 새로 조회할때의 메세지를 다르게 구성 Q003(계속진행하시겠습니까?)
  142. if(isClose){
  143. var saveYn = sysf_messageBox('수정하신 스케줄을 저장하지 않고 창을 닫으시겠습니까?', 'Q');//Q: 6:예, 7:아니오.
  144. } else{
  145. var saveYn = sysf_messageBox('수정하신 스케줄을 저장하지 않고 새로운 내역을', 'Q005');//Q005:조회하시겠습니까? 6:예, 7:아니오.
  146. }
  147. if(saveYn == 6){
  148. return 'Y';
  149. } else{
  150. return 'N';
  151. }
  152. }
  153. }
  154. function fGetDrInfo(orddeptcd) {
  155. if(utlf_isNull(orddeptcd)){
  156. sysf_messageBox("선택된 진료과가 없습니다.", "E999");
  157. }
  158. ds_send_drinfo.setColumn(0, "orddeptcd", orddeptcd);
  159. ds_send_drinfo.setColumn(0, "srchdd", ds_cond.getColumn(0, "srchdd"));
  160. ds_send_drinfo.setColumn(0, "srchym", ds_cond.getColumn(0, "srchym"));
  161. ds_send_drinfo.setColumn(0, "gbn", ds_cond.getColumn(0, "gbn"));
  162. var oParam = {};
  163. oParam.id = "TRMNE05402";
  164. oParam.service = "ercareapp.ERPatMngt";
  165. oParam.method = "reqGetErProfscheDrInfo";
  166. oParam.inds = "req=ds_send_drinfo";
  167. oParam.outds = "ds_main_drinfo_drinfolist=drinfolist";
  168. oParam.async = false;
  169. oParam.callback = "cf_TRMNE05402";
  170. tranf_submit(oParam);
  171. ds_main_drinfo_drinfolist.rowposition = -1;
  172. if( arErrorCode.pop("TRMNE05402") < 0 ){
  173. sysf_messageBox("진료과별 당직대상자 조회를 실패하였습니다.", "E999");
  174. return false;
  175. }
  176. }
  177. function cf_TRMNE05402(sSvcId, nErrorCode, sErrorMsg) {
  178. arErrorCode.push(sSvcId, nErrorCode);
  179. }
  180. /****************************************************************************************
  181. * Function : fClkArrowBtn
  182. * Description : 당직년월 화살표 클릭시 날자변경
  183. * Argument : objName : 버튼명
  184. * return type :
  185. * Creator :
  186. ****************************************************************************************/
  187. function fClkArrowBtn(objName){
  188. var srchdd = ds_cond.getColumn(0,"srchdd");
  189. var sNewdd = "";
  190. if(objName == "btn_bfyear") {
  191. sNewdd = srchdd.toDate("YYYYMMDD").getAddDate(-1, "Y").getDateFormat();
  192. } else if(objName == "btn_bfmonth") {
  193. sNewdd = srchdd.toDate("YYYYMMDD").getAddDate(-1, "M").getDateFormat();
  194. } else if(objName == "btn_afmonth") {
  195. sNewdd = srchdd.toDate("YYYYMMDD").getAddDate(1, "M").getDateFormat();
  196. } else if(objName == "btn_afyear"){
  197. sNewdd = srchdd.toDate("YYYYMMDD").getAddDate(1, "Y").getDateFormat();
  198. }
  199. if (!utlf_isNull(sNewdd)) {
  200. ds_cond.setColumn(0,"srchdd", sNewdd);
  201. ds_cond.setColumn(0,"srchym", sNewdd.substr(0, 6));
  202. }
  203. }
  204. //셀색상을 선택색으로 변경되지 않도록 원래색상으로 유지한다
  205. function fSetCellColor(clickRow, clickCol, clickColNm){
  206. // var gbn = model.getValue("/root/cond/gbn");
  207. // if ( gbn == "O" ) {
  208. // grd_temp = grd_workerlistOC;
  209. // } else {
  210. // grd_temp = grd_workerlistDN;
  211. // }
  212. grd_temp = grd_workerlistDN;
  213. var curColor = grd_temp.cellstyle("background-color", clickRow, clickCol, clickRow, clickCol);
  214. grd_temp.cellstyle("background-color", clickRow, clickCol, clickRow, clickCol) = curColor;
  215. }
  216. /**
  217. * @group :
  218. * @ver : 2009.06.11
  219. * @by : dhkim
  220. * @---------------------------------------------------
  221. * @type : function
  222. * @access : public
  223. * @desc : 당직대상자 마우스 오른쪽메뉴 mouse down
  224. * @param :
  225. * @return :
  226. * @---------------------------------------------------
  227. */
  228. function fMouseDownGridRow(){
  229. // var gbn = model.getValue("/root/cond/gbn");
  230. // if ( gbn == "O" ) {
  231. // grd_temp = grd_workerlistOC;
  232. // } else {
  233. // grd_temp = grd_workerlistDN;
  234. // }
  235. grd_temp = grd_workerlistDN;
  236. var rows = grd_temp.rows;
  237. var row = grd_temp.mouseRow-1;
  238. var col = grd_temp.mouseCol;
  239. if(row + 1 <= rows && rows > 2 && row > 0){
  240. if(event.button == 3){
  241. window.setPopupMenu(true, "/root/init/menu/item", "name", "func", false);
  242. }
  243. }else{
  244. window.setPopupMenu(false);
  245. }
  246. }
  247. function fSetWorkDr(setFlag, grd_temp){
  248. //선택된 당직대상자정보(id, nm)
  249. var drid = ds_main_drinfo_drinfolist.getColumn(ds_main_drinfo_drinfolist.rowposition, "drid");
  250. var drnm = ds_main_drinfo_drinfolist.getColumn(ds_main_drinfo_drinfolist.rowposition, "drnm");
  251. var orddeptcd = ds_main_drinfo_drinfolist.getColumn(ds_main_drinfo_drinfolist.rowposition, "orddeptcd");
  252. var nzone = ds_main_drinfo_drinfolist.getColumn(ds_main_drinfo_drinfolist.rowposition, "nzone");
  253. var hpno = ds_main_drinfo_drinfolist.getColumn(ds_main_drinfo_drinfolist.rowposition, "hpno");
  254. var gbn = ds_cond.getColumn(0, "gbn");
  255. //현재날짜+시간(yyyymmddhhss)
  256. var currentDD = utlf_getCurrentDateTime().replace(" ", "").substring(0, 12);
  257. var errYn = 'N'; //과거일자 선택여부
  258. //var cells = grd_temp.selectedCells; //선택된 쎌의 배열
  259. var sRow, sCol, sColNm; //선택된 쎌의 row, col 값, 선택된 col의 필드명
  260. var selDD; //선택된일자
  261. var confirm_d = "", confirm_n = "";
  262. var sSuperUser = ds_main_userinfo.getColumn(0, "superuser");
  263. ds_main_workerinfo_workerinfolist.enableevent = false;
  264. ds_main_workerinfo_workerinfolist.updatecontrol = false;
  265. for( var i=0 ; i<grd_temp.selectcount ; i++ ){
  266. for( var j=grd_temp.selectstartrow[i] ; j<=grd_temp.selectendrow[i] ; j++ ){
  267. for( var k=grd_temp.selectstartcol[i] ; k<=grd_temp.selectendcol[i] ; k++ ){
  268. sRowI = j;
  269. sRow = j;
  270. sCol = k;
  271. sColNm = utlf_transNullToEmpty(grd_temp.getCellProperty("Body", k, "text")).replace("bind:", "");
  272. selDD = ds_main_workerinfo_workerinfolist.getColumn(sRowI, "workdd");
  273. confirm_d = ds_main_workerinfo_workerinfolist.getColumn(sRowI, "confirm_d");
  274. confirm_n = ds_main_workerinfo_workerinfolist.getColumn(sRowI, "confirm_n");
  275. if (((sColNm == "drnm_d" && confirm_d == "Y") || (sColNm == "drnm_n" && confirm_n == "Y")) && sSuperUser != "Y") {
  276. sysf_messageBox('최종저장된 자료는 수정할 수 없습니다.\r\n권역외상센터 담당자에게 연락바랍니다.', 'E999');
  277. return false;
  278. }
  279. //현재일자보다 이전일자의 스케줄을 변경하지 못하게 blocking한다.
  280. // if(selectedDD < currentDD){
  281. // errYn = 'Y';
  282. // }else{
  283. if(sCol != 0){//일자셀 선택의 경우는 변경하지 않음
  284. //의사추가의경우
  285. if(setFlag == 'ADD'){
  286. //점검로직 추가
  287. if (fCheckValid(selDD, "T", "-", sColNm, drid)) {
  288. //선택된 쎌에 의사이름 쎄팅
  289. ds_main_workerinfo_workerinfolist.setColumn(sRowI, "gbn", gbn);
  290. if (sColNm == "drnm_d") {
  291. ds_main_workerinfo_workerinfolist.setColumn(sRowI, "drnm_d", drnm);
  292. ds_main_workerinfo_workerinfolist.setColumn(sRowI, "drid_d", drid);
  293. } else if (sColNm == "drnm_n") {
  294. ds_main_workerinfo_workerinfolist.setColumn(sRowI, "drnm_n", drnm);
  295. ds_main_workerinfo_workerinfolist.setColumn(sRowI, "drid_n", drid);
  296. }
  297. ds_main_workerinfo_workerinfolist.setColumn(sRowI, "orddeptcd", orddeptcd);
  298. ds_main_workerinfo_workerinfolist.setRowType(sRow, 4);
  299. //선택된 쎌 색상 변경
  300. ds_main_workerinfo_workerinfolist.setColumn(sRow, "colColor"+sCol, "#F4A6EE");
  301. //grd_temp.cellStyle('background-color', sRow, sCol) = "#F4A6EE";
  302. //지우개 이미지 삭제
  303. ds_main_workerinfo_workerinfolist.setColumn(sRow, "colImage"+sCol, "");
  304. //grd_temp.cellStyle("background-image", sRow, sCol) = '';
  305. }
  306. }
  307. //의사삭제의경우
  308. else{
  309. //셀에 데이터가 세팅되어 있는경우만 삭제되게
  310. var drnm = ds_main_workerinfo_workerinfolist.getColumn(sRowI, sColNm);
  311. if(!utlf_isNull(drnm)){
  312. //선택된 쎌에 의사이름 쎄팅
  313. //model.setValue('/root/main/workerinfo/workerinfolist['+ sRow + ']/' + sColNm, '');
  314. ds_main_workerinfo_workerinfolist.setColumn(sRowI, "drid" + sColNm.substring(4), '-');
  315. //선택된 쎌에 삭제 이미지 세팅
  316. //grd_workerlist.cellStyle("background-image", 1, 1) = '../../../emr/ercareweb/img/icon_close.gif';
  317. ds_main_workerinfo_workerinfolist.setColumn(sRow, "colImage"+sCol, "IMG::com/CM/icon_eraser.png");
  318. //grd_temp.cellStyle("background-image", sRow, sCol) = '../../../com/commonweb/images/icon_eraser.gif';
  319. //grd_temp.cellStyle("background-position", sRow, sCol) = 'center';
  320. //배경색을 흰색으로 초기화
  321. ds_main_workerinfo_workerinfolist.setColumn(sRow, "colColor"+sCol, "");
  322. }
  323. // }
  324. }
  325. }
  326. }
  327. }
  328. }
  329. ds_main_workerinfo_workerinfolist.updatecontrol = true;
  330. ds_main_workerinfo_workerinfolist.enableevent = true;
  331. //과거일자만 빼고 나머지 일자는 변경가능하도록 한다
  332. if(errYn == 'Y'){
  333. sysf_messageBox('과거일자의 스케줄은 변경하실 수 없습니다.', 'E999');
  334. return false;
  335. }
  336. }
  337. function fSaveWorkDr(param){
  338. var orddeptcd = ds_main_workerinfo_workerinfolist.getColumn(0, "orddeptcd");
  339. var drid = "";
  340. var gbn = ds_cond.getColumn(0, "gbn");
  341. var duty = "";
  342. var confirmyn = "N";
  343. // if (gbn == "O") {
  344. // grd_temp = grd_workerlistOC;
  345. // } else {
  346. // grd_temp = grd_workerlistDN;
  347. // }
  348. grd_temp = group3.group1.grd_workerlistDN;
  349. sHeader = "gbn▦workdd▦duty▦drid▦orddeptcd▦confirmyn▩";
  350. sData = "";
  351. for(var i = 0; i < grd_temp.rowcount; i++) {
  352. // if (gbn == "O") {
  353. // duty = 'A';
  354. // drid = grd_temp.ValueMatrix(i, grd_temp.colRef("drid"));
  355. // } else {
  356. // duty = 'D';
  357. // drid = grd_temp.ValueMatrix(i, grd_temp.colRef("drid_d"));
  358. // }
  359. duty = 'D';
  360. drid = utlf_transNullToEmpty(ds_main_workerinfo_workerinfolist.getColumn(i, "drid_d"));
  361. if (utlf_isNull(drid)) {
  362. drid = '-';
  363. }
  364. if (param == "cnfm") {
  365. confirmyn = "Y";
  366. } else {
  367. confirmyn = utlf_transNullToEmpty(ds_main_workerinfo_workerinfolist.getColumn(i, "confirm_d"));
  368. }
  369. sData += utlf_transNullToEmpty(ds_main_workerinfo_workerinfolist.getColumn(i, "gbn")) + "▦"
  370. + utlf_transNullToEmpty(ds_main_workerinfo_workerinfolist.getColumn(i, "workdd")) + "▦"
  371. + duty + "▦"
  372. + drid + "▦"
  373. + utlf_transNullToEmpty(ds_main_workerinfo_workerinfolist.getColumn(i, "orddeptcd")) + "▦"
  374. + confirmyn + "▩" ;
  375. }
  376. confirmyn = "N";
  377. //if (gbn != "O") { // OnCall 스케줄일 때는 제외
  378. for(var i = 0; i < grd_temp.rowcount; i++) {
  379. duty = 'N';
  380. drid = utlf_transNullToEmpty(ds_main_workerinfo_workerinfolist.getColumn(i, "drid_n"));
  381. if (utlf_isNull(drid)) {
  382. drid = '-';
  383. }
  384. if (param == "cnfm") {
  385. confirmyn = "Y";
  386. } else {
  387. confirmyn = utlf_transNullToEmpty(ds_main_workerinfo_workerinfolist.getColumn(i, "confirm_n"));
  388. }
  389. sData += utlf_transNullToEmpty(ds_main_workerinfo_workerinfolist.getColumn(i, "gbn")) + "▦"
  390. + utlf_transNullToEmpty(ds_main_workerinfo_workerinfolist.getColumn(i, "workdd")) + "▦"
  391. + duty + "▦"
  392. + drid + "▦"
  393. + utlf_transNullToEmpty(ds_main_workerinfo_workerinfolist.getColumn(i, "orddeptcd"))+ "▦"
  394. + confirmyn + "▩" ;
  395. }
  396. //}
  397. dsf_setCSVToDs("ds_send_workerlist", sHeader + sData);
  398. var oParam = {};
  399. oParam.id = "TXMNE05401";
  400. oParam.service = "ercareapp.ERPatMngt";
  401. oParam.method = "reqExecErProfscheList";
  402. oParam.inds = "refCond=ds_send_workerlist saveinfo=ds_send";
  403. oParam.outds = "ds_main_workerinfo_workerinfolist=workerinfolist";
  404. oParam.async = false;
  405. oParam.callback = "cf_TXMNE05401";
  406. tranf_submit(oParam);
  407. if(arErrorCode.pop("TXMNE05401") > -1){
  408. //당직리스트색깔 초기화
  409. for(var i = 0; i < grd_temp.rowcount; i++){
  410. ds_main_workerinfo_workerinfolist.setColumn(i, "colColor1", "");
  411. ds_main_workerinfo_workerinfolist.setColumn(i, "colColor2", "");
  412. ds_main_workerinfo_workerinfolist.setColumn(i, "colColor3", "");
  413. ds_main_workerinfo_workerinfolist.setColumn(i, "colColor4", "");
  414. ds_main_workerinfo_workerinfolist.setColumn(i, "colColor5", "");
  415. ds_main_workerinfo_workerinfolist.setColumn(i, "colImage1", "");
  416. ds_main_workerinfo_workerinfolist.setColumn(i, "colImage2", "");
  417. ds_main_workerinfo_workerinfolist.setColumn(i, "colImage3", "");
  418. ds_main_workerinfo_workerinfolist.setColumn(i, "colImage4", "");
  419. ds_main_workerinfo_workerinfolist.setColumn(i, "colImage5", "");
  420. // grd_temp.cellstyle("background-color", i, 0, i, 6) = '#ffffff';
  421. // grd_temp.cellStyle("background-image", i, 0, i, 6) = '';
  422. }
  423. //fGetWorkScheduleList(orddeptcd);//당직자리스트를 조회한다
  424. group3.group4.btn_search.click();
  425. }
  426. }
  427. function cf_TXMNE05401(sSvcId, nErrorCode, sErrorMsg) {
  428. arErrorCode.push(sSvcId, nErrorCode);
  429. if( utlf_isNull(ds_main_workerinfo_workerinfolist.getColumnInfo("confirmyn")) ){
  430. ds_main_workerinfo_workerinfolist.addColumn("confirmyn", "string");
  431. }
  432. ds_main_workerinfo_workerinfolist.addColumn("colColor1", "string");
  433. ds_main_workerinfo_workerinfolist.addColumn("colColor2", "string");
  434. ds_main_workerinfo_workerinfolist.addColumn("colColor3", "string");
  435. ds_main_workerinfo_workerinfolist.addColumn("colColor4", "string");
  436. ds_main_workerinfo_workerinfolist.addColumn("colColor5", "string");
  437. ds_main_workerinfo_workerinfolist.addColumn("colImage1", "string");
  438. ds_main_workerinfo_workerinfolist.addColumn("colImage2", "string");
  439. ds_main_workerinfo_workerinfolist.addColumn("colImage3", "string");
  440. ds_main_workerinfo_workerinfolist.addColumn("colImage4", "string");
  441. ds_main_workerinfo_workerinfolist.addColumn("colImage5", "string");
  442. }
  443. function fDelWorkDr(workdd, orddeptcd, duty) {
  444. ds_send_deldata.setColumn(0, "workdd", workdd);
  445. ds_send_deldata.setColumn(0, "orddeptcd", orddeptcd);
  446. ds_send_deldata.setColumn(0, "gbn", ds_cond.getColumn(0, "gbn"));
  447. ds_send_deldata.setColumn(0, "duty", duty);
  448. var oParam = {};
  449. oParam.id = "TXMNE05402";
  450. oParam.service = "ercareapp.ERPatMngt";
  451. oParam.method = "reqDelErProfscheList";
  452. oParam.inds = "refCond=ds_send_deldata saveinfo=ds_send";
  453. oParam.outds = "ds_main_workerinfo_workerinfolist=workerinfolist";
  454. oParam.async = false;
  455. oParam.callback = "cf_TXMNE05402";
  456. tranf_submit(oParam);
  457. if(arErrorCode.pop("TXMNE05402") > -1){
  458. group3.group4.btn_search.click();
  459. }
  460. }
  461. function cf_TXMNE05402(sSvcId, nErrorCode, sErrorMsg) {
  462. arErrorCode.push(sSvcId, nErrorCode);
  463. if( utlf_isNull(ds_main_workerinfo_workerinfolist.getColumnInfo("confirmyn")) ){
  464. ds_main_workerinfo_workerinfolist.addColumn("confirmyn", "string");
  465. }
  466. ds_main_workerinfo_workerinfolist.addColumn("colColor1", "string");
  467. ds_main_workerinfo_workerinfolist.addColumn("colColor2", "string");
  468. ds_main_workerinfo_workerinfolist.addColumn("colColor3", "string");
  469. ds_main_workerinfo_workerinfolist.addColumn("colColor4", "string");
  470. ds_main_workerinfo_workerinfolist.addColumn("colColor5", "string");
  471. ds_main_workerinfo_workerinfolist.addColumn("colImage1", "string");
  472. ds_main_workerinfo_workerinfolist.addColumn("colImage2", "string");
  473. ds_main_workerinfo_workerinfolist.addColumn("colImage3", "string");
  474. ds_main_workerinfo_workerinfolist.addColumn("colImage4", "string");
  475. ds_main_workerinfo_workerinfolist.addColumn("colImage5", "string");
  476. }
  477. function fCheckValid(selDD, selGbn, selPlc, sColNm, drid) {
  478. // 시작/종료일시 기준자료 조회
  479. ds_send_basicinfo.setColumn(0, "workdd", selDD);
  480. ds_send_basicinfo.setColumn(0, "hugbn", 'N');
  481. ds_send_basicinfo.setColumn(0, "cdgrupid", 'P16');
  482. if (sColNm == "drnm_d") {
  483. ds_send_basicinfo.setColumn(0, "duty", 'D');
  484. } else {
  485. ds_send_basicinfo.setColumn(0, "duty", 'N');
  486. }
  487. var oParam = {};
  488. oParam.id = "TRMNE05404";
  489. oParam.service = "ercareapp.ERPatMngt";
  490. oParam.method = "reqGetDrScheErTimeByDate";
  491. oParam.inds = "req=ds_send_basicinfo";
  492. oParam.outds = "ds_init_basicinfo=basicinfo";
  493. oParam.async = false;
  494. //oParam.callback = "cf_TRMNE05404";
  495. tranf_submit(oParam);
  496. var fromtm = ds_init_basicinfo.getColumn(0, "stime");
  497. var totm = ds_init_basicinfo.getColumn(0, "etime");
  498. // 휴진내역이 있는지 점검
  499. var selDuty = sColNm.substr(5, 1).toUpperCase();
  500. var fromdt, todt;
  501. ds_send_validinfo.setColumn(0, "workdd", selDD);
  502. ds_send_validinfo.setColumn(0, "gbn", selGbn);
  503. ds_send_validinfo.setColumn(0, "placecd", selPlc);
  504. ds_send_validinfo.setColumn(0, "duty", selDuty);
  505. ds_send_validinfo.setColumn(0, "drid", drid);
  506. ds_send_validinfo.setColumn(0, "fromtm", fromtm);
  507. ds_send_validinfo.setColumn(0, "totm", totm);
  508. var oParam = {};
  509. oParam.id = "TRMNE09002";
  510. oParam.service = "ercareapp.ERPatMngt";
  511. oParam.method = "reqGetDrScheValidInfo";
  512. oParam.inds = "req=ds_send_validinfo";
  513. oParam.outds = "ds_temp_validinfo=validinfo";
  514. oParam.async = false;
  515. //oParam.callback = "cf_TRMNE09002";
  516. tranf_submit(oParam);
  517. var sValidYn = ds_temp_validinfo.getColumn(0, "validyn");
  518. var sScheYn = ds_temp_validinfo.getColumn(0, "scheyn");
  519. var sHoliYn = ds_temp_validinfo.getColumn(0, "holiyn");
  520. if (sValidYn == "N") {
  521. if (sScheYn == "Y" && sHoliYn == "N") {
  522. sysf_messageBox("같은 일자에 등록된 당직 정보가 있습니다.", "E999");
  523. }
  524. if (sScheYn == "N" && sHoliYn == "Y") {
  525. sysf_messageBox("해당 일자에 등록된 휴진 정보가 있습니다.", "E999");
  526. }
  527. if (sScheYn == "Y" && sHoliYn == "Y") {
  528. sysf_messageBox("같은 일자에 등록된 당직정보와 해당 일자에 등록된 휴진 정보가 있습니다.", "E999");
  529. }
  530. return false;
  531. }
  532. return true;
  533. }
  534. /**
  535. * @group :
  536. * @ver : 2016.08.30
  537. * @by : 엄영만
  538. * @---------------------------------------------------
  539. * @type : function
  540. * @access : public
  541. * @desc : 근무정보 설정
  542. * @param : sActGubun 처리구분(I:입력, D:삭제)
  543. * @param : sGbn 당직구분(M0762)
  544. * @param : sWorkDd 근무일자
  545. * @param : sDuty 근무타입(D:주간, N:야간)
  546. * @param : sDeptcd 근무의사 부서
  547. * @param : sDrid 근무의사 사번
  548. * @return :
  549. * @---------------------------------------------------
  550. */
  551. function fSetWorkInfo(sActGubun, sGbn, sWorkDd, sDuty, sOrdDeptcd, sDrid, sConfirmYn) {
  552. ds_send.setColumn(0, "actgubun", sActGubun);
  553. ds_send.setColumn(0, "gbn", sGbn);
  554. ds_send.setColumn(0, "workdd", sWorkDd);
  555. ds_send.setColumn(0, "duty", sDuty);
  556. ds_send.setColumn(0, "orddeptcd", sOrdDeptcd);
  557. ds_send.setColumn(0, "drid", sDrid);
  558. ds_send.setColumn(0, "fromtm", sWorkDd);
  559. ds_send.setColumn(0, "totm", sWorkDd);
  560. ds_send.setColumn(0, "confirmyn", sConfirmYn);
  561. var oParam = {};
  562. oParam.id = "TXMNE05401";
  563. oParam.service = "ercareapp.ERPatMngt";
  564. oParam.method = "reqExecTrProfscheList";
  565. oParam.inds = "req=ds_send";
  566. oParam.outds = "ds_main_workerinfo_workerinfolist=out";
  567. oParam.async = false;
  568. oParam.callback = "cf_TXMNE05401";
  569. tranf_submit(oParam);
  570. if( arErrorCode.pop("TXMNE05401") > -1 ){
  571. fGetWorkScheduleList(sOrdDeptcd, "save");
  572. } else {
  573. sysf_messageBox("당직의 저장에 실패 하였습니다..", "E999");
  574. }
  575. }
  576. function cf_TXMNE05401(sSvcId, nErrorCode, sErrorMsg) {
  577. arErrorCode.push(sSvcId, nErrorCode);
  578. }
  579. ]]></Script>