123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305 |
- /*
- - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
- MR폴더 순서변경 ( SPMMD08300_MR폴더순서변경.xrw - JScript )
- - ▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩▩
- */
- var g_prevmouserow = 0;
- var itemRef = "/root/main/indxlist/itemlist/item";
- var folerImg = "../../../com/commonweb/images/icon_folder_close.gif";
- var fileImg = "../../../com/commonweb/images/icon_list.gif";
- /**
- * @desc : MR폴더순서변경 초기화
- * @
- * @param :
- * @return :
- * @author : 허권주 2010. 07. 01
- * @---------------------------------------------------
- */
- function fInitialize_SPMMD08300(){
- var openerparam = opener.javascript.getParameter("SPMMD08300_param");
- var param = openerparam.split("▦");
- var mode = param[0];
- var deptcd = param[1];
- var indx = param[2];
-
- fReqSetTreeView(mode, deptcd);
- trv_mrfolderlist.select(indx);
- trv_mrfolderlist.expand(indx, true);
- trv_mrfolderlist.rebuild();
- }
- /**
- * @desc : 약속SET 처방/진단/수술/프로토콜 조회
- * @
- * @param : setkindcd - SET종류코드(개인P/부서D)
- * : setclscd - SET분류코드(의사D)
- * : settypecd - SET분류코드(처방P/진단D/수술O/프로토콜C)
- * : procflag - 처리구분(부서SET:D)
- * : deptcd - 부서코드
- * : deptnm - 부서명
- * : ioflag - 외래/입원구분
- * @return :
- * @authur : 오지훈 2007. 6. 27
- * @---------------------------------------------------
- */
- function fReqSetTreeView(mode, deptcd){
- model.removeNodeset("/root/send/reqdata");
- model.makeValue("/root/send/reqdata/mode", mode); //조회모드(A:전체조회/S:폴더하부조회)
- model.makeValue("/root/send/reqdata/indxnm", ""); //색인명
- model.makeValue("/root/send/reqdata/orddeptcd" , deptcd); // 부서코드
-
- model.resetInstanceNode("/root/main/indxlist/itemlist");
-
- if(submit("TRMMD05001")){
- model.copyNode("/root/main/indxlist/itemlist", "/root/main/srcindxinfo/itemlist");
- trv_mrfolderlist.rebuild();
- fImageMapping();
- }
- }
- //아이템에 이미지를 매핑시킨다.
- function fImageMapping() {
- var indxCnt = trv_mrfolderlist.length;
- for(var i = 1; i <= indxCnt; i++){
- //말단 아이템이 아니라면 폴더 이미지를 설정한다.
- if( model.getValue(itemRef + "[" + i + "]/fileno") == 0 ){
- model.setValue(itemRef + "[" + i + "]/image", folerImg);
- }else {
- model.setValue(itemRef + "[" + i + "]/image", fileImg);
- }
- }
- trv_mrfolderlist.rebuild();
- }
-
- /**
- * @desc : Mouse Drag Over중 선택한 treeview item의 색깔 변경
- * @
- * @param :
- * @return :
- * @author : 오지훈 2007. 10. 30
- * @---------------------------------------------------
- */
- function fDragOverColorChng(){
- if(trv_mrfolderlist.mouseRow != g_prevmouserow){
- trv_mrfolderlist.item(g_prevmouserow).attribute("background-color")="#ffffff";
- trv_mrfolderlist.item(trv_mrfolderlist.mouseRow).attribute("background-color")="#ccffff";
- g_prevmouserow = trv_mrfolderlist.mouseRow;
- }
- }
- /**
- * @desc : Mouse Drop시 treeview item의 순서 변경
- * @
- * @param :
- * @return :
- * @author : 오지훈 2007. 10. 30
- * @---------------------------------------------------
- */
- function fDropTrvItem(){
- //선택된 아이템
- var srcindx = trv_mrfolderlist.selectedIndex;
- var srcval = trv_mrfolderlist.item(srcindx).value;
-
- //부서권한 체크
- if ( !fchkFolderAuth() ) return;
- //드롭 위치의 아이템
- var trgtindx = trv_mrfolderlist.mouseRow;
- var trgtval = trv_mrfolderlist.item(trgtindx).value;
-
- // srcnindx와 trdtindx의 depth가 틀리면 폴더이동할 수 없다.
- var srcdepth = model.getValue(itemRef + "[" + (srcindx + 1) + "]/depth");
- var trgtdepth = model.getValue(itemRef + "[" + (trgtindx + 1) + "]/depth");
-
- if(srcdepth != trgtdepth){
- messageBox("선택된 폴더로 이동", "E001");
- return;
- }
-
- var treeItemNodeSet = trv_mrfolderlist.itemset.attribute("nodeset");
- var srcparentindx = getParentItemIndex(srcindx , treeItemNodeSet);
- var trgtparentindx = getParentItemIndex(trgtindx, treeItemNodeSet);
- if(trv_mrfolderlist.item(srcparentindx).value == trv_mrfolderlist.item(trgtparentindx).value){
- var srcLastChildItemIndex = getLastChildItemIndex(srcindx , treeItemNodeSet);
- var trgLastChildItemIndex = getLastChildItemIndex(trgtindx, treeItemNodeSet);
- var srcNodeList = instance1.selectNodes(treeItemNodeSet + "[position() >= " + (srcindx + 1)+ " and position() <=" + (srcLastChildItemIndex + 1) + "]");
-
- var srcNode, trgNode, newNode;
- var itemtParentNode = instance1.selectSingleNode(treeItemNodeSet).parentNode;
- var cloneSrcNode;
- if(srcindx < trgtindx) {
- trgNode = instance1.selectSingleNode(treeItemNodeSet + "[" + ( trgLastChildItemIndex + 1) + "]");
-
- while(srcNode = srcNodeList.nextNode()) {
- cloneSrcNode = srcNode.cloneNode(true);
- newNode = itemtParentNode.insertAfter(cloneSrcNode, trgNode);
- trgNode = newNode;
- itemtParentNode.removeChild(srcNode);
- }
- }else if(srcindx > trgtindx) {
- trgNode = instance1.selectSingleNode(treeItemNodeSet + "[" + ( trgtindx + 1) + "]");
-
- while(srcNode = srcNodeList.nextNode()) {
- cloneSrcNode = srcNode.cloneNode(true);
- newNode = itemtParentNode.insertBefore(cloneSrcNode, trgNode);
- itemtParentNode.removeChild(srcNode);
- }
- }
- trv_mrfolderlist.rebuild();
-
- }else{
- messageBox("선택된 폴더로 이동", "E001");
-
- }
- }
- /**
- * @desc : 현재 item index의 부모 item index를 return
- * @
- * @param :
- * @return :
- * @author : 김기용 2007. 1. 10
- * @---------------------------------------------------
- */
- function getParentItemIndex(itemIndex, treeItemNodeSet) {
- var curDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 1) + "]/depth");
- var parentDepthValue = curDepthValue - 1;
-
- do {
- itemIndex--;
- curDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 1) + "]/depth");
- } while(curDepthValue != parentDepthValue)
-
- return itemIndex;
- }
- /**
- * @desc : 현재 아이템 인덱스의 자식 아이템중 마지막 아이템 인덱스를 반환
- * @
- * @param :
- * @return :
- * @author : 김기용 2007. 1. 10
- * @---------------------------------------------------
- */
- function getLastChildItemIndex(itemIndex, treeItemNodeSet) {
- var curDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 1) + "]/depth");
- var childDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 2) + "]/depth");
-
- while(curDepthValue < childDepthValue) {
- itemIndex++;
- childDepthValue = model.getValue(treeItemNodeSet + "[" + (itemIndex + 2) + "]/depth");
- }
- return itemIndex;
- }
- /**
- * @desc : tree nodeset 순서 설정
- * @
- * @param :
- * @return :
- * @author : 오지훈 2007. 10. 31
- * @---------------------------------------------------
- */
- function fUpdtRefSeq(){
- var indx = trv_mrfolderlist.selectedIndex;
-
- var treeItemNodeset = trv_mrfolderlist.itemset.attribute("nodeset");
- var totcnt = getNodeSetCnt(treeItemNodeset);
- for(var i = 2; i <= totcnt; i++){
- model.setValue(treeItemNodeset + "[" + i + "]/indxrefseq", i);
- }
- model.resetInstanceNode("/root/send/reqdata");
- model.makeNode("/root/send/reqdata/itemlist");
- model.copyNode("/root/send/reqdata/itemlist", "/root/main/indxlist/itemlist");
-
- submit("TXMMD08300");
-
- window.close();
- }
- /**
- * @desc : tree nodeset 순서 설정
- * @
- * @param :
- * @return :
- * @author : 오지훈 2007. 10. 31
- * @---------------------------------------------------
- */
- function fClkBtnClose(){
- var indx = trv_mrfolderlist.selectedIndex;
- opener.javascript.setParameter("SPMMD08300_rtnparam", indx);
- window.close();
- }
- // 폴더정렬 대상 폴더 수정 권한 유무 체크
- function fchkFolderAuth(mode) {
-
- // 폴더아래로 신규폴더 생성시 폴더의 부서코드와 사용자 세션 부서 코드가 일치 해야 한다.
- var indx = trv_mrfolderlist.selectedIndex;
- var orddeptcd = model.getValue(itemRef + "[" + (indx + 1) + "]/orddeptcd");
- var depth = model.getValue(itemRef + "[" + (indx + 1) + "]/depth");
- var deptnm = "";
- var msg = "";
- var indxnm = "";
- var duplcecd = getUserInfo("dutplcecd");
-
- // 약제팀 부서 코드에 해당되는지 조사
- var drugdeptYn = "N";
- var drugdeptcd = "";
- var deptcnt = grd_drugdept.rows;
- for ( var i = 1 ; i<deptcnt ; i++ ) {
- drugdeptcd = model.getValue("/root/main/drugdeptlist/drugdept[" + i + "]/deptcd");
- if ( drugdeptcd == duplcecd ) {
- drugdeptYn = "Y";
- break;
- }
- }
-
- if ( drugdeptYn == "N" ) { // 일반 부서인 경우 권한 체크 로직
-
- if ( orddeptcd != duplcecd ) {
- indxnm = model.getValue(itemRef + "[" + (indx + 1) + "]/indxnm");
-
- msg = indxnm + " 폴더(색인)의 정렬순서 수정";
-
- messageBox(msg, "E002");
- return false;
- }
- }
- else { // 소속부서가 약제팀 부서에 해당하는 경우
- drugdeptYn = "N";
- orddeptcd = model.getValue(itemRef + "[" + (indx + 1) + "]/orddeptcd");
-
- for ( var i = 1 ; i<deptcnt ; i++ ) {
- drugdeptcd = model.getValue("/root/main/drugdeptlist/drugdept[" + i + "]/deptcd");
- if ( drugdeptcd == orddeptcd || orddeptcd == "DRUGDEPT" ) {
- drugdeptYn = "Y";
- break;
- }
- }
-
- if ( drugdeptYn == "N" ) { // 선택한 폴더가 약제팀 폴더가 아닌 경우
-
- indxnm = model.getValue(itemRef + "[" + (indx + 1) + "]/indxnm");
-
- msg = indxnm + " 폴더(색인)의 정렬순서 수정";
-
- messageBox(msg, "E002");
- return false;
-
- }
-
- }
-
- return true;
-
- }
|