123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723 |
- <?xml version="1.0" encoding="utf-8"?>
- <Script type="xscript4.0"><![CDATA[/***************************************************************************************
- * System Name : KNUH2.0
- * Job Name : EMR
- * Creator :
- * Make Date : 2015-01-25
- * Description :
- *---------------------------------------------------------------------------------------
- * Modify Date Modifier Modify Description
- *---------------------------------------------------------------------------------------
- * 2015-01-25 Live Converter TF->XP
- *
- *---------------------------------------------------------------------------------------
- ****************************************************************************************/
- //당직스케줄 그리드의 수정상태값
- var isEdited = "N";
- var orddept = null;
- //당직기준시간
- var scheftm = "0830";//0900
- var schettm = "0829";//0859
- // 이전 진료과 코드
- var preOrddeptcd = null;
- var arErrorCode = new HashArray();
- //=======================================================================================
- // Function
- //---------------------------------------------------------------------------------------
- /****************************************************************************************
- * Function : fInit
- * Description : 화면초기화
- * Argument :
- * return type :
- * Creator :
- ****************************************************************************************/
- function fInit(chngMonth){
- //당직스케줄 기준시간관리 기관별로 관리
- var pCode = "'175'"; // 조회할 CdGrupID 코드정보
- var pDate = utlf_getCurrentDate(); // 조회기준일자
- fGetNursHardCdInfo(pCode, pDate); // CareCom.xjs
- var cdnm = ds_codelist.getColumn(ds_codelist.findRowExpr("cdgrupid == '175' && cdid == '"+sysf_getUserInfo("dutplceinstcd")+"'"),"cdnm");
- if(!utlf_isNull(cdnm) && cdnm.split("|").length > 0){
- scheftm = cdnm.split("|")[0]; //당직시작시간
- schettm = cdnm.split("|")[1]; //당직종료시간
- }
-
- var curdd = "";
- if (utlf_isNull(chngMonth)) {
- curdd = utlf_getCurrentDate();
- } else {
- curdd = ds_cond.getColumn(0,"srchdd");
- }
-
- //타이틀 헤더세팅
- cpt_worktitle.text = curdd.substr(0, 4) + "년 " + curdd.substr(4, 2) + "월 당직리스트";
-
- dsf_createDs("ds_send");
- dsf_makeValue(ds_send,"srchdd","string", curdd);
- dsf_makeValue(ds_send,"srchym","string", curdd.substr(0, 6));
- //진료과 불러오기
- var instcd = sysf_getUserInfo("dutplceinstcd");
- var standard_yn = "orduseyn";
- var ord_deptflag = "D";
- var rslt_ref = "ds_init_deptlist";
- var sort_field = "depthngnm";
- var sort_method = "asc";
- appf_getDeptCodeList(instcd,"orduseyn","D","depthngnm","","","","","ds_init_deptlist",true,"");
- //조회조건 초기화
- ds_main_titleinfo.clear();
- ds_init_deptpartinfo_partlist.clear();
- ds_cond.clear();
- dsf_makeValue(ds_cond,"srchdd", "string", curdd);
- dsf_makeValue(ds_cond,"srchym", "string", curdd.substr(0, 6));
- dsf_makeValue(ds_cond,"orddeptcd", "string", sysf_getUserInfo("dutplcecd"));
- dsf_makeValue(ds_cond,"deptpartinfo","string", "");
-
- ds_temp.clear();
- dsf_makeValue(ds_temp,"orddeptcd","string","");
-
- var orddeptcd = ds_cond.getColumn(0,"orddeptcd");
-
- //선택된 진료과의 의사리스트조회
- fGetDrInfo(orddeptcd);
-
- //기준시간 셋팅
- dsf_makeValue(ds_main_titleinfo,"fromtm","string",scheftm);
- dsf_makeValue(ds_main_titleinfo,"totm", "string",schettm);
- // op_fromtm.value = scheftm;
- // op_totm.value = schettm;
- }
- /****************************************************************************************
- * Function : fGetDrInfo
- * Description : 선택된 진료과의 의사리스트조회
- * Argument : orddeptcd : 진료과코드
- * return type :
- * Creator :
- ****************************************************************************************/
- function fGetDrInfo(orddeptcd){
- if(utlf_isNull(orddeptcd)){
- orddeptcd = ds_cond.getColumn(0,"orddeptcd");
- }
-
- // 진료과 정보가 변경 되었는지 체크. start
- // 2010.04.01
- // 김광성- kskim
- var preorddeptcd = ds_temp.getColumn(0,"orddeptcd");
-
- if( utlf_isNull(preorddeptcd) || preorddeptcd != orddeptcd ) {
- ds_cond.setColumn(0,"deptpartinfo",""); // 진료과 정보가 바뀌었기 때문에 파트정보 초기화
- ds_temp.setColumn(0,"orddeptcd",orddeptcd);
- }
- // 진료과 정보가 변경 되었는지 체크. end
- ds_send.clear();
- dsf_makeValue(ds_send,"orddeptcd","string", orddeptcd);
- dsf_makeValue(ds_send,"srchdd", "string", ds_cond.getColumn(0,"srchdd"));
-
- var oParam = {};
- oParam.id = "TRMMO30001";
- oParam.service = "prcpmngtapp.ErMngt";
- oParam.method = "reqGetDrInfo";
- oParam.inds = "searchinfo=ds_send";
- oParam.outds = "ds_main_drinfolist=drinfolist";
- oParam.async = false;
- oParam.callback = "cf_TRMMO30001";
- tranf_submit(oParam);
-
- if(arErrorCode.pop("TRMMO30001") < 0){
- sysf_messageBox("진료과별 당직대상자 조회를 실패하였습니다.", "E999");
- return false;
- }
- }
- /****************************************************************************************
- * Function : cf_TRMMO30001
- * Description : TRMMO30001 콜백함수
- * Argument :
- * return type :
- * Creator :
- ****************************************************************************************/
- function cf_TRMMO30001(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- /** carecom.xjs 파일 내에 있음. 추후 이동예정
- * @group :
- * @ver : 2009.03.20, 2009.04.15
- * @by : 성미연 , 김진아
- * @---------------------------------------------------
- * @type : function
- * @access : public
- * @desc : 간호 하드코딩 정보조회
- * @param : pCode : 조회할 CdGrupID 코드정보, 여러개 조회할 경우 ,(콤마)로 구분한다.
- 예) "001", "002", "003"
- pDate : 조회기준일자(형식:YYYYMMDD)
- * @return :
- * @---------------------------------------------------
- */
- function fGetNursHardCdInfo(pCode, pDate){
- dsf_createDs("ds_codelist");
- dsf_createDs("ds_send");
- dsf_makeValue(ds_send,"cdgrupid","string",pCode); // 조회할 CdGrupID 코드정보
- dsf_makeValue(ds_send,"srchdd", "string",pDate); // 조회기준일자
- // submit("TRMNW00001",false); // wardcareweb
- var oParam = {};
- oParam.id = "TRMNW00001";
- oParam.service = "wardcareapp.WardCareMngt";
- oParam.method = "reqGetNursHardCdInfo";
- oParam.inds = "req=ds_send";
- oParam.outds = "ds_codelist=codelist";
- oParam.async = false;
- oParam.callback = "";
- tranf_submit(oParam);
- }
- /****************************************************************************************
- * Function : isScheduleRefresh
- * Description : 그리드가 변경상태인지 조회한다.
- * Argument : isClose : 실행후 창을 닫을지 여부(true/false)
- * return type :
- * Creator :
- ****************************************************************************************/
- function isScheduleRefresh(isClose){
- var drStr;
-
- for(var i = 0; i < ds_main_workerinfolist.rowcount; i++){
-
- if(i < ds_orgscheinfo_workerinfolist.rowcount) {
- if(dsf_compareDsRow(ds_main_workerinfolist,ds_orgscheinfo_workerinfolist,i)) {
- isEdited = "Y";
- /* drStr += model.getValue("/root/main/workerinfo/workerinfolist[" + i + "]/workdd") + "일자 변경";*/
- drStr += ds_main_workerinfolist.getColumn(i,"workdd")+"일자 변경";
- break;
- }
- }
- }
-
- if(isEdited == "Y"){
- //20090703 dhkim 창을 닫을때와 새로 조회할때의 메세지를 다르게 구성 Q003(계속진행하시겠습니까?)
- if(isClose){
- var saveYn = sysf_messageBox("수정하신 스케줄을 저장하지 않고 창을 닫으시겠습니까?", "Q");//Q: 6:예, 7:아니오.
- }else{
- var saveYn = sysf_messageBox("수정하신 스케줄을 저장하지 않고 새로운 내역을", "Q005");//Q005:조회하시겠습니까? 6:예, 7:아니오.
- }
- if(saveYn == 6){
- return "Y";
- }else{
- return "N";
- }
- }
- }
- /****************************************************************************************
- * Function : dsf_compareDsRow
- * Description : 같은 데이터셋의 로우를 비교하여 데이터까지 같은지 확인
- * Argument : objDsSrc : 원본데이터셋
- * : objDsTrgt : 대상데이터셋
- * : nRowSrc : 원본 로우
- * : nRowTrg : 대상 로우
- * return type :
- * Creator :
- ****************************************************************************************/
- function dsf_compareDsRow(objDsSrc,objDsTrgt,nRowSrc,nRowTrg) {
- // MMOCommon.xjs : lf_compareNodeVal 참조 컬럼정보 다르면 true
- if(lf_compareNodeVal(objDsTrgt,objDsSrc)) return true;
- if(utlf_isNull(nRowSrc)) {
- var num1 = 0;
- var num2 = 0;
- } else if(utlf_isNull(nRowTrg)) {
- var num1 = nRowSrc;
- var num2 = nRowSrc;
- } else {
- var num1 = nRowSrc;
- var num2 = nRowTrg;
- }
- // 컬럼 비교해서 값이 다르면 ture
- for(var i = 0 ; i < objDsSrc.colcount; i++) {
- if(objDsSrc.getColumn(num1,i) != objDsTrgt.getColumn(num2,i)) return true;
- }
- // 다 같으면 false
- return false;
- }
- /****************************************************************************************
- * Function : fGetDeptDetlFlag
- * Description : 진료과별 파트정보 조회
- * Argument :
- * return type :
- * Creator :
- ****************************************************************************************/
- function fGetDeptDetlFlag() {
- // var ref = "/root/cond";
- // var rstRef = "/root/init/deptpartinfo";
- //var orddeptcd = model.getValue("/root/cond/orddeptcd");
- var deptpartinfo = ds_cond.getColumn(0,"deptpartinfo");
- var srchym = ds_cond.getColumn(0,"srchym");
- var srchymfirstday = srchym.concat("01");
- var srchymlastday = srchym.concat(fGetLastDay(srchym));
- dsf_makeValue(ds_cond,"srchymfirstday","string",srchymfirstday);
- dsf_makeValue(ds_cond,"srchymlastday", "string",srchymlastday);
-
- var oParam = {};
- oParam.id = "TRMMO30002";
- oParam.service = "prcpmngtapp.ErMngt";
- oParam.method = "reqGetDeptDetlInfo";
- oParam.inds = "req=ds_cond";
- oParam.outds = "ds_init_deptpartinfo_partlist=partlist";
- oParam.async = false;
- oParam.callback = "cf_TRMMO30002";
- tranf_submit(oParam);
-
- if(arErrorCode.pop("TRMMO30002") < 0){
- sysf_messageBox("진료과별 파트정보 조회를 실패하였습니다.", "E999");
- return false;
- }
- // var nodeList = instance1.selectNodes("/root/init/deptpartinfo/partlist");
- if( ds_init_deptpartinfo_partlist.rowcount < 0 ){
- //alert( nodeList.length + " nodeList.length ");
- // model.removenode("/root/send/deptpartinfo");
- ds_send.setColumn(0,"deptpartinfo","");
- }
- dsf_makeValue(ds_cond,"deptpartinfo","string",deptpartinfo);
- }
- /****************************************************************************************
- * Function : cf_TRMMO30002
- * Description : TRMMO30002 콜백함수
- * Argument :
- * return type :
- * Creator :
- ****************************************************************************************/
- function cf_TRMMO30002(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- /****************************************************************************************
- * Function : fGetLastDay
- * Description : 해당월의 마지막날 리턴
- * Argument : mm : 월 데이터
- * return type :
- * Creator :
- ****************************************************************************************/
- function fGetLastDay(mm){
- var dd = 31;
-
- switch(mm){
- case 4:
- case 6:
- case 9:
- case 11:
- dd = 30;
- break;
- case 2:
- if( (yyyy%4)==0 || (yyyy%100)==0){
- dd=29;
- } else {
- dd=28;
- }
- break;
- }
- return dd;
- }
- /****************************************************************************************
- * Function : fChkSelDeptDetlFlag
- * Description : 부서 파트 정보가 있는지 체크
- * Argument :
- * return type :
- * Creator :
- ****************************************************************************************/
- function fChkSelDeptDetlFlag(){
- //var selDeptDetlFlag = model.getValue("/root/cond/deptpartinfo");
- if ( fChkDeptDetlFlag() ) {
- group4.cmb_partinfo.index = 0;
- group4.cmb_partinfo.enable = true;
- } else if( ds_init_deptpartinfo_partlist.rowcount > 0 ) {
- group4.cmb_partinfo.enable = true;
- } else {
- group4.cmb_partinfo.enable = false;
- ds_cond.setColumn(0,"deptpartinfo","");
- }
- }
- /****************************************************************************************
- * Function : fChkDeptDetlFlag
- * Description : 부서 파트 정보가 있는지 체크
- * : 부서 파트 정보가 있는데 파트 정보를 입력하지 않았을 경우 true리턴
- * Argument :
- * return type :
- * Creator :
- ****************************************************************************************/
- // 부서 파트 정보가 있는지 체크
- // 부서 파트 정보가 있는데 파트 정보를 입력하지 않았을 경우 true리턴
- function fChkDeptDetlFlag(){
- var deptdetlflag = ds_cond.getColumn(0,"deptpartinfo");
- var orddeptnm = ds_cond.getColumn(0,"orddeptcd");
- if( ds_init_deptpartinfo_partlist.rowcount > 0 && utlf_isNull(deptdetlflag) ){
- return true;
- }
- return false;
- }
- /****************************************************************************************
- * Function : fGetWorkScheduleList
- * Description : 당직대상자리스트를 조회한다
- * Argument : srchym : 조회년월
- * : grtype :
- * : orddeptcd : 진료과
- * : staffid : 의사ID
- * : deptpartinfo : 파트정보
- * return type :
- * Creator :
- ****************************************************************************************/
- function fGetWorkScheduleList(srchym, grtype, orddeptcd, staffid, deptpartinfo){
- // 당직대상자리스트를 가져오기전에 파트정보가 있는지 여부를 사전 조회
- // 파트정보가 있을 경우 파트를 선택해야지 당직대상자리스트 조회 가능히도록 설정
- // kskim
- // 2010.04.03
- fChkDeptDetlFlag() ;
- //저장하기전 다른 row를 선택했을때 blocking 하기위해 중증분류의 row값을 임시저장해둠
- //curRow = grd_grpmaster.row;
- orddept = group4.cmb_orddeptcd.value;
- if(utlf_isNull(srchym)){
- srchym = ds_cond.getColumn(0,"srchym");
- }
- if(utlf_isNull(grtype)){
- grtype = "C";
- }
- if(utlf_isNull(orddeptcd)){
- orddeptcd = ds_cond.getColumn(0,"orddeptcd");
- }
- if(utlf_isNull(staffid)){
- staffid = "-";
- }
-
- ds_send.clear();
- dsf_makeValue(ds_send,"srchym", "string", srchym);
- dsf_makeValue(ds_send,"orddeptcd", "string", orddeptcd);
- dsf_makeValue(ds_send,"grtype", "string", grtype);
- dsf_makeValue(ds_send,"staffid", "string", staffid);
- dsf_makeValue(ds_send,"fromtm", "string", scheftm);
- dsf_makeValue(ds_send,"totm", "string", schettm);
- dsf_makeValue(ds_send,"monthcnt", "string", utlf_getDayCountForMonth(srchym.substr(0, 4), srchym.substr(4, 6)));//조회년월의 마지막일
- dsf_makeValue(ds_send,"deptpartinfo","string", deptpartinfo);
-
- var oParam = {};
- oParam.id = "TRMNE05105";
- oParam.service = "ercareapp.ERSmsCallMngt";
- oParam.method = "reqGetWorkerScheduleList";
- oParam.inds = "searchinfo=ds_send";
- oParam.outds = "ds_main_workerinfolist=workerinfolist";
- oParam.async = false;
- oParam.callback = "cf_TRMNE05105";
- tranf_submit(oParam);
- if(arErrorCode.pop("TRMNE05105") >= 0){
- //글로벌변수 초기화
- isEdited = "N";
- //curRow = 0;
- orddept = null;
-
- //당직대상자의 선택제거
- ds_main_drinfolist.rowposition = -1;
- //당직리스트의 선택제거
- ds_main_workerinfolist.rowposition = -1;
- //상세정보 초기화
- fSetDrInfo();
- // //당직리스트색깔 초기화
- // for(var i = 0; i <= 6 ; i++){
- // grd_workerlist.setCellProperty("body",i,"background","#ffffff");
- // //grd_workerlist.setCellProperty("body",i,"background2","#ffffff");
- // }
-
- //당직스케줄 변경여부 조회를 위해 임시노드에 copy 해둔다.
- // model.removenode("/root/orgscheinfo");
- // model.makenode("/root/orgscheinfo/workinfo");
- // model.copyNode("/root/orgscheinfo/workinfo", "/root/main/workerinfo");
- ds_orgscheinfo_workerinfolist.clear();
- ds_orgscheinfo_workerinfolist.copyData(ds_main_workerinfolist);
- }
- }
- /****************************************************************************************
- * Function : cf_TRMNE05105
- * Description : TRMNE05105 콜백함수
- * Argument :
- * return type :
- * Creator :
- ****************************************************************************************/
- function cf_TRMNE05105(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- /****************************************************************************************
- * Function : fSetDrInfo
- * Description : 의사명 선택시 상세정보를 조회후 세팅한다
- * Argument : clickflag : 클릭구분
- * : drid : 의사ID
- * return type :
- * Creator :
- ****************************************************************************************/
- function fSetDrInfo(clickflag, drid){
- ds_main_drdetlinfo.clear();
-
- if(clickflag == "worklist") {
- //당직자리스트에서 의사 선택한경우 의사아이디로 상세정보를 조회해온다.
- ds_send.clear();
- dsf_makeValue(ds_send,"drid","string",drid);
-
- var oParam = {};
- oParam.id = "TRMNE05104";
- oParam.service = "ercareapp.ERSmsCallMngt";
- oParam.method = "reqGetDrInfo";
- oParam.inds = "searchinfo=ds_send";
- oParam.outds = "ds_main_drdetlinfo=drdetlinfo";
- oParam.async = false;
- oParam.callback = "";
- tranf_submit(oParam);
- }else{
- //당직대상자에서 의사 선택한 경우 그리드정보에서 상세정보를 세팅한다.
- dsf_makeValue(ds_main_drdetlinfo,"drid", "string", drid); //사번
- dsf_makeValue(ds_main_drdetlinfo,"drnm", "string", ds_main_drinfolist.getColumn(ds_main_drinfolist.findRow("drid",drid),"drnm")); //의사명
- dsf_makeValue(ds_main_drdetlinfo,"phone","string", ds_main_drinfolist.getColumn(ds_main_drinfolist.findRow("drid",drid),"phone")); //핸드폰
- dsf_makeValue(ds_main_drdetlinfo,"bbtel","string", ds_main_drinfolist.getColumn(ds_main_drinfolist.findRow("drid",drid),"bbtel")); //비퍼
- }
- }
- /****************************************************************************************
- * Function : fClkArrowBtn
- * Description : 당직년월 화살표 클릭시 날자변경
- * Argument : objName : 버튼명
- * return type :
- * Creator :
- ****************************************************************************************/
- function fClkArrowBtn(objName){
- var srchdd = ds_cond.getColumn(0,"srchdd");
- var sNewdd = "";
-
- if(objName == "btn_bfyear") {
- sNewdd = srchdd.toDate("YYYYMMDD").getAddDate(-1, "Y").getDateFormat();
- } else if(objName == "btn_bfmonth") {
- sNewdd = srchdd.toDate("YYYYMMDD").getAddDate(-1, "M").getDateFormat();
- } else if(objName == "btn_afmonth") {
- sNewdd = srchdd.toDate("YYYYMMDD").getAddDate(1, "M").getDateFormat();
- } else if(objName == "btn_afyear"){
- sNewdd = srchdd.toDate("YYYYMMDD").getAddDate(1, "Y").getDateFormat();
- }
-
- if (!utlf_isNull(sNewdd)) {
- ds_cond.setColumn(0,"srchdd", sNewdd);
- ds_cond.setColumn(0,"srchym", sNewdd.substr(0, 6));
- }
- }
- //당직대상자 마우스 오른쪽메뉴 mouse down
- function fMouseDownGridRow(obj:PopupMenu, e:MenuClickEventInfo) {
- if(e.id == "A") fAddWorkDr();
- else fRefreshWorkDr();
- }
- //오른쪽마우스 메뉴중 추가 선택시 호출
- function fAddWorkDr(){
- //tf오른쪽메뉴에 parameter지정을 할 수 없어서 만들었음
- fSetWorkDr("ADD");
- }
- //수정한 내역을 새로고침한다
- function fRefreshWorkDr(){
- var btnRst = sysf_messageBox("새로고침하시면 저장하지 않은 내역은 모두 초기화됩니다.\r\n"+ "새로고침을", "Q004");
- if(btnRst == 6){//예
- //grd_workerlist.rebuildStyle();
- var curRow = ds_main_drinfolist.rowposition;
- var srchym = ds_cond.getColumn(0,"srchym");
- var grtype = ds_main_grpmasterinfolist.getColumn(ds_main_grpmasterinfolist.rowposition,"grtype");
- var orddeptcd = ds_main_grpmasterinfolist.getColumn(ds_main_grpmasterinfolist.rowposition,"orddeptcd");
- var staffid = ds_main_grpmasterinfolist.getColumn(ds_main_grpmasterinfolist.rowposition,"staffid");
- var deptpartinfo = ds_cond.getColumn(0,"deptpartinfo");
- fGetWorkScheduleList(srchym, grtype, orddeptcd, staffid, deptpartinfo);
- }
- }
- //setFlag : ADD 당직자리스트그리드의 선택된 모든셀에 의사를 세팅한다.
- //setFlag : DEL 당직자리스트그리드의 선택된 모든셀에 의사를 지워준다.
- function fSetWorkDr(setFlag){
- //선택된 당직대상자정보(id, nm)
- var drid = ds_main_drinfolist.getColumn(ds_main_drinfolist.rowposition,"drid");
- var drnm = ds_main_drinfolist.getColumn(ds_main_drinfolist.rowposition,"drnm");
- var saveyn = ds_main_drinfolist.getColumn(ds_main_drinfolist.rowposition,"saveyn");
- var deptcd = ds_cond.getColumn(0,"orddeptcd");
- var phone = ds_main_drinfolist.getColumn(ds_main_drinfolist.rowposition,"phone");
- var bbtel = ds_main_drinfolist.getColumn(ds_main_drinfolist.rowposition,"bbtel");
- var mespclyn = ds_main_drinfolist.getColumn(ds_main_drinfolist.rowposition,"mespclyn");
-
- //의사추가의경우
- if(setFlag == "ADD"){
- //선택된 당직대상자정보가 없으면 세팅하지않고 바로 리턴
- if(utlf_isNull(drid)){
- return false;
- }
-
- //응급호출의사정보마스터에 등록되어있지 않은 의사를 선택한 경우 등록화면을 호출
- if(phone == "-" || phone == "0"){
-
- var btnChk = sysf_messageBox("「"+drnm+"」님은 근무자관리에 연락처가 등록되어 있지 않습니다.\r\n"+ "근무자 연락처 등록을", "Q004");
- if(btnChk == 6){//예
- frmf_setParameter("drid", drid);
- frmf_setParameter("drnm", drnm);
- frmf_setParameter("deptcd", deptcd);
- frmf_setParameter("phone", phone);
- frmf_setParameter("bbtel", bbtel);
- //sysf_trace(drid+"/"+drnm+"/"+deptcd+"/"+phone+"/"+bbtel);
- //modal("SMMNE05000", "", "500", "500", "SMMNE05000", "", "");
- frmf_modal("SMMNE05000", "SMMNE05000", "", "", "", 500, 500, "", "", "", "", "", "M");
-
- var saveyn = frmf_getParameter("saveyn");
- if(saveyn == "Y" || saveyn == "D"){//Y:저장, D : 삭제
- //당직대상자 재조회 후 포커스 원래상태로
- var curRow = ds_main_drinfolist.rowposition;
- fGetDrInfo();
- ds_main_drinfolist.rowposition = curRow;
- }
- }
- return false;
- }
- }
-
- //현재날짜+시간(yyyymmddhhss)
- var currentDD = utlf_getCurrentDateTime().replace(" ", "").substr(0, 12);
- var errYn = "N"; //과거일자 선택여부
- //var cells = grd_workerlist.selectedCells; //선택된 쎌의 배열
- var selstrtrows = grd_workerlist.selectstartrow;
- var selstrtcols = grd_workerlist.selectstartcol;
- var selendrows = grd_workerlist.selectendrow;
- var selendcols = grd_workerlist.selectendcol;
- var sRow, sCol, sColNm; //선택된 쎌의 row, col 값, 선택된 col의 필드명
- var selectedDD; //선택된일자
- for(var i = 0; i < selstrtrows.length; i++){ //선택된 영역의 수
- for(var sRow = selstrtrows[i]; sRow <= selendrows[i]; sRow++) { //선택된 영역별 로우수
- for(var sCol = selstrtcols[i]; sCol <= selendcols[i]; sCol++) { //선택된 영역별 컬럼수
- sColNm = lf_getBindCellName(grd_workerlist,sCol);
- selectedDD = ds_main_workerinfolist.getColumn(sRow,"todd");
-
- //현재일자보다 이전일자의 스케줄을 변경하지 못하게 blocking한다.
- if(selectedDD < currentDD){
- errYn = "Y";
- }else{
- //의사추가의경우
- if(setFlag == "ADD"){
- //선택된 쎌에 의사이름 쎄팅
- if (sCol == grd_workerlist.getBindCellIndex("body","drnm4") && mespclyn == "N") { // 스탭이 아니면 return;
- sysf_messageBox("스탭행은 스탭만 등록가능합니다.", "I");
- return;
- }
- //model.setValue("/root/main/workerinfo/workerinfolist["+ sRow + "]/" + sColNm, drnm);
- ds_main_workerinfolist.setColumn(sRow,sColNm,drnm);
- //model.setValue("/root/main/workerinfo/workerinfolist["+ sRow + "]/drid" + sColNm.substr(4), drid);
- ds_main_workerinfolist.setColumn(sRow,"drid"+sColNm.substr(4),drid);
- dsf_makeValue(ds_main_workerinfolist,"selyn"+sColNm.substr(4),"string","Y",sRow);
- //선택된 쎌 색상 변경
- //grd_workerlist.cellStyle("background-color", sRow, sCol) = "#F4A6EE";
- //지우개 이미지 삭제
- //grd_workerlist.cellStyle("background-image", sRow, sCol) = "";
- }
- }
- }
- }
- }
-
- //과거일자만 빼고 나머지 일자는 변경가능하도록 한다
- if(errYn == "Y"){
- sysf_messageBox("과거일자의 스케줄은 변경하실 수 없습니다.", "E999");
- return false;
- }
- }
- //세팅한 내역을 저장한다
- function fSaveWorkDr(){
- //오늘날짜 이후의 당직 리스트가 비어있는 경우 메시지를 띄워준다.
- var curdate = utlf_getCurrentDate().substr(0, 8);
- var emptycell = null;
-
- // 일단위로 등록을 검사하는 부분. 시작
- var cntDr = 0;
- for(var grdIdx = 0; grdIdx < ds_main_workerinfolist.rowcount; grdIdx++){
- cntDr = 0;
- for(var drIdx = 1; drIdx < 5; drIdx++){
- var drnm = null;
- drnm = ds_main_workerinfolist.getColumn(grdIdx,"drnm" + drIdx);
- if(!utlf_isNull(drnm)) {
- cntDr++;
- }
- }
- }
- // 일단위로 등록을 검사하는 부분. 끝
- var grtype = "C";
- var orddeptcd = ds_cond.getColumn(0,"orddeptcd");
- var staffid = "-";
- var srchym = ds_cond.getColumn(0,"srchym");
- var deptpartinfo = ds_cond.getColumn(0,"deptpartinfo");
-
- dsf_createDs("ds_send_workerinfolist");
- ds_send_workerinfolist.copyData(grdf_getGridUpdateData(grd_workerlist,"all"));
- ds_send.clear();
- //dsf_makeValue(ds_send,"workerlist","string",grd_workerlist.getupdatedataAll("i"));
- dsf_makeValue(ds_send,"grtype", "string",grtype);
- dsf_makeValue(ds_send,"orddeptcd", "string",orddeptcd);
- dsf_makeValue(ds_send,"staffid", "string",staffid);
- dsf_makeValue(ds_send,"srchym", "string",srchym);
- dsf_makeValue(ds_send,"deptpartinfo","string",deptpartinfo);
- dsf_setDefaultVal(ds_send, "deptpartinfo:1");
-
- var oParam = {};
- oParam.id = "TXMNE05101";
- oParam.service = "ercareapp.ERSmsCallMngt";
- oParam.method = "reqExecWorkerScheduleList";
- oParam.inds = "refCond=ds_send_workerinfolist saveinfo=ds_send";
- oParam.outds = "ds_main_workerinfolist=workerinfolist";
- oParam.async = false;
- oParam.callback = "cf_TXMNE05101";
- tranf_submit(oParam);
-
- if(arErrorCode.pop("TXMNE05101") >= 0){
- //당직리스트색깔 초기화
- // for(var i = 1; i <= grd_workerlist.rows; i++){
- // grd_workerlist.cellstyle("background-color", i, 0, i, 6) = "#ffffff";
- // grd_workerlist.cellStyle("background-image", i, 0, i, 6) = "";
- // }
- var srchym = ds_cond.getColumn(0,"srchym");
- var grtype = "C"
- var orddeptcd = ds_cond.getColumn(0,"orddeptcd");
- var staffid = "-";
- var deptpartinfo = ds_cond.getColumn(0,"deptpartinfo");
- fGetWorkScheduleList(srchym, grtype, orddeptcd, staffid, deptpartinfo); //당직자리스트를 조회한다
- }
-
- dsf_deleteDs("ds_send_workerinfolist");
- }
- function cf_TXMNE05101(sSvcId, nErrorCode, sErrorMsg) {
- arErrorCode.push(sSvcId, nErrorCode);
- }
- ]]></Script>
|