/* --------------------------------------------------------------------- SMRSD10000_물품청구관리(경북대).xrw (SMRSD10000.xrw - JScript ) - Version : 1) : Ver.1.00.01 ---------------------------------------------------------------------- */ var xAuth = !(checkAuth("X")); var pAuth = !(checkAuth("P")); var vPurcAuth = "1"; var gExeptionFlag = true; var gPurcDeptcd = "" ; var gcount = 0 ; //청구번호 읽기 var gReqNoReadFlag = true; //청구번호 읽기 var cmbworkflagold = "X" ; //작업구분콤보의 예전값을 가지고 있는 변수 /** * @ver : 2010-10-17 * @desc : 폼 초기화 * @param : * @return : * @--------------------------------------------------- */ function fInitialize() { model.resetInstanceNode("/root/send"); btn_save.disabled = true; btn_accept.disabled = true; ckb_accept.attribute("visibility") ="hidden"; misfGridInit(grd_goodreq); //misfMsterDetailSet(grd_goodreq,null, "TRRSD00411" ,"Y"); model.setValue(opt_instcd.attribute("ref"), getUserInfo("dutplceinstcd")); model.setValue(opt_instcdnm.attribute("ref"), getUserInfo("dutplceinstnm")); model.setValue(opt_requser.attribute("ref" ) , getUserInfo("userid")); model.setValue(opt_requsernm.attribute("ref") , getUserInfo("usernm")); model.setValue(ipt_reqdd.attribute("ref") , getCurrentDate()); if (cmb_workflag.length> 0) cmb_workflag.select(0); // 작업구분 grd_goodlist.fixedcellcheckbox(0,grd_goodlist.colRef("chk"),false) = true; model.setValue("/root/send/reqpsn/instcd", model.getValue(opt_instcd.attribute("ref")) ); model.setValue("/root/send/reqpsn/emplno", model.getValue(opt_requser.attribute("ref"))); submit("TRRSD00407"); //청구권한 주기 조회 misfComboComCdList("R0025" ,cmb_goodflag, "N"); //물품구분 misfComboComCdList("030M0003" ,cmb_mngtcls,"Y"); //관리분류(약품만) copyNodesetType("/root/tmp/common/goodflaglist","/root/init/cmb_goodflag/comcodelist","replace"); addComboItem( "sel_goodflag", "전체", "", "above" ); model.setValue("/root/send/goodreq/goodflag",model.getValue("/root/tmp/common/goodflaglist/cdid[1]")); model.setValue("/root/send/goodreq/goodflag","PH"); model.setValue("/root/init/goodflag" ,"PH"); rszfLMSComboList(model.getValue(cmb_goodflag.attribute("ref")), "", "", "ipt_lrgcd", "", "L","Y"); model.setValue("/root/send/goodlist/purcdeptflag" , "X"); //구매부서구분 : P fReqdeptCopy(); gReqNoReadFlag = false; //청구번호 읽기 fDeptReqNoQuery(); model.refresh(); } /** * @ver : 2010-10-17 * @desc : 권한체크(청구주기가 일청구이면 권한체크하지 않는다. ) * @param : * @return : * @--------------------------------------------------- */ function fSetReqAuth() { // btn 기본처리 btn_excel.disabled = true; // btn_reqset.disabled = true; btn_insert.disabled = true; btn_delete.disabled = true; btn_choice.disabled = true; btn_accept.disabled = true; btn_save.disabled = true; model.setValue(ckb_accept.attribute("ref"), "N"); ckb_accept.attribute("visibility") ="hidden" ; if(model.getValue(opt_instcd.attribute("ref") ).length==0) return; //if(model.getValue(cmb_reqflag.attribute("ref") ).length==0) return; if(model.getValue(cmb_reqdeptcd.attribute("ref") ).length==0) return; if(model.getValue(cmb_reqpridflag.attribute("ref")).length==0) return; // ----------------------------------------------- // 청구주기가 일청구이면 권한체크하지 않는다. // ----------------------------------------------- // if ((model.getValue(cmb_reqpridflag.attribute("ref")) == "1" ) && // (model.getValue(opt_instcd.attribute("ref") ) == "012") ) { // ----------------------------------------------- if ((model.getValue(cmb_reqpridflag.attribute("ref")) == "1") && gExeptionFlag ) { // ----------------------------------------------- // rszfGetPurcReqFnlDeptcd(model.getValue(opt_instcd.attribute("ref")), model.getValue(cmb_reqflag.attribute("ref")) , model.getValue(cmb_reqdeptcd.attribute("ref"))); // ----------------------------------------------- btn_save.disabled = false; btn_accept.disabled = false; model.setValue(ckb_accept.attribute("ref"), "Y"); ckb_accept.attribute("visibility") = "visible" ; btn_excel.disabled = false; // btn_reqset.disabled = false; btn_insert.disabled = false; btn_delete.disabled = false; btn_choice.disabled = false; } else { fPurcAuthInfo(); // 청구승인자 Check if (cmb_reqpridflag.value == "4") { // 월청구 if (fLastDayCheck_2() ) { btn_save.disabled = true; } else { btn_save.disabled = false; } } else { btn_save.disabled = false; } btn_excel.disabled = false; // btn_reqset.disabled = false; btn_insert.disabled = false; btn_delete.disabled = false; btn_choice.disabled = false; // if (vPurcAuth == "2") { //1:청구자, 2:승인자 // btn_accept.disabled = false; // model.setValue(ckb_accept.attribute("ref"), "Y"); // ckb_accept.attribute("visibility") = "visible" ; // } } if (model.getValue("/root/send/goodlist/purcdeptflag") == "P") { //구매부서구분 : P btn_accept.disabled = false; model.setValue(ckb_accept.attribute("ref"), "Y"); ckb_accept.attribute("visibility") = "visible" ; } // 로그인자의 부서와 취합부서정보가 같으면 청구부서를 open한다. // if (model.getValue(cmb_reqdeptcd.attribute("ref")) == model.getValue(opt_reqfinaldept.attribute("ref"))) { // cmb_reqdeptcd.disabled=false; // } // fDeptReqNoQuery(); // 청구부서별 청구번호를 조회한다 model.refresh(); } /** * @ver : 2010-10-17 * @desc : 불출부서 청구마지막 일자를 불러온다.청구마감일자 조회 * @param : * @return : * @--------------------------------------------------- */ function fLastDaySearch() { model.setValue("/root/send/lastdatesearch/instcd" , model.getValue(opt_instcd.attribute("ref")) ); model.setValue("/root/send/lastdatesearch/deldeptcd", model.getValue(cmb_reqdeptcd.attribute("ref")) ); // model.setValue("/root/send/lastdatesearch/deldeptcd", opt_reqfinaldept.value ); model.setValue("/root/send/lastdatesearch/reqym" , model.getValue(ipt_reqdd.attribute("ref")).substr(0,6)); submit("TRRSC01701"); // 청구마감일자 조회 purcbaseweb ipt_todd.refresh(); } // -------------------------------------------------------------- // 청구일자가 불출부서의 청구마지막 일자안에 있는지 확인, // -------------------------------------------------------------- function fLastDayCheck() { var fbool = false; if (model.getValue(ipt_todd.attribute("ref")) != '') { if (model.getValue(ipt_reqdd.attribute("ref")) > model.getValue(ipt_todd.attribute("ref")) ) { fbool = true; } } return fbool; } // -------------------------------------------------------------- // 불출부서 청구마지막 일자를 불러온다.청구마감일자 조회 // -------------------------------------------------------------- function fLastDaySearch_2(pDate) { model.setValue("/root/send/lastdatesearch/instcd" , model.getValue(opt_instcd.attribute("ref")) ); model.setValue("/root/send/lastdatesearch/deldeptcd", gPurcDeptcd ); model.setValue("/root/send/lastdatesearch/reqym" , pDate.substr(0,6)); submit("TRRSC01701"); // 청구마감일자 조회 purcbaseweb ipt_todd.refresh(); } // -------------------------------------------------------------- // 청구일자가 불출부서의 청구마지막 일자안에 있는지 확인, // -------------------------------------------------------------- function fLastDayCheck_2() { var fbool = false; if (model.getValue(ipt_todd.attribute("ref")) == '') { return false; } // if (sel_goodflag.value == "PH") { // 약품 return false; } // // alert(model.getValue(ipt_todd.attribute("ref")) +"=="+ getCurrentDate()); // if (cmb_reqpridflag.value == "4") { // 월청구 if (model.getValue(ipt_todd.attribute("ref")) < getCurrentDate()) { alert("청구 마감일이 지났습니다. 구매팀에 문의 하십시요!!"); // messageBox("청구 마감일이 지났습니다. \n 구매팀에 문의 하십시요!!", ""); return true; } } // // if (cmb_reqpridflag.value == "4") { // 월청구 // if (model.getValue(ipt_todd.attribute("ref")) != '') { // if (chk_reqnonew.value == "Y" ) { // if (model.getValue(ipt_reqddnew.attribute("ref")) > model.getValue(ipt_todd.attribute("ref")) ) { // return true; // // } // } else if (model.getValue(ipt_reqdd.attribute("ref")) > model.getValue(ipt_todd.attribute("ref")) ) { // fbool = true; // // } // } // } // return fbool; } /** * @ver : 2010-10-17 * @desc : 적용버튼 클릭시 Data DefaultSetting * @param : * @return : * @--------------------------------------------------- */ function fDefaultSetting(prow) { // -------------------------------------------------------- // 일반청구 와 정량보충에 따라서 col을 control한다. // -------------------------------------------------------- grd_goodreq.colDisabled(grd_goodreq.colRef("stocqty")) = false; grd_goodreq.colDisabled(grd_goodreq.colRef("reqqty")) = false; var workflag = model.getValue(cmb_workflag.attribute("ref")) ; // -------------------------------------------------------- //작업구분이 [수액청구] == [처방청구]일때 행 추가시 작업 구분은 [일반청구]로 지정 // -------------------------------------------------------- /* if (model.getValue(ckb_sapreq.attribute("ref" )) == "Y" || model.getValue(cmb_workflag.attribute("ref")) == "6" ) workflag = "1"; */ if (model.getValue(cmb_workflag.attribute("ref")) == "6" ) workflag = "1"; // // model.setValue(grd_goodreq.nodeset +"[" + prow+ "]/workflag" , workflag ); model.setValue(grd_goodreq.nodeset +"[" + prow + "]/instcd" , model.getValue(opt_instcd.attribute("ref" ))); // -------------------------------------------------------- // 불출구분 없앰... 기본값('1') settting한다 // -------------------------------------------------------- model.setValue(grd_goodreq.nodeset +"[" + prow + "]/deliveflag" , '1' ); model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqdd" , model.getValue(ipt_reqdd.attribute("ref" ))); model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqpridflag" , model.getValue(cmb_reqpridflag.attribute("ref" ))); model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqdeptcd" , model.getValue(cmb_reqdeptcd.attribute("ref" ))); model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqpsnid" , model.getValue(opt_requser.attribute("ref" ))); model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqseqno" , fGetMaxReqNo() ); model.setValue(grd_goodreq.nodeset +"[" + prow + "]/reqno" , model.getValue(cmb_reqno.attribute("ref" ))); //----------------------------------------------------------------------------------------------------------- // 비승인자가 승인처리시 에러와 함꼐 OLD값을 넣어준다. // 행추가시 OLD값을 'N'으로 셋팅함으로 에러처리시 제대로 된다. HBH //----------------------------------------------------------------------------------------------------------- //model.setValue(grd_goodreq.nodeset +"[" + prow + "]/predeptaprvyn","N"); } /** * @ver : 2010-10-17 * @desc : 최종 청구번호 가져오기 * @param : * @return : * @--------------------------------------------------- */ function fGetMaxReqNo() { var vMax = 0; var maxreqseqno = "0"; for (var currow = grd_goodreq.fixedRows ; currow < grd_goodreq.rows; currow++) { if (maxreqseqno < grd_goodreq.valueMatrix(currow, grd_goodreq.colRef("reqseqno"))) { maxreqseqno = grd_goodreq.valueMatrix(currow, grd_goodreq.colRef("reqseqno")); } } vMax = parseInt(maxreqseqno, 10); // alert(vMax+"::"+maxreqseqno); vMax += 1; maxreqseqno = "" + vMax; return maxreqseqno.getLeftPad(3,"0"); } // -------------------------------------------------------------- // // -------------------------------------------------------------- function fSettingGoodList(pnode, nodename, userqtynm) { var vTarget = ""; var vSource = ""; var codynode = instance1.selectNodes(pnode + "/*"); var addRow = grd_goodreq.rows - grd_goodreq.fixedRows; if(model.getValue(grd_goodreq.nodeset + "[" + addRow + "]/goodcd").length > 0) addRow = addRow + 1; // for (var j = 1; j <= codynode.length ; j++) { if((grd_goodreq.rows - grd_goodreq.fixedRows == 0) || (addRow > grd_goodreq.rows - grd_goodreq.fixedRows)) { misfGridIUD(grd_goodreq,"A" ); addRow = grd_goodreq.rows - grd_goodreq.fixedRows; fDefaultSetting(addRow); } vTarget = grd_goodreq.nodeset + "[" + addRow + "]/"; vSource = pnode +"/" + nodename + "[" + j + "]/"; fSettingGoodData(vTarget, vSource, userqtynm, "deliveunit"); if (model.getValue(vSource + "allsizeyn") == "Y") { grd_goodreq.cellstyle("background-color" , addRow, 9) = "#FFFF00"; model.setValue(vTarget + "allsizespecid" , model.getValue(vSource + "allsizespecid" )); model.setValue(vTarget + "allsizespecidnm" , model.getValue(vSource + "allsizespecidnm")); if (model.getValue(vSource + "allsizespecid").length > 0 ) { model.setValue(vTarget + "goodspec" , model.getValue(vSource + "allsizespecidnm")); } else { model.setValue(vTarget + "allsizespecid" , "-"); } } addRow = addRow + 1; } //model.removenode(pnode); model.refresh(); } /** * @ver : 2010-10-17 * @desc : 조회시 체크로직 * @param : * @return : * @--------------------------------------------------- */ function fCheckRetrieveData(pmsg) { if(model.getValue(cmb_workflag.attribute("ref")).length== 0 ) { if(pmsg == true) { messageBox("작업구분을 " ,"C002"); model.setFocus("cmb_workflag"); } return false; } if(model.getValue(opt_instcd.attribute("ref")).length== 0 ) { if(pmsg == true) { messageBox("기관코드를 " ,"C002"); model.setFocus("opt_instcd"); } return false; } // if(model.getValue(cmb_reqflag.attribute("ref")).length== 0 ) // { // if(pmsg == true) // { // messageBox("청구구분을 " ,"C002"); // model.setFocus("cmb_reqflag"); // } // return false; // } if(model.getValue(ipt_reqdd.attribute("ref")).length== 0 ) { if(pmsg == true) { messageBox("청구일자를 " ,"C001"); model.setFocus("ipt_reqdd"); } return false; } if(model.getValue(cmb_reqpridflag.attribute("ref")).length== 0 ) { if(pmsg == true) { messageBox("청구주기를 " ,"C002"); model.setFocus("cmb_reqpridflag"); } return false; } if(model.getValue(cmb_reqdeptcd.attribute("ref")).length== 0 ) { if(pmsg == true) { messageBox("청구부서를 " ,"C002"); model.setFocus("cmb_reqdeptcd"); } return false; } if(model.getValue(opt_requser.attribute("ref")).length== 0 ) { if(pmsg == true) { messageBox("청구자를 " ,"C002"); model.setFocus("opt_requser"); } return false; } return true; } // function fCheckLimitTime(pDate) { return true; } // 저장전 Data를 Check한다. function fCheckSaveData() { if (model.getValue(cmb_workflag.attribute("ref")).length== 0 ) { messageBox("작업구분을 " ,"C002"); model.setFocus("cmb_workflag"); return false; } // if (model.getValue(opt_instcd.attribute("ref")).length== 0 ) { messageBox("기관코드를 " ,"C002"); model.setFocus("opt_instcd"); return false; } // if(model.getValue(cmb_reqflag.attribute("ref")).length== 0 ) // { // messageBox("청구구분을 " ,"C002"); // model.setFocus("cmb_reqflag"); // return false; // } if (model.getValue(ipt_reqdd.attribute("ref")).length== 0 ) { messageBox("청구일자를 " ,"C001"); model.setFocus("ipt_reqdd"); return false; } // if (model.getValue(cmb_reqpridflag.attribute("ref")).length== 0 ) { messageBox("청구주기를 " ,"C002"); model.setFocus("cmb_reqpridflag"); return false; } // var basevol = 0; var stocqty = 0; var reqqty = 0; var minexch = 0; grd_goodreq.rebuildStyle(); for(var currow = grd_goodreq.fixedRows ; currow < grd_goodreq.rows ; currow++) { if (grd_goodreq.rowStatus( currow ) != "4" ) { // 저장 후 삭제일 경우 ( 4 ) check 하지 말자. for(srcrow = currow + 1 ; srcrow < grd_goodreq.rows ; srcrow++) { if (grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("goodcd")) == grd_goodreq.valueMatrix(srcrow , grd_goodreq.colRef("goodcd")) && grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("allsizeyn")) == "N" && grd_goodreq.rowStatus( srcrow ) != "4" ) { messageBox("동일 물품코드가1 [" + currow + "," +srcrow + "->" + grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("goodcd")) + "] 존재하여 저장 " ,"E001"); grd_goodreq.rowStyle(currow, "data", "background-color") = "#ffff99"; grd_goodreq.rowStyle(srcrow, "data", "background-color") = "#ffff99"; grd_goodreq.row = currow ; btn_scroll.dispatch("DOMActivate"); return false; } else if(grd_goodreq.valueMatrix(currow ,grd_goodreq.colRef("goodcd" )) == grd_goodreq.valueMatrix(srcrow , grd_goodreq.colRef("goodcd" )) && grd_goodreq.valueMatrix(currow ,grd_goodreq.colRef("allsizespecid")) == grd_goodreq.valueMatrix(srcrow , grd_goodreq.colRef("allsizespecid")) && grd_goodreq.rowStatus( srcrow ) != "4" ) { messageBox("동일 물품코드가 (ALL SIZE) [" + currow + "," +srcrow + "->" + grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("goodcd")) + "] 존재하여 저장 " ,"E001"); grd_goodreq.rowStyle(currow, "data", "background-color") = "#ffff99"; grd_goodreq.rowStyle(srcrow, "data", "background-color") = "#ffff99"; grd_goodreq.row = currow ; btn_scroll.dispatch("DOMActivate"); return false; } } grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("allsizespecid")) = "-"; model.makeValue(grd_goodreq.nodeset + "[" + currow + "]/deptaprvyn" ,"N"); model.makeValue(grd_goodreq.nodeset + "[" + currow + "]/deptaprvdd","" ); /*if (model.getValue(grd_goodreq.nodeset + "[" + currow + "]/aprvyn") != "Y") { if (model.getValue(ckb_accept.attribute("ref")) == "Y") { if (model.getValue(grd_goodreq.nodeset + "[" + currow + "deptaprvyn") != "Y") { if (gPurcDeptcd == getUserInfo("dutplcecd") ){ model.setValue(grd_goodreq.nodeset + "[" + currow + "]/deptaprvyn" ,"Y"); model.setValue(grd_goodreq.nodeset + "[" + currow + "]/deptaprvdd" ,getCurrentDate()); } else { if (model.getValue(grd_goodreq.nodeset + "[" + currow + "]/reqauth") == "2") { model.setValue(grd_goodreq.nodeset + "[" + currow + "]/deptaprvyn" ,"Y"); model.setValue(grd_goodreq.nodeset + "[" + currow + "]/deptaprvdd" ,getCurrentDate()); } else { model.makeValue(grd_goodreq.nodeset + "[" + currow + "]/deptaprvyn" ,"N"); model.makeValue(grd_goodreq.nodeset + "[" + currow + "]/deptaprvdd","" ); } } } } }*/ } } // end for /* 청구 번호가 없는 경우 즉 신규인 상황에서 신규체크를 하지 않았을 경우 * 임의로 신규 체크 여부를 지정한다. [20081126] YYJ */ if (model.getValue(cmb_reqno.attribute("ref")).length== 0 ) { model.setValue(chk_reqnonew.attribute("ref"),'Y'); chk_reqnonew.refresh(); } return true; } // function fSetControlDisabled(pDisabled) { cmb_reqno.disabled = pDisabled; } // function fAfterRetr() { if (model.getValue("/root/main/list/goodreq/goodmaxreqno/reqfix") == "Y") { fSetControlDisabled("true"); } else { fSetControlDisabled("false"); } // model.setValue(cmb_reqno.attribute("ref"),model.getValue("/root/main/list/goodreq/goodmaxreqno/reqno")); model.refresh(); } // -------------------------------------------------- // // -------------------------------------------------- function fRetrByReqNo() { if(fCheckRetrieveData(false) == false)return; model.removenode("/root/main/tmplist"); model.makeNode("/root/main/tmplist/goodreq/goodreqlist"); model.makeNode("/root/main/tmplist/goodreq/goodmaxreqno"); model.copyNode("/root/main/tmplist", "/root/main/list"); model.setValue("/root/send/goodreq/retrmaxreqnoyn","N"); misfMsterDetailRetrieve(); var rtncount = grd_goodreq.rows - grd_goodreq.fixedRows; if(rtncount == 0) { model.copyNode("/root/main/list","/root/main/tmplist"); } return rtncount; } // -------------------------------------------------- // // -------------------------------------------------- function fSetReqNo(pReqControl,pAdd) { if(pAdd == "Y") { var reqno = model.getValue(cmb_reqno.attribute("ref")); reqno = parseInt(reqno) + 1; reqno = "" + reqno; reqno = reqno.getLeftPad(4,"0"); } else { var reqno = model.getValue(cmb_reqno.attribute("ref")); reqno = parseInt(reqno) - 1; if(reqno == 0)reqno = 1; reqno = "" + reqno; reqno = reqno.getLeftPad(4,"0"); } model.setValue(pReqControl.attribute("ref"), reqno); model.refresh(); } // -------------------------------------------------- // 승인전체/접수전체취소 // -------------------------------------------------- function fSettingReqAprv() { for (var liRow = grd_goodreq.fixedRows ; liRow < grd_goodreq.rows ; liRow++) { //---------------------------------------------------------------------------- // 발주승인건 제외 //---------------------------------------------------------------------------- if (model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/aprvyn") != "Y") { if ((gPurcDeptcd == getUserInfo("dutplcecd") ) || (model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/reqauth") == "2")) { if (model.getValue(grd_goodreq.nodeset + "[" + liRow + "]/deptaprvyn") == "Y") { model.setValue(grd_goodreq.nodeset + "[" + liRow + "]/deptaprvyn","N"); model.setValue(grd_goodreq.nodeset + "[" + liRow + "]/deptaprvdd","" ); if (grd_goodreq.rowStatus(liRow) == "0") grd_goodreq.rowStatus(liRow) = "2"; } else { model.setValue(grd_goodreq.nodeset + "[" + liRow + "]/deptaprvyn" ,"Y"); model.setValue(grd_goodreq.nodeset + "[" + liRow + "]/deptaprvdd" ,getCurrentDate()); if (grd_goodreq.rowStatus(liRow) == "0") grd_goodreq.rowStatus(liRow) = "2"; } } } } // model.refresh(); } // -------------------------------------------------- // 승인/미승인 처리 // -------------------------------------------------- function fSaveReqAprv() { model.removenode("/root/send/reqaprvlist"); model.makeNode("/root/send/reqaprvlist" ); model.setValue("/root/send/reqaprvlist" ,grd_goodreq.getUpdateData()); submit("TXRSD07002"); if (model.getValue(gvErrorMsgPath + "/type") != "error") misfMsterDetailRetrieve(); } // -------------------------------------------------- // 권한여부에 따른 승인체크 설정. // -------------------------------------------------- function fGrantsCheck() { if (vPurcAuth == "2" || model.getValue(cmb_reqpridflag.attribute("ref")) =="1") { misfSetReadOnlyCol(grd_goodreq, "deptaprvyn", false); }else{ misfSetReadOnlyCol(grd_goodreq, "deptaprvyn", true); } } // -------------------------------------------------- // 물품청구 버튼 Click 처리하는 함수 // -------------------------------------------------- function fGoodreqButtonClick() { // grp_allsize.attribute("visibility") ="hidden" ; if (grd_goodreq.col == grd_goodreq.colRef("goodcd") && grd_goodreq.rowStatus(grd_goodreq.row) == "1" ) { //구성물품코드를 눌렀을 경우 fViewToggle(2); // 1 :늘리기, 2 : 줄이기 //cmb_reqflag.select(0); bbt_good.selected = "true"; //model.toggle("gd_find"); // fReqFagChange(model.getValue(cmb_reqflag.attribute("ref"))); fGoodListReady(grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.col),""); // 물품찾기 처리하는 함수 }else if (grd_goodreq.col == grd_goodreq.colRef("goodspec") && grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("allsizeyn")) == "Y" ){ fAllSizeRead(grd_goodreq.row ,grd_goodreq.col, event.clientY); } } // -------------------------------------------------- // 물품청구 내용이 바뀌었을때 처리하는 함수 // -------------------------------------------------- function fGoodreqOnChange() { // ------------------------------------------------------------------------------------- // basevol = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("basevol")); // stocqty = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("stocqty")); // // reqqty = basevol - stocqty; // grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("reqqty")) = reqqty; // vMax = parseInt(maxreqseqno, 10); // reqqty = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("reqqty")); // ------------------------------------------------------------------------------------- if (grd_goodreq.col == grd_goodreq.colRef("reqqty") ) { if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/acptflag") == "Y") { messageBox("구매접수된 내역은 수정","E001"); return; } if (model.getValue(cmb_reqpridflag.attribute("ref")) !="1") { if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqauth" ) == "1" && model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/predeptaprvyn") == "Y" ) { grd_goodreq.rowStatus(grd_goodreq.row) = "0"; messageBox("청구승인되었으므로 청구량을 수정" ,"E001"); return; } } /* // 2010.08.23 청구량만 넣고 안전재고,현재고 hidden basevol = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("basevol")); stocqty = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("stocqty")); reqqty = basevol - stocqty; grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("reqqty")) =reqqty; */ // ------------------------------------------------------------------------------------- // vMax = parseInt(maxreqseqno, 10); // reqqty = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("reqqty")); // ------------------------------------------------------------------------------------- minexch = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("minexch")); // ------------------------------------------------------------------------------------- // [20090409 YYJ] 최소 청구량 => 최소 처방량으로 변경 20090409 16:50 이혜숙 차장님 요청사항 // 기존 청구시점에서 청구시 수량에 대한 규제를 위해 설정 되었던 항목을 // 구매팀에서 물품에 대한 참고 치로 사용을 한다 함. ( EDI와의 환산 수량의 의미 ).. 최소 처방량에 대한 단위는 관리 하지 않는다 함 // ------------------------------------------------------------------------------------- // if(minexch > 0 && (reqqty%minexch != 0)) // { // messageBox((grd_goodreq.row )+ "번째 물품은 최소청구량["+ minexch + "] 에 맞춰서" , "C001"); // grd_goodreq.row = grd_goodreq.row; // grd_goodreq.col= grd_goodreq.colRef("reqqty"); // model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/reqqty",""); // grd_goodreq.editCell(); // return; // } // ------------------------------------------------------------------------------------- } // ----------------------------------------------------------------------------------- // 청구수량을 정량보충으로 변경함. ( 재고/ 기준량을 입력한다) .2007.08. // ----------------------------------------------------------------------------------- else if (grd_goodreq.col == grd_goodreq.colRef("stocqty") || grd_goodreq.col == grd_goodreq.colRef("basevol") ) {//재고량조절할경우 if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/acptflag") == "Y") { messageBox("구매접수된 내역은 수정","E001"); return; } if(model.getValue(cmb_reqpridflag.attribute("ref")) !="1") { if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqauth" ) == "1" && model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/predeptaprvyn") == "Y" ) { grd_goodreq.rowStatus(grd_goodreq.row) = "0"; messageBox("청구승인되었으므로 재고량을 수정" ,"E001"); return; } } basevol = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("basevol")); stocqty = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("stocqty")); reqqty = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("reqqty" )); minexch = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("minexch")); calc_reqqty = basevol - stocqty; // ----------------------------------------------------------------------------------- // if ( calc_reqqty < minexch ) calc_reqqty = minexch; // if ( calc_reqqty < minexch ) calc_reqqty = 0; // ----------------------------------------------------------------------------------- model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqqty",calc_reqqty); } /* else if(grd_goodreq.col == grd_goodreq.colRef("goodcd") && grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("goodcd")).length> 0) { model.removenode("/root/copynode"); model.removenode(gvParamPath +"/SMRSD00400_/SMRSD00400_value"); model.makeNode("/root/copynode"); // ----------------------------------------------------------------------------------- // rszfValidationCheck("TRRSD00191", "goodlist" , "refcond,instcd,goodflag,goodcd,goodnm,indexgb,indexnm,reqflag,reqdeptcd,reqprid","goodcd," + model.getValue(opt_instcd.attribute("ref")) + "," +model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/goodflag") + "," + model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/goodcd") + ",,,," + model.getValue(cmb_reqflag.attribute("ref")) + "," + model.getValue(cmb_reqdeptcd.attribute("ref")) + "," + model.getValue(cmb_reqpridflag.attribute("ref")) ,"","goodcd,goodnm,goodspec,goodmodel,prodcmpynm,purcunit,stocqty,minexch,goodflag,ddavguseqty,reqflag,allsizeyn",grd_goodreq,"SPRSD00190","instcd,goodflag,reqflag,reqdeptcd,reqprid","opt_instcd,opt_goodflag,cmb_reqflag,cmb_reqdeptcd,cmb_reqpridflag","Y"); // model.refresh(); // ----------------------------------------------------------------------------------- // 2010.02.18 CHR rszfValidationCheck("TRRSD00191", "goodlist" , "refcond,instcd,goodflag,goodcd,goodnm,indexgb,indexnm,reqflag,reqdeptcd,reqprid" ,"goodcd," + model.getValue(opt_instcd.attribute("ref")) + "," + model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodflag") + "," + model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodcd" ) + ",,,," + model.getValue(cmb_reqflag.attribute("ref" )) + "," + model.getValue(cmb_reqdeptcd.attribute("ref" )) + "," + model.getValue(cmb_reqpridflag.attribute("ref")) ,"" , "goodcd,goodnm,goodspec,goodmodel,prodcmpynm,purcunit,stocqty,minexch,goodflag,ddavguseqty,reqflag,allsizeyn,delivedeptcd,setunit,constunit" , grd_goodreq,"SPRSD00190" , "instcd,goodflag,reqflag,reqdeptcd,reqprid","opt_instcd,opt_goodflag,cmb_reqflag,cmb_reqdeptcd,cmb_reqpridflag","Y"); model.refresh(); if (grd_goodreq.valueMatrix(cur_row, grd_goodreq.colRef("goodnm")).length > 0) { // ----------------------------------------------------------------------------------- // [20090409 YYJ] 최소 청구량 => 최소 처방량으로 변경 20090409 16:50 이혜숙 차장님 요청사항 // 기존 청구시점에서 청구시 수량에 대한 규제를 위해 설정 되었던 항목을 // 구매팀에서 물품에 대한 참고 치로 사용을 한다 함. ( EDI와의 환산 수량의 의미 ).. 최소 처방량에 대한 단위는 관리 하지 않는다 함 // ----------------------------------------------------------------------------------- // if(model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/minexch") > 0) // model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/reqqty",model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/minexch") ); // else model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/reqqty","1"); // ----------------------------------------------------------------------------------- // model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/basevol",model.getValue("/root/init/main/goodlist/minexch")); // model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqmthdflag",model.getValue("/root/init/main/goodlist/reqmthd")); // ----------------------------------------------------------------------------------- model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqqty","1"); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/basevol","1"); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/requnit",model.getValue("/root/init/main/goodlist/deliveunit")); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/exchqty",model.getValue("/root/init/main/goodlist/exchqty")); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqmthdflag","3"); } model.refresh(); var cur_row = grd_goodreq.row; var status = grd_goodreq.valueMatrix(cur_row, grd_goodreq.colRef("m")); var CSV = model.getValue(gvParamPath +"/SMRSD00400_/SMRSD00400_value"); if(CSV.length == 0 && grd_goodreq.valueMatrix(cur_row, grd_goodreq.colRef("goodnm")).length == 0) { model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodcd" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodcd" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodnm" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodspec" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodflag" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodmodel" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/prodcmpynm" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/purcunit" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/basevol" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/stocqty" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqqty" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/requnit" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/minexch" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/ddavguseqty" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/allsizeyn" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/allsizespecid" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/exchqty" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/rgstqty" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqauth" , "1"); grd_goodreq.col = grd_goodreq.colRef("goodcd"); grd_goodreq.editCell(); } else if (CSV.length > 0) { model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/goodcd",""); setCSVToNode("/root/copynode", CSV, "goodreqlist"); fSettingGoodList("/root/copynode", "goodreqlist" , "userqty"); } }*/ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // 영양팀은 품목명칭에서 값을 입력할수 있다.. // 입력값과 일치건이 1일경우 코드 REPLACE // 없을경우 FIND /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /* else if (grd_goodreq.col == grd_goodreq.colRef("goodnm") && grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("goodnm")).length > 0 && grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("goodcd")).length == 0 ) { ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // validation을 하기 위해 임시 column 을 둔다. HBH ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// model.setValue(tmp_goodcd.attribute("ref") ,"%" ); model.setValue(tmp_goodnm.attribute("ref") ,grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("goodnm")) ); model.removenode("/root/copynode"); model.removenode(gvParamPath +"/SMRSD00400_/SMRSD00400_value"); model.makeNode("/root/copynode"); // 2010.02.18 CHR rszfValidationCheck("TRRSD00191", "goodlist" , "refcond,instcd,goodflag,goodcd,goodnm,indexgb,indexnm,reqflag,reqdeptcd,reqprid" ,"goodcd," + model.getValue(opt_instcd.attribute("ref")) + "," + model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodflag") + "," + model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodcd" ) + ",,,," + model.getValue(cmb_reqflag.attribute("ref" )) + "," + model.getValue(cmb_reqdeptcd.attribute("ref" )) + "," + model.getValue(cmb_reqpridflag.attribute("ref")) ,"" , "goodcd,goodnm,goodspec,goodmodel,prodcmpynm,purcunit,stocqty,minexch,goodflag,ddavguseqty,reqflag,allsizeyn,delivedeptcd,setunit,constunit" , grd_goodreq,"SPRSD00190" , "instcd,goodflag,reqflag,reqdeptcd,reqprid","opt_instcd,opt_goodflag,cmb_reqflag,cmb_reqdeptcd,cmb_reqpridflag","Y"); model.refresh(); if(grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.colRef("goodcd")).length > 0) { model.removenode("/root/copynode"); model.removenode(gvParamPath +"/SMRSD00400_/SMRSD00400_value"); model.makeNode("/root/copynode"); // rszfValidationCheck("TRRSD00191", "goodlist" , "refcond,instcd,goodflag,goodcd,goodnm,indexgb,indexnm,reqflag,reqdeptcd,reqprid","goodcd," + model.getValue(opt_instcd.attribute("ref")) + "," +model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/goodflag") + "," + model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/goodcd") + ",,,," + model.getValue(cmb_reqflag.attribute("ref")) + "," + model.getValue(cmb_reqdeptcd.attribute("ref")) + "," + model.getValue(cmb_reqpridflag.attribute("ref")) ,"","goodcd,goodnm,goodspec,goodmodel,prodcmpynm,purcunit,stocqty,minexch,goodflag,ddavguseqty,reqflag,allsizeyn",grd_goodreq,"SPRSD00190","instcd,goodflag,reqflag,reqdeptcd,reqprid","opt_instcd,opt_goodflag,cmb_reqflag,cmb_reqdeptcd,cmb_reqpridflag","Y"); model.refresh(); if (grd_goodreq.valueMatrix(cur_row, grd_goodreq.colRef("goodnm")).length> 0) { // ----------------------------------------------------------------------------------- // // [20090409 YYJ] 최소 청구량 => 최소 처방량으로 변경 20090409 16:50 이혜숙 차장님 요청사항 // 기존 청구시점에서 청구시 수량에 대한 규제를 위해 설정 되었던 항목을 // 구매팀에서 물품에 대한 참고 치로 사용을 한다 함. ( EDI와의 환산 수량의 의미 ).. 최소 처방량에 대한 단위는 관리 하지 않는다 함 // ----------------------------------------------------------------------------------- // if(model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/minexch") > 0) model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/reqqty",model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/minexch") ); // else model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/reqqty","1"); // ----------------------------------------------------------------------------------- // model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/basevol",model.getValue("/root/init/main/goodlist/minexch")); // model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/reqmthdflag",model.getValue("/root/init/main/goodlist/reqmthd")); // ----------------------------------------------------------------------------------- model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/reqqty" ,"1") model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/basevol","1"); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/requnit",model.getValue("/root/init/main/goodlist/deliveunit")); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/reqmthdflag","3"); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/allsizespecid","YYY"); } model.refresh(); var cur_row = grd_goodreq.row; var status = grd_goodreq.valueMatrix(cur_row, grd_goodreq.colRef("m")); var CSV = model.getValue(gvParamPath +"/SMRSD00400_/SMRSD00400_value"); if(CSV.length == 0 && grd_goodreq.valueMatrix(cur_row, grd_goodreq.colRef("goodnm")).length == 0) { model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodcd" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodcd" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodnm" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodspec" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodflag" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/goodmodel" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/prodcmpynm" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/purcunit" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/basevol" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/stocqty" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqqty" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/requnit" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/minexch" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/ddavguseqty" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/allsizeyn" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/allsizespecid" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/rgstqty" , ""); model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqauth" , "1"); grd_goodreq.col = grd_goodreq.colRef("goodcd"); grd_goodreq.editCell(); } else if (CSV.length > 0) { model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/goodcd",""); setCSVToNode("/root/copynode", CSV, "goodreqlist"); fSettingGoodList("/root/copynode", "goodreqlist" , "userqty"); } } }*/ else if ((grd_goodreq.col == grd_goodreq.colRef("deptaprvyn"))) { if ((model.getValue(cmb_reqpridflag.attribute("ref")) != "1") && (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqauth")!="2" ) ) { model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/deptaprvyn",model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/predeptaprvyn")); // insert 가 아니면.. if (grd_goodreq.rowStatus(grd_goodreq.row) != '3') { grd_goodreq.rowStatus(grd_goodreq.row) = "0"; } messageBox("청구승인권한이 없으므로 수정" ,"E001"); } else if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/aprvyn") == "Y") { grd_goodreq.rowStatus(grd_goodreq.row) = "0"; messageBox("발주승인이 되었으므로 수정" ,"E001"); } else { model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/deptaprvdd" ,getCurrentDate()); } } } // -------------------------------------------------- // 물품청구 내용이 바뀌었을때 처리하는 함수 // -------------------------------------------------- // 2010.12.06 청구포장수량 추가 function fGoodreqOnKeyDown() { if(event.keyCode == 13) { if(grd_goodreq.col == grd_goodreq.colRef("reqqty")) { if(grd_goodreq.row < grd_goodreq.rows - grd_goodreq.fixedRows) { grd_goodreq.row = grd_goodreq.row + 1; grd_goodreq.select(grd_goodreq.row, grd_goodreq.colRef("reqqty")) = true; } } /* if(grd_goodreq.col == grd_goodreq.colRef("reqpackqty")) //청구포장수량 추가 { if(grd_goodreq.row < grd_goodreq.rows - grd_goodreq.fixedRows) { grd_goodreq.row = grd_goodreq.row + 1; grd_goodreq.select(grd_goodreq.row, grd_goodreq.colRef("reqpackqty")) = true; } }*/ } if(event.keyCode == 9) { if(event.shiftKey) { if(grd_goodreq.colAttribute(grd_goodreq.col + 1, "type").indexOf ("input") > -1) { for(curcol = grd_goodreq.col -1 ; curcol > -1 ; curcol--) { if(grd_goodreq.colAttribute(curcol, "type").indexOf ("input") > -1) { grd_goodreq.col = curcol; grd_goodreq.editCell(); return; } } } } else { if(grd_goodreq.colAttribute(grd_goodreq.col, "type").indexOf ("input") == -1) { if(grd_goodreq.col - 1 == grd_goodreq.colRef("goodcd") && grd_goodreq.valueMatrix(grd_goodreq.row, grd_goodreq.col - 1).length == 0) { grd_goodreq.col = grd_goodreq.colRef("goodcd"); grd_goodreq.editCell(); return; } for(curcol = grd_goodreq.col ; curcol -1) { grd_goodreq.col = curcol; grd_goodreq.editCell(); return; } } } } } } // -------------------------------------------------- // 물품청구 Cell 내용이 바뀌었을때 처리하는 함수 // -------------------------------------------------- function fGoodreqOnEnterCell() { if((grd_goodreq.col == grd_goodreq.colRef("deptaprvyn"))) { if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqauth" ) != "2" && model.getValue(cmb_reqpridflag.attribute("ref")) !="1" ) { model.setValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/deptaprvyn",model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/predeptaprvyn") ); // insert 가 아니면.. if ( grd_goodreq.rowStatus(grd_goodreq.row) != '3') { grd_goodreq.rowStatus(grd_goodreq.row) = "0"; } messageBox("청구승인권한이 없으므로 수정" ,"E001"); } else { if(model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/aprvyn") == "Y") { grd_goodreq.rowStatus(grd_goodreq.row) = "0"; messageBox("발주승인이 되었으므로 수정" ,"E001"); } } } else if(grd_goodreq.col == grd_goodreq.colRef("stocqty")) // else if(grd_goodreq.col == grd_goodreq.colRef("reqqty")) { if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/acptflag") == "Y") { messageBox("구매접수된 내역은 수정","E001"); return; } if (model.getValue(cmb_reqpridflag.attribute("ref")) !="1") { if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqauth" ) == "1" && model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/predeptaprvyn") == "Y") { grd_goodreq.rowStatus(grd_goodreq.row) = "0"; messageBox("청구승인되었으므로 재고량을 수정" ,"E001"); return; } } } else if(grd_goodreq.col == grd_goodreq.colRef("reqqty")) { if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row+ "]/acptflag") == "Y") { messageBox("구매접수된 내역은 수정","E001"); return; } if (model.getValue(cmb_reqpridflag.attribute("ref")) !="1") { if (model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/reqauth" ) == "1" && model.getValue(grd_goodreq.nodeset + "[" + grd_goodreq.row + "]/predeptaprvyn") == "Y") { grd_goodreq.rowStatus(grd_goodreq.row) = "0"; messageBox("청구승인되었으므로 청구량을 수정" ,"E001"); return; } } } } // -------------------------------------------------- // Switch 속성변경 처리하는 함수 // -------------------------------------------------- function fViewToggle(pCls) { if (pCls == 1) { // 늘리기 // 메인 Grup grp_main.attribute("left" ) = "1" ; grp_main.attribute("width" ) = "1188"; // grp_main.attribute("top" ) = "90" ; // grp_main.attribute("height" ) = "663" ; // Data Grid // grd_goodreq.attribute("left" ) = "1" ; grd_goodreq.attribute("width" ) = "1183"; // grd_goodreq.attribute("top" ) = "29" ; // grd_goodreq.attribute("height") = "628" ; lin_main.attribute("x2" ) = "1182" ; bbt_large.attribute("visibility") = "hidden" ; bbt_right.attribute("visibility") = "hidden" ; grp_button.attribute("left" ) = "589" ; grp_allsize.attribute("left" ) = "544" ; } else { // 줄이기 // 메인 Grup grp_main.attribute("left" ) = "593" ; grp_main.attribute("width" ) = "602" ; // grp_main.attribute("top" ) = "90" ; // grp_main.attribute("height" ) = "663" ; // Data Grid // grd_goodreq.attribute("left" ) = "3" ; grd_goodreq.attribute("width" ) = "597" ; // grd_goodreq.attribute("top" ) = "29" ; // grd_goodreq.attribute("height") = "628" ; // lin_main.attribute("x1" ) = "2"; lin_main.attribute("x2" ) = "595"; bbt_large.attribute("visibility") = "visible" ; bbt_right.attribute("visibility") = "visible" ; grp_button.attribute("left" ) = "3" ; grp_allsize.attribute("left" ) = "174" ; } // swt_search.refresh(); grp_main.refresh(); } // -------------------------------------------------- // 물품 찾기 속성변경 처리하는 함수 // -------------------------------------------------- function fGoodSearchToggle() { if (cpt_cls.attribute("text") =="0") { // 상세접근 조회 // 메인 Grup grd_goodlist.attribute("left" ) = "2" ; grd_goodlist.attribute("top" ) = "83" ; grd_goodlist.attribute("width" ) = "576"; grd_goodlist.attribute("height" ) = "574" ; btn_dtail.attribute("top" ) = "56" ; bbt_apply2.attribute("top" ) = "56" ; lin_goodlist.attribute("y1" ) = "78"; lin_goodlist.attribute("y2" ) = "78"; grp_dtail.attribute("visibility") ="hidden" ; cpt_cls.attribute("text") = "1"; } else { // 줄이기 // 메인 Grup grd_goodlist.attribute("left" ) = "2" ; grd_goodlist.attribute("top" ) = "285" ; grd_goodlist.attribute("width" ) = "576"; grd_goodlist.attribute("height" ) = "372" ; btn_dtail.attribute("top" ) = "258" ; bbt_apply2.attribute("top" ) = "258" ; lin_goodlist.attribute("y1" ) = "280"; lin_goodlist.attribute("y2" ) = "280"; grp_dtail.attribute("visibility") ="visible" ; cpt_cls.attribute("text") = "0"; } grd_goodlist.refresh(); } // -------------------------------------------------- // 물품 찾기 속성변경 처리하는 함수 // -------------------------------------------------- var vInstcd = ""; var vReqdeptcd = ""; function fReqSetList() { var vReqSetFlag = "N"; if (model.getValue(opt_instcd.attribute("ref")) == "") { messageBox("기관을 " ,"C002"); return; } // if (model.getValue(cmb_reqdeptcd.attribute("ref" )) == ""){ messageBox("청구 부서를 " ,"C002"); return; } // if (vInstcd != model.getValue(opt_instcd.attribute("ref" ))) vReqSetFlag = "Y"; if (vReqdeptcd != model.getValue(cmb_reqdeptcd.attribute("ref" ))) vReqSetFlag = "Y"; if (vReqSetFlag == "N") return; vInstcd = model.getValue(opt_instcd.attribute("ref" )); vReqdeptcd = model.getValue(cmb_reqdeptcd.attribute("ref" )); model.setValue("/root/send/reqmst/instcd" , model.getValue(opt_instcd.attribute("ref" ))); model.setValue("/root/send/reqmst/reqdeptcd" , model.getValue(cmb_reqdeptcd.attribute("ref" ))); grd_reqset.fixedcellcheckbox(0, grd_reqset.colRef("select"),false) = true; misfGridInit(grd_reqset); misfGridInit(grd_setlist); submit("TRRSD00211"); if (grd_setlist.rows < 2) return; if (model.getValue(grd_setlist.nodeset + "["+ 1 + "]/reqdeptcd" ) =="") return; grd_setlist.row = 1; fReqSetRead(grd_setlist.row); misfMsterDetailRetrieve(); } // 부서 청구SET 물품 function fReqSetRead(pRow) { model.setValue("/root/send/reqset/instcd" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/instcd" )); model.setValue("/root/send/reqset/reqdeptcd" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/reqdeptcd" )); model.setValue("/root/send/reqset/reqprid" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/reqprid" )); model.setValue("/root/send/reqset/goodsetcd" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/goodsetcd" )); model.setValue("/root/send/reqset/goodsetnm" , model.getValue(grd_setlist.nodeset + "["+ pRow + "]/goodsetnm" )); misfGridInit(grd_reqset); submit("TRRSD00210"); // 청구마감일자 조회 purcbaseweb } /** * @ver : 2010-10-17 * @desc : 선택물품을 적용 * @param : * @return : * @--------------------------------------------------- */ function fSelectDataApply() { var node = instance1.selectNodes("/root/main/list/goodreq/goodreqlist"); if(node.length == 0){ model.removeNodeset("/root/main/list/goodreq/goodreqlist"); model.makeNode("/root/main/list/goodreq/goodreqlist") copyNodesetType(grd_goodreq.nodeset,grd_goodlist.nodeset+ "[chk ='true']","replace"); grd_goodreq.refresh(); var nodelist = instance1.selectNodes("/root/main/list/goodreq/goodreqlist"); for (var row = 1 ; row <= nodelist.length; row++) { grd_goodreq.rowStatus(row)="1"; grd_goodreq.cellstyle("background-color",row,grd_goodreq.colRef("reqpackqty"),row,grd_goodreq.colRef("reqpackqty")) = "#ffff99"; //grd_goodreq.valueMatrix(row,grd_goodreq.colRef("reqseqno")) = fGetMaxReqNo(); } }else{ var addRow = grd_goodreq.rows - grd_goodreq.fixedRows; if(model.getValue(grd_goodreq.nodeset + "[" + addRow + "]/goodcd").length > 0){ copyNodesetType(grd_goodreq.nodeset,grd_goodlist.nodeset+ "[chk ='true']","after"); }else{ copyNodesetType(grd_goodreq.nodeset,grd_goodlist.nodeset+ "[chk ='true']","replace"); } grd_goodreq.refresh(); var nodelist = instance1.selectNodes("/root/main/list/goodreq/goodreqlist"); for (var row = 1; row <=nodelist.length; row++) { var chk = grd_goodreq.valueMatrix(row,grd_goodreq.colRef("chk")); if(chk=="true"){ grd_goodreq.rowStatus(row)="1"; //grd_goodreq.valueMatrix(row,grd_goodreq.colRef("reqseqno")) = fGetMaxReqNo(); grd_goodreq.cellstyle("background-color",row,grd_goodreq.colRef("reqpackqty"),row,grd_goodreq.colRef("reqpackqty")) = "#ffff99"; } } } var goodnode = instance1.selectNodes("/root/main/GoodLists/goodlist"); for (var gRow = 1; gRow <= goodnode.length; gRow++) { grd_goodlist.valueMatrix(gRow,grd_goodlist.colRef("chk"))="false"; } ///////////2016년 12월29일 김치국 var Sacnt = instance1.selectNodes("/root/main/list/goodreq/goodreqlist"); for (var row = 1; row <= Sacnt.length; row++) { var Sreqseqno = model.getValue("/root/main/list/goodreq/goodreqlist["+row+"]/reqseqno"); var Sreokqty = model.getValue("/root/main/list/goodreq/goodreqlist["+row+"]/reokqty"); if ((Sreqseqno == null || Sreqseqno == "" || Sreqseqno == 0 ) && ( Sreokqty == 0 )) { model.removeNodeset("/root/send/safedata"); var Sgoodcd = model.getValue("/root/main/list/goodreq/goodreqlist["+row+"]/goodcd"); var Slrgcd = model.getValue("/root/main/list/goodreq/goodreqlist["+row+"]/lrgcd"); var Sreqdeptcd = model.getValue("/root/send/goodlist/reqdeptcd"); ////////////////////// // 각 탭별 약국 재고 조회 model.makeValue("/root/send/reqdata/flag" ,"1"); model.makeValue("/root/send/reqdata/instcd" ,getUserInfo("dutplceinstcd")); model.makeValue("/root/send/reqdata/stkdeptcd",model.getValue("/root/send/goodlist/reqdeptcd")); model.makeValue("/root/send/reqdata/stofrdd" , getCurrentDate()); model.makeValue("/root/send/reqdata/lrgcd" ,Slrgcd); model.makeValue("/root/send/reqdata/goodcd" ,Sgoodcd); model.makeValue("/root/send/reqdata/mngtcls" ,""); //submit("TRRSD10111"); submit("TRRST07001", false); var Sreqdeptcd = model.getValue("/root/send/goodlist/reqdeptcd"); var Sdept1 = model.getValue("/root/main/drugstatsinfo/init/benode_clsstocinfo/clsstoclist/depthngnm1"); var Sdept2 = model.getValue("/root/main/drugstatsinfo/init/benode_clsstocinfo/clsstoclist/depthngnm2"); var Sdept3 = model.getValue("/root/main/drugstatsinfo/init/benode_clsstocinfo/clsstoclist/depthngnm3"); var Sdept4 = model.getValue("/root/main/drugstatsinfo/init/benode_clsstocinfo/clsstoclist/depthngnm4"); if (Sreqdeptcd == "3242400000") { model.setValue("/root/main/list/goodreq/goodreqlist["+row+"]/stocqty",Sdept1); } else if (Sreqdeptcd == "3240300000") { model.setValue("/root/main/list/goodreq/goodreqlist["+row+"]/stocqty",Sdept2); } else if (Sreqdeptcd == "3240400000") { model.setValue("/root/main/list/goodreq/goodreqlist["+row+"]/stocqty",Sdept3); } else if (Sreqdeptcd == "3240807000") { model.setValue("/root/main/list/goodreq/goodreqlist["+row+"]/stocqty",Sdept4); } //////////////각항목별 계산루틴 var Csafeqty = model.getValue("/root/main/list/goodreq/goodreqlist["+row+"]/safeqty"); if (Csafeqty == "" || isNull(Csafeqty) == true ) { Csafeqty = 0; } var Cstocqty = model.getValue("/root/main/list/goodreq/goodreqlist["+row+"]/stocqty"); if (Cstocqty == "" || isNull(Cstocqty) == true ) { Cstocqty = 0; } var Cpackperunitqty = model.getValue("/root/main/list/goodreq/goodreqlist["+row+"]/reqpackperunitqty"); if (Cpackperunitqty == "" || isNull(Cpackperunitqty) == true ) { Cpackperunitqty = 0; } var Corderunit = model.getValue("/root/main/list/goodreq/goodreqlist["+row+"]/orderunit"); if (Corderunit == "" || isNull(Corderunit) == true ) { Corderunit = 0; } var Cneedqty = Csafeqty - Cstocqty ; if (Cneedqty < 0 ) { Cneedqty = 0; } //alert("Cneedqty " + Cneedqty); //alert("Corderunit " + Corderunit); model.setValue("/root/main/list/goodreq/goodreqlist["+row+"]/needqty",Cneedqty); //alert("Cpackperunitqty " + Cpackperunitqty); var Ctemp1 = Math.ceil( Cneedqty / Cpackperunitqty); var Ctemp2 = 0 ; if (Corderunit == 0 ) { Ctemp2 = 0; }else{ Ctemp2 = Math.ceil( Ctemp1 / Corderunit); } var Ctemp3 = Math.ceil( Ctemp2 * Corderunit); //alert("Cneedqty " + Cneedqty); //alert("Ctemp1: Cneedqty / Cpackperunitqty " + Ctemp1); //alert("Ctemp2: Ctemp1 / Corderunit " + Ctemp2); //alert("Ctemp3: Ctemp2 * Corderunit " + Ctemp3); model.setValue("/root/main/list/goodreq/goodreqlist["+row+"]/cmppackqty",Ctemp3); model.setValue("/root/main/list/goodreq/goodreqlist["+row+"]/reqpackqty",Ctemp3); model.setValue("/root/main/list/goodreq/goodreqlist["+row+"]/reqqty",Ctemp3 * Cpackperunitqty); model.setValue("/root/main/list/goodreq/goodreqlist["+row+"]/reokqty",row); model.refresh(); /////// } } model.refresh(); //////////////////////// 2016년 12월 30일 김치국 } /** * @ver : 2010-10-17 * @desc : 선택물품을 적용시 같은물품 체크 * @param : * @return : * @--------------------------------------------------- */ function fSelectDataAppchk(){ var compNodeList = instance1.selectNodes(grd_goodlist.nodeset+ "[chk ='true']"); for(var currow = grd_goodreq.fixedRows ; currow < grd_goodreq.rows ; currow++){ var CompGoodcd = grd_goodreq.valueMatrix(currow , grd_goodreq.colRef("goodcd")); var compNodeSet = instance1.selectNodes(grd_goodlist.nodeset+ "[chk ='true']"); var subNode = ""; for(var j =0; j < compNodeSet.length;j++){ subNode = compNodeSet.item(j); if(subNode.selectSingleNode("goodcd").text == CompGoodcd){ messageBox(CompGoodcd+" 이 약품은 이미 적용하신 약품","I009"); return; } } } } // -------------------------------------------------- // All Size 읽어오는 함수 // -------------------------------------------------- var vAllSizeCol = 0; var vAllSizeRow = 0; var vAllSizePath = "/root/main/codelist"; var vGoodReqPath = "/root/main/list/goodreq/goodreqlist"; function fAllSizeRead(pRow, pCol, pPos) { var iClickY = pPos - 100; vAllSizeCol = pCol; vAllSizeRow = pRow; if (iClickY > 375) iClickY = iClickY - 319; grp_allsize.attribute("top") = iClickY+ "px"; grp_allsize.attribute("visibility") = "visible" ; model.setValue("/root/send/allsize/instcd", model.getValue(opt_instcd.attribute("ref" ))); model.setValue("/root/send/allsize/goodcd", model.getValue(grd_goodreq.nodeset + "[" + pRow + "]/goodcd")); submit("TRRSD00281"); grp_allsize.refresh(); } // All Size 선택 function fAllSizeSelect() { grp_allsize.attribute("visibility") = "hidden" ; var vQty = "0"; var vSize = ""; var vSpec = ""; var vModel = ""; var vCheck = ""; var vPath = ""; var vTarget = ""; var vSource = ""; var vGoodcd = model.getValue(vGoodReqPath+"["+(vAllSizeRow)+"]/goodcd"); for (var i = 1; i < grd_codelist.rows; i++) { if (model.getValue(vAllSizePath+"["+i+"]/chk") == "true") { vSize = model.getValue(vAllSizePath+"["+ i +"]/allsizespecid"); vSpec = model.getValue(vAllSizePath+"["+ i +"]/goodspec" ); vModel = model.getValue(vAllSizePath+"["+ i +"]/goodmodel" ); vQty = model.getValue(vAllSizePath+"["+ i +"]/qty" ); if (model.getValue(vGoodReqPath +"[goodcd='"+ vGoodcd+"' and allsizespecid='"+vSize+"']" +"/goodcd") == "") { if (vCheck == "") { vCheck = "Y"; vTarget = vGoodReqPath+"["+(vAllSizeRow)+"]" ; if (grd_goodreq.rowStatus(vAllSizeRow) == 0) grd_goodreq.rowStatus(vAllSizeRow) = 2 ; } else { misfGridIUD(grd_goodreq,"A"); addRow = grd_goodreq.rows - grd_goodreq.fixedRows; fDefaultSetting(addRow); vTarget = grd_goodreq.nodeset + "[" + addRow + "]/"; vSource = vGoodReqPath + "[" + vAllSizeRow + "]/"; fSettingGoodData(vTarget, vSource, "basevol", "requnit", "S"); grd_goodreq.cellstyle("background-color" , addRow, 9) = "#FFFF00"; } } else { vPath = vGoodReqPath+"[goodcd='"+ vGoodcd+"' and allsizespecid='"+vSize+"']"; } // model.setValue(vTarget + "/allsizeyn" , "Y" ); model.setValue(vTarget + "/allsizespecid" , vSize ); model.setValue(vTarget + "/goodspec" , vSpec ); model.setValue(vTarget + "/goodmodel" , vModel); if (vQty != "" && vQty != "0") { model.setValue(vTarget + "/stocqty" , vQty ); } } } grd_goodreq.refresh(); } /** * @ver : 2010-10-17 * @desc : 신규 체크박스 클릭시 * @param : * @return : * @--------------------------------------------------- */ function fNewReqNo() { if ( model.getValue(chk_reqnonew.attribute("ref")) == "Y" ){ if (grd_goodreq.rows < 2) return; RetCls = messageBox("현재일자로 신규 생성합니다","Q003"); if ( RetCls == 6){ model.setValue(chk_reqnonew.attribute("ref"), "Y"); // reqnonew 인스턴스값이 <> N Y 으로 나와서 해당부분에서 처리함(문제발생시 if문 삭제) var ReqNo = model.getValue("/root/main/DeptReqnoLists/reqnolist/reqno"); var reqnodelist = instance1.selectNodes("/root/main/DeptReqnoLists/reqnolist").length; var MaxReqno=""; var comboItemNodeSet =""; for(var k =reqnodelist;k > 0;k-- ){ if(k == reqnodelist){ MaxReqno = model.getValue("/root/main/DeptReqnoLists/reqnolist["+k+"]/reqno"); comboItemNodeSet = "/root/main/DeptReqnoLists/reqnolist["+k+"]"; } break; } var comboValueRef = "reqno"; var itemNode = instance1.createNode("element", instance1.selectSingleNode(comboItemNodeSet).nodeName, ""); var valueNode = instance1.createNode("element", comboValueRef, ""); valueNode.value = "000"+(parseInt(MaxReqno)+1); itemNode.appendChild(valueNode); var destNode = instance1.selectSingleNode(comboItemNodeSet); var pDestNode = destNode.parentNode; pDestNode.insertAfter(itemNode, destNode); model.setValue("/root/send/goodreq/reqno","000"+(parseInt(MaxReqno)+1)); cmb_reqno.dispatch("xforms-value-changed"); }else if ( RetCls == 7){ model.setValue(chk_reqnonew.attribute("ref"), ""); chk_reqnonew.refresh(); return; } }else{ fDeptReqNoQuery(); } } // 신규 Check 시 작업구분 function fNewReqNoVisibility() { if ( model.getValue(chk_reqnonew.attribute("ref")) == "Y") { // cmb_reqno.disabled = true; ipt_reqdd.attribute("visibility") = "hidden"; ipt_reqddnew.attribute("visibility") = "visible" ; // cmb_reqno.attribute("visibility") = "hidden" ; // cmb_hidden.attribute("visibility") = "visible" ; model.setValue(ipt_reqddnew.attribute("ref"), getCurrentDate() ); //신규로 체크되면 무조건 오늘날짜로 셋팅된다 } else { // cmb_reqno.disabled = false; ipt_reqddnew.attribute("visibility") = "hidden"; ipt_reqdd.attribute("visibility") = "visible" ; // cmb_reqno.attribute("visibility") = "visible" ; // cmb_hidden.attribute("visibility") = "hidden" ; } model.refresh(); } // function fSettingGoodData(pTarget, pSource, pUserqtynm, pRequnit, pCls) { var vReqDept = model.getValue(cmb_reqdeptcd.attribute("ref" )); // 청구부서 var vReqprid = model.getValue(cmb_reqpridflag.attribute("ref")); // 청구주기 vReqAuth = fPurcAuthInfoRow(vReqDept,vReqprid, model.getValue(pSource + "reqflag")); // 권한 Check model.setValue(pTarget + "goodcd" , model.getValue(pSource + "goodcd" )); model.setValue(pTarget + "goodnm" , model.getValue(pSource + "goodnm" )); model.setValue(pTarget + "goodspec" , model.getValue(pSource + "goodspec" )); model.setValue(pTarget + "reqflag" , model.getValue(pSource + "reqflag" )); model.setValue(pTarget + "goodflag" , model.getValue(pSource + "goodflag" )); model.setValue(pTarget + "goodmodel" , model.getValue(pSource + "goodmodel" )); model.setValue(pTarget + "prodcmpynm" , model.getValue(pSource + "prodcmpynm" )); model.setValue(pTarget + "purcunit" , model.getValue(pSource + "purcunit" )); model.setValue(pTarget + "purcunit" , model.getValue(pSource + "purcunit" )); model.setValue(pTarget + "basevol" , model.getValue(pSource + pUserqtynm )); model.setValue(pTarget + "stocqty" , 0 ); model.setValue(pTarget + "reqqty" , model.getValue(pSource + pUserqtynm )); model.setValue(pTarget + "reqauth" , vReqAuth ); // --------------------------------------------------------------------------------- // 청구량 계산 // --------------------------------------------------------------------------------- // model.setValue(pTarget + "basevol" , model.getValue(pSource + "minexch" )); // basevol = model.getValue(pTarget + "basevol"); // stocqty = grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("stocqty")); // reqqty = basevol - stocqty; // grd_goodreq.valueMatrix(grd_goodreq.row , grd_goodreq.colRef("reqqty")) =reqqty; // --------------------------------------------------------------------------------- model.setValue(pTarget + "requnit" , model.getValue(pSource + pRequnit )); model.setValue(pTarget + "minexch" , model.getValue(pSource + "minexch" )); model.setValue(pTarget + "ddavguseqty" , model.getValue(pSource + "ddavguseqty" )); model.setValue(pTarget + "exchqty" , model.getValue(pSource + "exchqty" )); //model.setValue(pTarget + "reqmthdflag" , model.getValue(pSource + "reqmthd" )); model.setValue(pTarget + "reqmthdflag" , "3" ); model.setValue(pTarget + "allsizeyn" , model.getValue(pSource + "allsizeyn" )); model.setValue(pTarget + "reqcollcdeptcd", model.getValue(pSource + "reqcollcdeptcd")); model.setValue(pTarget + "setunit" , model.getValue(pSource + "setunit" )); model.setValue(pTarget + "reqpackqty" , 0 ); if(model.getValue(pSource + "goodflag")=="PH"){ model.setValue(pTarget + "reqpackunit" , model.getValue(pSource + "purcunit" )); model.setValue(pTarget + "reqpackperunitqty" , model.getValue(pSource + "exchqty" )); }else{ model.setValue(pTarget + "reqpackperunitqty" , 0); } if (pCls == "S") { model.setValue(pTarget + "delivedeptcd", model.getValue(pSource + "delivedeptcd")); } else { model.setValue(pTarget + "delivedeptcd", model.getValue(pSource + "reqfnldeptcd")); } // if (model.getValue(pTarget + "delivedeptcd") =="") { model.setValue(pTarget + "delivedeptcd", gPurcDeptcd); } // model.setValue(pTarget + "rgstqty" , "0" ); if (vReqAuth == "2") { misfSetReadOnlyCol(grd_goodreq, "deptaprvyn", false); }else{ misfSetReadOnlyCol(grd_goodreq, "deptaprvyn", true); } } /** * @ver : 2010-10-17 * @desc : 물품검색 TAB 클릭시 * @param : * @return : * @--------------------------------------------------- */ function fGoodListReady(pGoodCd, pGoodName) { misfGridInit(grd_goodlist); //misfComboComCdList('R0025', cmb_goodflag,"Y"); //물품구분 fGoodListKeySet(); // 물품검색 기본 KEY SET // ------------------------------------------------------------------------------------------- // sql문에 청구부서별 안전재고를 가져와야한다. // 프로그램 call시 변경해야한다. 인자값이 없을경우 해당 user값으로 setting한다. // ------------------------------------------------------------------------------------------- if (model.getValue(PURTARGET_NODE + "/reqdeptcd").length == 0 ) model.setValue("/root/send/goodlist/reqdeptcd", getUserInfo("dutplcecd")); else model.setValue("/root/send/goodlist/reqdeptcd", model.getValue(cmb_reqdeptcd.attribute("ref"))); // -------------------------------------------------------------------------- // 영양팀 명칭검색으로 이 window 가 open시 기본값 셋팅한다. // -------------------------------------------------------------------------- if (pGoodCd.length > 0) { model.setValue("/root/send/goodlist/goodcd", pGoodCd); model.refresh(); } else if (pGoodName.length > 0) { model.setValue("/root/send/goodlist/goodnm", pGoodName); model.refresh(); } } /** * @ver : 2010-10-17 * @desc : 물품검색 기본 KEY SET * @param : * @return : * @--------------------------------------------------- */ function fGoodListKeySet() { model.setValue("/root/send/goodlist/lrgcd" , ""); model.setValue("/root/send/goodlist/mdlcd" , ""); model.setValue("/root/send/goodlist/instcd" , model.getValue(opt_instcd.attribute("ref" ))); model.setValue("/root/send/goodlist/reqprid" , model.getValue(cmb_reqpridflag.attribute("ref"))); model.setValue("/root/send/goodlist/goodflag", model.getValue(cmb_goodflag.attribute("ref" ))); model.setValue("/root/send/goodlist/instcdnm" , model.getValue(opt_instcdnm.attribute("ref")) ); model.setValue("/root/send/goodlist/reqpridnm" , cmb_reqpridflag.label); } /** * @ver : 2010-10-17 * @desc : 물품검색 조회 * @param : * @return : * @--------------------------------------------------- */ function fGoodListSearch() { misfGridInit(grd_goodlist); model.setValue( tmpreqdeptcd.attribute("ref") , model.getValue(cmb_reqdeptcd.attribute("ref")) ); //청구부서 물품조회시 추가하는 부분 if(model.getValue(opt_instcd.attribute("ref")).length == 0 )return; if (model.getValue("/root/send/goodnm") != "") { model.setValue("/root/send/indexnm",""); } model.setValue("/root/send/goodlist/reqprid" , ""); model.setValue("/root/send/goodlist/instcd" , model.getValue(opt_instcd.attribute("ref"))); model.setValue("/root/send/goodlist/goodflag", model.getValue(cmb_goodflag.attribute("ref"))); //작업구분에 따라서 일반청구인지 처방집계인지 구분 //청구와 반납일경우는 일반청구 즉 reqcheck Y //상비품청구 와 상비품반납일 경우는 처방집계 즉 reqcheck null model.setValue("/root/send/goodlist/workflag" , "N"); if (model.getValue(cmb_workflag.attribute("ref")) ==1 || model.getValue(cmb_workflag.attribute("ref")) ==2 || model.getValue(cmb_workflag.attribute("ref")) ==6 ) { model.setValue("/root/send/goodlist/reqcheck" , "Y"); //청구화면임을 서버에 알리는 Key 값 ( -- 1:일반청구 / 2:일반청구반납 / 6:처방청구(작업구분이 처방 청구라도 행 추가 시 작업 구분을 "1" 일반청구로 지정 ) } else if (model.getValue(cmb_workflag.attribute("ref")) ==3 || model.getValue(cmb_workflag.attribute("ref")) ==4 || model.getValue(cmb_workflag.attribute("ref")) ==5) { model.setValue("/root/send/goodlist/reqcheck" , ""); //청구화면임을 서버에 알리는 Key 값 model.setValue("/root/send/goodlist/workflag" , "A"); } else { model.setValue("/root/send/goodlist/reqcheck" , "Y"); //청구화면임을 서버에 알리는 Key 값 } if(submit("TRRSD10121")){ } } // -------------------------------------------------- // 물품찾기 처리하는 함수 // -------------------------------------------------- function fReqFlagCheck() { //청구권/승인권 부서 조회. rszfReqDeptGetComboList("cmb_reqdeptcd", model.getValue(opt_instcd.attribute("ref")), getUserInfo("userid"), cmb_reqflag.value); //rszfReqDeptGetComboList("cmb_reqdeptcd", model.getValue(opt_instcd.attribute("ref")), '80030647', 'S'); //청구부서의 순서가 0번째인것을 선택하는데 여기서 부서와 비교해서 cmb_reqdeptcd.select()를 //해당부서와 동일하게 해서 보여지도록 한다 model.setValue(cmb_reqpridflag.attribute("ref"), ""); rszfComboReqPridList(cmb_reqpridflag,model.getValue(opt_instcd.attribute("ref")),model.getValue(cmb_reqflag.attribute("ref"))); cmb_reqpridflag.refresh(); cmb_reqpridflag.select(0); // ---------------------------------------------------------------------------------------------------- // 위의 select(0); 에서 cmb_reqpridflag value가 있으면 reqpridflag xforms-value_changed 가 발생한다. // ---------------------------------------------------------------------------------------------------- model.setValue(opt_goodflag.attribute("ref"), rszfGetGoodFlagByReqFlag(model.getValue(opt_instcd.attribute("ref")),model.getValue(cmb_reqflag.attribute("ref")))); fGoodListKeySet(); // 물품검색 기본 KEY SET if (model.getValue(cmb_reqpridflag.attribute("ref")).length == 0 ) { fSetReqAuth(); btn_search.dispatch("DOMActivate"); } //청구 마지막 일자 조회. fLastDaySearch(); //청구일자 기한체크. if (fLastDayCheck()) { messageBox("불출부서의 청구일자기한을 벗어났습니다. \n 다시 입력 하세요.", ""); model.setValue(ipt_reqdd.attribute("ref"), model.getValue(ipt_todd.attribute("ref")) ); return; } } /** * @ver : 2010-10-17 * @desc : 청구부서 Set * @param : * @return : * @--------------------------------------------------- */ function fReqdeptCopy(){ var cPath = "/root/init/CopyData" var sPath = "/root/main/ReqpsnLists/reqpsnlist"; var tPath = "/root/init/ReqDeptLists/reqdeptlist"; var iDataCnt = getNodesetCount(sPath); if (iDataCnt < 1) { return; } model.removeNodeset(tPath); var iDataCnt = getNodesetCount(sPath); var Idx = 1; // ----------------------------------------------------------------------------------------------- // 청구부서를 세션의 부서와 비교해서 cmb_reqdeptcd.select()를 // 해당부서와 동일하게 해서 보여지도록 한다. 부서가 없을 경우 0번째 부서가 콤보에 보여짐 // 사용자의 세션부서가 청구부서의 젤 상단에 위치하도록 노드셋 데이터 수정 하는 부분 // ----------------------------------------------------------------------------------------------- if (model.getValue(sPath+"[reqdeptcd='"+ getUserInfo("dutplcecd") + "']" +"/reqdeptnm") !="") { model.setValue(cPath+"/value",model.getValue(sPath+"[reqdeptcd='"+ getUserInfo("dutplcecd") + "']" +"/reqdeptcd")); model.setValue(cPath+"/label",model.getValue(sPath+"[reqdeptcd='"+ getUserInfo("dutplcecd") + "']" +"/reqdeptnm")); model.makeNode(tPath+"["+ Idx +"]" ); model.copyNode(tPath+"["+ Idx +"]", cPath); Idx++; } // 청구부서 Set for (var k = 1; k <= iDataCnt; k++){ vReqDept = model.getValue(sPath+"["+k+"]/reqdeptcd"); vReqDeptNm = model.getValue(sPath+"["+k+"]/reqdeptnm"); if ((vReqDeptNm != "" ) && (model.getValue(tPath+"[value='"+ vReqDept + "']" +"/value") == "") ) { model.setValue(cPath+"/value",vReqDept ); model.setValue(cPath+"/label",vReqDeptNm); model.makeNode(tPath+"["+ Idx +"]" ); model.copyNode(tPath+"["+ Idx +"]", cPath); Idx++; } //end if } //end for cmb_reqdeptcd.refresh(); cmb_reqdeptcd.select(0); fReqpridCopy(); // 청구 주기Set // fDeptReqNoQuery(); // 청구부서별 청구번호를 조회한다 fReqpridCopy 안에서 실행 제외 시킴 [20090129 YYJ] } /** * @ver : 2010-10-17 * @desc : 청구 주기Set * @param : * @return : * @--------------------------------------------------- */ function fReqpridCopy(){ var cPath = "/root/init/CopyData" var sPath = "/root/main/ReqpsnLists/reqpsnlist"; var tPath = "/root/init/ReqpridLists/reqpridlist"; if (model.getValue(cmb_reqdeptcd.attribute("ref")).length== 0 ) { messageBox("청구부서를 " ,"C002"); model.setFocus("cmb_reqdeptcd"); return; } var iDataCnt = getNodesetCount(sPath); if (iDataCnt < 1) { return; } model.removeNodeset(tPath); var Idx = 1; var iDataCnt = getNodesetCount(sPath); var tReqDept = model.getValue(cmb_reqdeptcd.attribute("ref")); for (var k = 1; k <= iDataCnt; k++){ vReqDept = model.getValue(sPath+"["+k+"]/reqdeptcd"); if (vReqDept == tReqDept) { vReqPrid = model.getValue(sPath+"["+k+"]/reqprid"); vReqPridNm = model.getValue(sPath+"["+k+"]/reqpridnm"); if ((vReqPridNm != "" ) && (model.getValue(tPath+"[value='"+ vReqPrid + "']" +"/value") == "") ) { model.setValue(cPath+"/value",vReqPrid ); model.setValue(cPath+"/label",vReqPridNm); model.makeNode(tPath+"["+ Idx +"]" ); model.copyNode(tPath+"["+ Idx +"]", cPath); Idx++; } } } // if (model.getValue("/root/send/goodlist/purcdeptflag") == "P") { //구매부서구분 : P var codynode = instance1.selectNodes(tPath + "/*"); if (codynode.length < 1) { model.setValue(cPath+"/value","1" ); model.setValue(cPath+"/label","일"); model.makeNode(tPath+"[1]" ); model.copyNode(tPath+"[1]" , cPath); model.setValue(cPath+"/value","4" ); model.setValue(cPath+"/label","월"); model.makeNode(tPath+"[2]" ); model.copyNode(tPath+"[2]" , cPath); model.setValue(cPath+"/value","2" ); model.setValue(cPath+"/label","주"); model.makeNode(tPath+"[3]" ); model.copyNode(tPath+"[3]" , cPath); } } // cmb_reqpridflag.select(0); cmb_reqpridflag.refresh(); } // 청구승인자 Check function fPurcAuthInfo() { vPurcAuth = "1"; model.setValue(ckb_accept.attribute("ref"), ""); var sPath = "/root/main/ReqpsnLists/reqpsnlist"; var iDataCnt = getNodesetCount(sPath); if (iDataCnt < 1) { return; } model.removeNodeset(tPath); var iDataCnt = getNodesetCount(sPath); var tReqDept = model.getValue(cmb_reqdeptcd.attribute("ref" )); // 청구부서 var tReqprid = model.getValue(cmb_reqpridflag.attribute("ref")); // 청구주기 for (var k = 1; k <= iDataCnt; k++){ vReqDept = model.getValue(sPath+"["+k+"]/reqdeptcd"); // 청구부서 vReqprid = model.getValue(sPath+"["+k+"]/reqprid" ); // 청구주기 if ((vReqDept == tReqDept) && (vReqprid == tReqprid) ) { if (model.getValue(sPath+"["+k+"]/reqaprvflag") == "2") { vPurcAuth = "2"; model.setValue(ckb_accept.attribute("ref"), "Y"); break; } } } } // 청구승인자 Check Row별 Check function fPurcAuthInfoRow(pReqDept,pReqprid,pReqFlag) { var sPath = "/root/main/ReqpsnLists/reqpsnlist"; var vReqAuth = model.getValue(sPath+ "[reqdeptcd='"+ pReqDept + "' and reqprid='" + pReqprid + "' and reqflag='" + pReqFlag + "']/reqaprvflag"); // 청구권한 vReqAuth = (vReqAuth == "") ? "1" : vReqAuth; return vReqAuth; } /** * @ver : 2010-10-17 * @desc : 청구부서별 청구번호를 조회한다 * @param : * @return : * @--------------------------------------------------- */ function fDeptReqNoQuery() { //if (gReqNoReadFlag) return; //청구번호 읽기 // alert(++gcount); if (model.getValue(cmb_reqdeptcd.attribute("ref")) != "" && // 청구부서 model.getValue(cmb_reqpridflag.attribute("ref")) != "" && // 청구주기 model.getValue(ipt_reqdd.attribute("ref")) != "" && // 청구일자 model.getValue(cmb_workflag.attribute("ref")) != "" ) // 작업구분 의 값이 모두 있을 때 청구 번호를 가져온다. [20080129 YYJ] { submit("TRRSD00408"); /* if (getNodesetCount("/root/main/DeptReqnoLists/reqnolist") < 1 ){ model.setValue(chk_reqnonew.attribute("ref"), "Y"); fNewReqNoVisibility(); } else { model.setValue(chk_reqnonew.attribute("ref"), ""); fNewReqNoVisibility(); cmb_reqno.refresh(); cmb_reqno.select(0); }*/ var nodelist = instance1.selectNodes("/root/main/DeptReqnoLists/reqnolist").length; if(nodelist < 1){ model.makeValue("/root/main/DeptReqnoLists/reqnolist/reqno","0001"); } cmb_reqno.refresh(); cmb_reqno.select(0); } } // 청구 구분 Check function fReqFlagCheck(){ if(model.getValue(cmb_reqflag.attribute("ref")) == 'H'){ grd_goodreq.colHidden(grd_goodreq.colRef("rgstqty")) = false; }else{ grd_goodreq.colHidden(grd_goodreq.colRef("rgstqty")) = true; } /* 위의 select(0); 에서 cmb_reqpridflag value가 있으면 reqpridflag xforms-value_changed 가 발생한다. */ // opt_goodflag.value = rszfGetGoodFlagByReqFlag(opt_instcd.value,cmb_reqflag.value); fGoodListKeySet(); // 물품검색 기본 KEY SET if (model.getValue(cmb_reqpridflag.attribute("ref")).length == 0 ) { fSetReqAuth(); btn_search.dispatch("DOMActivate"); } //청구 마지막 일자 조회. fLastDaySearch(); //청구일자 기한체크. if(fLastDayCheck()) { messageBox("불출부서의 청구일자기한을 벗어났습니다. \n 다시 입력 하세요.", ""); model.setValue(ipt_reqdd.attribute("ref"), model.getValue(ipt_todd.attribute("ref")) ); return; } } // 청구 구분 Check function fReqFlagCheck_bak(){ if(model.getValue(cmb_reqflag.attribute("ref")) == 'H'){ grd_goodreq.colHidden(grd_goodreq.colRef("rgstqty")) = false; }else{ grd_goodreq.colHidden(grd_goodreq.colRef("rgstqty")) = true; } //청구부서 청구권/승인권 부서 조회. rszfReqDeptGetComboList("cmb_reqdeptcd", model.getValue(opt_instcd.attribute("ref")), getUserInfo("userid"), model.getValue(cmb_reqflag.attribute("ref"))); model.setValue(cmb_reqpridflag.attribute("ref"), ""); rszfComboReqPridList(cmb_reqpridflag,model.getValue(opt_instcd.attribute("ref")),model.getValue(cmb_reqflag.attribute("ref"))); cmb_reqpridflag.refresh(); cmb_reqpridflag.select(0); /* 위의 select(0); 에서 cmb_reqpridflag value가 있으면 reqpridflag xforms-value_changed 가 발생한다. */ model.setValue(opt_goodflag.attribute("ref") , rszfGetGoodFlagByReqFlag(model.getValue(opt_instcd.attribute("ref")),model.getValue(cmb_reqflag.attribute("ref"))) ); fGoodListKeySet(); // 물품검색 기본 KEY SET if (model.getValue(cmb_reqpridflag.attribute("ref")).length == 0 ) { fSetReqAuth(); //btn_search.dispatch("DOMActivate"); } //청구 마지막 일자 조회. fLastDaySearch(); //청구일자 기한체크. if(fLastDayCheck()) { messageBox("불출부서의 청구일자기한을 벗어났습니다. \n 다시 입력 하세요.", ""); model.setValue(ipt_reqdd.attribute("ref"), model.getValue(ipt_todd.attribute("ref")) ); return; } } // 청구구분 var tReqFlagData = "A." // 01 Y 의료소모품 + "B." // 02 Z 일반소모품 + "C." // 03 K 의료비품 + "D." // 04 G 일반비품 + "E." // 05 P 약품및재료 + "F." // 06 P 제제약품 + "G." // 07 E 장비 + "H." // 08 P 수액 + "I." // 09 P 조영제 + "S." // 10 B 수리관리 + "X." // 11 T 교환물품 + "Y." // 12 T 청구물품 + "Z" ; // 13 T 멸균의뢰 var tReqFlag = tReqFlagData.split("."); // 물품구분 // [2010.08.26]AS-IS 코드 TO_BE 코드 전환을 위한 물품구분 변경 (goodflag= P) => (goodflag= PH) var tGoodFlagData = "Y." // 01 의료소모품 + "Z." // 02 일반소모품 + "U." // 03 의료비품 + "GE." // 04 일반비품 + "PH." // 05 약품 + "PH." // 06 약품 + "PH." // 07 약품및재료 + "PH." // 08 약품 + "PH." // 09 약품 + "BC." // 10 수리부품 + "TM." // 11 공급실물품 + "TM." // 12 공급실물품 + "TM" ; // 13 공급실물품 var tGoodFlag = tGoodFlagData.split("."); var tPath = "/root/init/cmb_goodflag"; var sPath = "/root/init/cmb_goodflagcopy"; // function fReqFagChange(pReqFlag) { for (i = 0; i < tReqFlag.length; i++) { if (tReqFlag[i] == pReqFlag) { model.setValue(cmb_goodflag.attribute("ref"), tGoodFlag[i] ); // alert(tGoodFlag[i]); cmb_goodflag.refresh(); break; } } // cmb_goodflag.select(0); //청구구분 } /** * @ver : 2010-10-17 * @desc : 부서찾기 기능 설정(구매팀일경우에만),2010-10-18 물품구분 약국담당자일 때 약품으로 셋팅 * @param : * @return : * @--------------------------------------------------- */ function fSetTempDept(goodflag) { /* if ( gPurcDeptcd == getUserInfo("dutplcecd") ){ if (cmb_goodflag.length> 0) cmb_goodflag.select(0); cpt_dept.attribute("visibility") = "visible"; ipt_tempdeptcd.attribute("visibility") = "visible"; ipt_tempdeptnm.attribute("visibility") = "visible"; btn_tempdeptcd.attribute("visibility") = "visible"; model.setValue("/root/send/goodlist/purcdeptflag" , "P"); //구매부서구분 : P }else { if((getUserInfo("dutplcecd")=="3242400000")||(getUserInfo("dutplcecd")=="3240300000")||(getUserInfo("dutplcecd")=="3240400000") ||(getUserInfo("dutplcecd")=="3240807000")){ grd_goodreq.colHidden(grd_goodreq.colRef("exchqty")) = false; grd_goodreq.colHidden(grd_goodreq.colRef("reqpackqty")) = false; grd_goodreq.colHidden(grd_goodreq.colRef("reqpackunit")) = false; grd_goodreq.colHidden(grd_goodreq.colRef("reqqty")) = true; grd_goodreq.colHidden(grd_goodreq.colRef("requnit")) = true; model.setValue("/root/send/goodreq/goodflag","PH"); model.setValue("/root/init/goodflag" ,"PH"); cmb_goodflag.dispatch("xforms-value-changed"); cap_edicd.attribute("visibility") = "hidden"; ipt_edicd.attribute("visibility") = "hidden"; cap_mngtcls.attribute("visibility") = "visible"; cmb_mngtcls.attribute("visibility") = "visible"; }else{ if (cmb_goodflag.length> 0) cmb_goodflag.select(0); grd_goodreq.colHidden(grd_goodreq.colRef("exchqty")) = true; grd_goodreq.colHidden(grd_goodreq.colRef("reqpackqty")) = true; grd_goodreq.colHidden(grd_goodreq.colRef("reqpackunit")) = true; grd_goodreq.colHidden(grd_goodreq.colRef("reqqty")) = false; grd_goodreq.colHidden(grd_goodreq.colRef("requnit")) = false; } cpt_dept.attribute("visibility") = "hidden"; ipt_tempdeptcd.attribute("visibility") = "hidden"; ipt_tempdeptnm.attribute("visibility") = "hidden"; btn_tempdeptcd.attribute("visibility") = "hidden"; model.setValue("/root/send/goodlist/purcdeptflag" , "X"); //구매부서구분 : P }*/ if((getUserInfo("dutplcecd")=="3242400000")||(getUserInfo("dutplcecd")=="3240300000")||(getUserInfo("dutplcecd")=="3240400000") ||(getUserInfo("dutplcecd")=="3240807000")||(goodflag=="PH")){ model.setValue("/root/send/goodreq/goodflag","PH"); model.setValue("/root/init/goodflag" ,"PH"); rszfLMSComboList(model.getValue(cmb_goodflag.attribute("ref")), "", "", "ipt_lrgcd", "", "L","Y"); model.setValue("/root/send/goodlist/purcdeptflag" , "X"); //구매부서구분 : P }else{ //if (cmb_goodflag.length> 0) cmb_goodflag.select(0); grd_goodreq.colHidden(grd_goodreq.colRef("exchqty")) = true; grd_goodreq.colHidden(grd_goodreq.colRef("reqpackqty")) = true; grd_goodreq.colHidden(grd_goodreq.colRef("reqpackunit")) = true; grd_goodreq.colHidden(grd_goodreq.colRef("reqqty")) = false; grd_goodreq.colHidden(grd_goodreq.colRef("requnit")) = false; if (goodflag=="init"){ model.setValue("/root/init/goodflag" ,model.getValue("/root/init/cmb_goodflag/comcodelist/cdid[1]")); cmb_goodflag.refresh(); model.setValue("/root/send/goodreq/goodflag" ,cmb_goodflag.value); rszfLMSComboList(model.getValue(cmb_goodflag.attribute("ref")), "", "", "ipt_lrgcd", "", "L","Y"); }else{ model.setValue("/root/send/goodreq/goodflag" ,cmb_goodflag.value); model.setValue("/root/init/goodflag" ,cmb_goodflag.value); } cap_edicd.attribute("visibility") = "visible"; ipt_edicd.attribute("visibility") = "visible"; cap_mngtcls.attribute("visibility") = "hidden"; cmb_mngtcls.attribute("visibility") = "hidden"; } // cpt_dept.attribute("visibility") = "hidden"; //ipt_tempdeptcd.attribute("visibility") = "hidden"; // ipt_tempdeptnm.attribute("visibility") = "hidden"; // btn_tempdeptcd.attribute("visibility") = "hidden"; model.setValue("/root/send/goodlist/purcdeptflag" , "X"); //구매부서구분 : P } //조회해온 부서를 청구부서 콤보에 붙이는 함수 function fAddReqDeptcdCombo() { //tempdeptcd에 값을 reqdetpcd(청구부서) 콤보에 값을 부어준다 (makevaluie) var cPath = "/root/init/CopyData" //임시카피노드 var sPath = "/root/tempdept"; //서버에서가져온부서정보노드 var tPath = "/root/init/ReqDeptLists/reqdeptlist"; //청구부서 콤보노드 var iDataCnt = getNodesetCount(sPath); //서버에서 가져온 부서정보노드(무조건 1 아님 0) if ( iDataCnt < 1) { return; } //model.removeNodeset(tPath); var ComboDataCnt = parseInt( getNodesetCount(tPath) ) +1 ; //콤보에 노드길이(숫자형으로형변환) var vTempDeptCd = model.getValue(sPath+"[1]/tempdeptcd"); var vTempDeptNm = model.getValue(sPath+"[1]/tempdeptnm"); if ( vTempDeptCd != "" ) { model.setValue(cPath+"/value" , vTempDeptCd ); model.setValue(cPath+"/label" , vTempDeptNm ); model.makeNode(tPath+"["+ComboDataCnt +"]" ); model.copyNode(tPath + "[" +ComboDataCnt +"]", cPath); //노드에 데이터 부어줌 cmb_reqdeptcd.refresh(); cmb_reqdeptcd.select(ComboDataCnt-1); } cmb_reqdeptcd.refresh(); } function fSapReqSetting (fValue) { var vPath = "/root/init/workflag/workflaglist"; var iDataCnt = parseInt( getNodesetCount(vPath) ); // 작업 구분 하위를 가져옴 var updtdata = getGridUpdateData(grd_goodreq); if ( updtdata != "") { var ret = messageBox("그리드에 작업 중인 내용이 있습니다. 수액청구를 변경","Q003"); if (ret != 6) { if( fValue == "Y" ) ckb_sapreq.value = "N"; else ckb_sapreq.value = "Y"; ckb_sapreq.refresh(); return; } else { misfGridInit(grd_goodreq); fSapReqSetting (fValue); if (cmb_reqno.value != "") btn_search.dispatch("DOMActivate"); } // if not OK }else{ if( fValue == "Y" || model.getXPathValue(vPath+"[value='6']/value") =="" ) { cmb_workflag.disabled="true" ; model.makeValue(vPath+"[" +(iDataCnt+1)+ "]/value", "6" ); // 작업구분 처방 청구 추가 model.makeValue(vPath+"[" +(iDataCnt+1)+ "]/label", "처방청구"); // 작업구분 처방 청구 추가 model.setValue("/root/send/goodreq/reqflag" , "H" ); // 청구방법 수액 cmb_workflag.refresh(); cmb_workflag.select(iDataCnt); } else if (fValue != "Y" || model.getXPathValue(vPath+"[value='6']/value") !="") { cmb_workflag.disabled="false" ; model.removeNodeset(vPath+"["+ model.getXPathValue(vPath+"[value='6']/value") +"]"); model.setValue("/root/send/goodreq/reqflag",""); cmb_workflag.select(0); } } // if updtdata } /** * @ver : 2010-10-17 * @desc : 조회버튼 Click 처리 * @param : * @return : * @--------------------------------------------------- */ function fSearchButtonClick(fValue) { if(fCheckRetrieveData(false) == false)return; //misfGridInit(grd_goodreq); if(model.getValue(cmb_reqno.attribute("ref")).length == 0) model.setValue(ipt_reqdd.attribute("ref") , getCurrentDate()); // model.setValue("/root/send/goodreq/retrmaxreqnoyn","Y"); //if (model.getValue(cmb_reqno.attribute("ref")) == "") return; // misfMsterDetailRetrieve(); if(submit("TRRSD10122")){ for (var fRow = grd_goodreq.fixedRows; fRow < grd_goodreq.rows ; fRow++ ) { grd_goodreq.cellstyle("background-color",fRow,grd_goodreq.colRef("reqpackqty"),fRow,grd_goodreq.colRef("reqpackqty")) = "#ffff99"; grd_goodreq.cellstyle("background-color",fRow,grd_goodreq.colRef("orgdeliveqty"),fRow,grd_goodreq.colRef("orgdeliveqty")) = "#ccff99"; // 20120918_컬럼추가 grd_goodreq.cellstyle("background-color",fRow,grd_goodreq.colRef("stocqty"),fRow,grd_goodreq.colRef("stocqty")) = "#ccff99"; // 20120918_컬럼추가 } } // 권한여부에 따른 승인체크 설정. ///fGrantsCheck(); /* fAfterRetr(); var vAcctCnt = 0; var vReqAuth = ""; var vReqDept = model.getValue(cmb_reqdeptcd.attribute("ref" )); // 청구부서 var vReqprid = model.getValue(cmb_reqpridflag.attribute("ref")); // 청구주기 for (var fRow = grd_goodreq.fixedRows; fRow < grd_goodreq.rows ; fRow++ ) { vReqFlag = model.getValue(grd_goodreq.nodeset + "[" + fRow + "]/reqflag") ; vReqAuth = fPurcAuthInfoRow(vReqDept,vReqprid,vReqFlag); // 권한 Check model.setValue(grd_goodreq.nodeset + "[" + fRow + "]/reqauth", vReqAuth) ; if (model.getValue(grd_goodreq.nodeset + "[" + fRow + "]/allsizeyn") =="Y") { grd_goodreq.cellstyle("background-color" , fRow, 9) = "#FFFF00"; } if (grd_goodreq.valueMatrix(fRow, grd_goodreq.colRef("acptflag")) == "Y" || grd_goodreq.valueMatrix(fRow, grd_goodreq.colRef("acptflag")) == "R" ) { grd_goodreq.isReadOnly(fRow, grd_goodreq.fixedCols-1, fRow, grd_goodreq.cols-1) = true; } else { if (vReqAuth =="2") { grd_goodreq.isReadOnly( fRow , grd_goodreq.colRef("deptaprvyn"), fRow , grd_goodreq.colRef("deptaprvyn")) = false; // ReadOnly false } else { vAcctCnt++; if (gPurcDeptcd != getUserInfo("dutplcecd") ){ grd_goodreq.isReadOnly( fRow , grd_goodreq.colRef("deptaprvyn"), fRow , grd_goodreq.colRef("deptaprvyn")) = true; // ReadOnly } } } } if (vAcctCnt > 0) { if (gPurcDeptcd != getUserInfo("dutplcecd") ){ ckb_accept.attribute("visibility") = "hidden"; } model.setValue(ckb_accept.attribute("ref"), "N"); } else { ckb_accept.attribute("visibility") = "visible"; } model.refresh();*/ } /** * @ver : 2010-10-17 * @desc : Data 저장 하기 위한 Check * @param : * @return : * @--------------------------------------------------- */ function fSaveData() { //if (model.getValue(sel_goodflag.attribute("ref")) != "PH") { // fConfirmSaveData(); // Data를 저장한다. //// 저장하는 부분 // return; //} // /// 마감 시간과 마감때 뿌려줄 Data를 가져다 놓음 /* model.resetInstanceNode("/root/main/messagelists/messagelist"); model.setValue("/root/send/message/instcd" , model.getValue(opt_instcd.attribute("ref"))); model.setValue("/root/send/message/goodflag", "PH"); submit("TRRSD00433"); var hDesc = ""; var HMagamTime = ""; /// 수액시간을 가져다 놓음 for (var fRow = grd_message.fixedRows; fRow < grd_message.rows; fRow++){ if (model.getValue(grd_message.nodeset +"["+ fRow +"]/reqflag") == "H" ) { //수액이 존재하면 수액마감시간을 가져다 놓는다 hDesc = model.getValue(grd_message.nodeset +"["+ fRow +"]/closdesc") +"\n" ; HMagamTime = model.getValue(grd_message.nodeset +"["+ fRow +"]/clostm" ); break; } } var vReqFlag = ""; var ReqflagE = 0 ; // 05 P 약품및재료 var ReqflagF = 0 ; // 06 P 제제약품 var ReqflagI = 0 ; // 09 P 조영제 var ReqflagH = 0 ; // 10 P 수액 if (model.getValue(chk_reqnonew.attribute("ref")) == "Y") { // vReqdd = model.getValue(ipt_reqddnew.attribute("ref")); } else { vReqdd = model.getValue(ipt_reqdd.attribute("ref")); } // for (var fRow = grd_goodreq.fixedRows; fRow < grd_goodreq.rows; fRow++){ vReqFlag = model.getValue(grd_goodreq.nodeset + "[" + fRow + "]/reqflag"); if (vReqFlag == "H"){ //수액인경우 // 만약에 수액 같은 경우에 blocking을 원하면 // 1) 현재시간을 체크 2) DB의 마감시간 체크 3) 1과2번을 비교하여 시간을 넘어가면 무조건 저장안되게 막음 if (getCurrentTime() > HMagamTime && vReqdd == getCurrentDate() && grd_goodreq.rowStatus(fRow) != "0" ){ //현재시간이 마감시간보다 크다면 무조건 Blocking messageBox(hDesc, "I"); return; } ReqflagH = 1 ; // 09 P 수액 } else { ReqflagE = (vReqFlag == "E") ? 1 : ReqflagE; // 05 P 약품및재료 ReqflagF = (vReqFlag == "F") ? 2 : ReqflagF; // 06 P 제제약품 ReqflagI = (vReqFlag == "I") ? 4 : ReqflagI; // 09 P 조영제 //if ((ReqflagE+ReqflagF+ReqflagI) == 7) break; } } lastDesc = (ReqflagH == 1) ? model.getValue(grd_message.nodeset +"[reqflag='H']/closdesc") : ""; lastDesc += (ReqflagE == 1) ? model.getValue(grd_message.nodeset +"[reqflag='E']/closdesc") : ""; lastDesc += (ReqflagF == 2) ? model.getValue(grd_message.nodeset +"[reqflag='F']/closdesc") : ""; lastDesc += (ReqflagI == 4) ? model.getValue(grd_message.nodeset +"[reqflag='I']/closdesc") : ""; if (lastDesc!=""){ messageBox(lastDesc,"I"); }*/ // fConfirmSaveData(); // Data를 저장한다. //// 저장하는 부분 } /** * @ver : 2010-10-17 * @desc : 청구 Data 저장 * @param : * @return : * @--------------------------------------------------- */ function fConfirmSaveData() { // 저장전 Data를 Check한다. if (fCheckSaveData() == false) return; model.setValue("/root/send/save/autoaprv/instcd" ,model.getValue(opt_instcd.attribute("ref") )); // 기관코드 model.setValue("/root/send/save/autoaprv/reqdeptcd",model.getValue(cmb_reqdeptcd.attribute("ref"))); // 청구부서 var vReqdd = ""; // 청구일자 /* if (model.getValue(chk_reqnonew.attribute("ref")) == "Y") { // vReqdd = model.getValue(ipt_reqddnew.attribute("ref")); } else { vReqdd = model.getValue(ipt_reqdd.attribute("ref")); } */ vReqdd = model.getValue(ipt_reqdd.attribute("ref")); model.setValue("/root/send/save/autoaprv/reqdd", vReqdd); // 청구일자 // 청구 가능 시간을 CHECK한다. // if (fCheckLimitTime(vReqdd) == false) return; // 동시 승인여부 // 일청구는 자동 승인한다. if (model.getValue(cmb_reqpridflag.attribute("ref"))=="1") { model.setValue("/root/send/save/autoaprv/autoaprvyn","Y"); } for (var fRow = grd_goodreq.fixedRows; fRow < grd_goodreq.rows; fRow++){ grd_goodreq.valueMatrix(fRow,grd_goodreq.colRef("reqpsnid")) = model.getValue("/root/init/requserno"); grd_goodreq.valueMatrix(fRow,grd_goodreq.colRef("reqdeptcd")) = model.getValue("/root/send/goodreq/reqdeptcd"); grd_goodreq.valueMatrix(fRow,grd_goodreq.colRef("reqdd")) = model.getValue("/root/send/goodreq/reqdd"); grd_goodreq.valueMatrix(fRow,grd_goodreq.colRef("reqno")) = model.getValue("/root/send/goodreq/reqno"); grd_goodreq.valueMatrix(fRow,grd_goodreq.colRef("workflag")) = model.getValue("/root/send/goodreq/workflag"); grd_goodreq.valueMatrix(fRow,grd_goodreq.colRef("reqpridflag")) = model.getValue("/root/send/goodreq/reqpridflag"); grd_goodreq.valueMatrix(fRow,grd_goodreq.colRef("deliveflag")) = "1"; grd_goodreq.valueMatrix(fRow,grd_goodreq.colRef("reqmthdflag")) = "3"; } model.setValue("/root/send/save/goodreqlist", grd_goodreq.getUpdateData()); /*if(submit("TXRSD00411")){ var ReqnoNew =model.getValue("/root/send/save/autoaprv/reqnonew"); if(ReqnoNew=="Y"){ model.setValue("/root/send/save/autoaprv/reqnonew",""); } if (model.getValue(gvErrorMsgPath + "/type") == "error") return; btn_search.dispatch("DOMActivate"); }*/ if(submit("TXRSD10101")){ var ReqnoNew =model.getValue("/root/send/save/autoaprv/reqnonew"); if(ReqnoNew=="Y"){ model.setValue("/root/send/save/autoaprv/reqnonew",""); } if (model.getValue(gvErrorMsgPath + "/type") == "error") return; fSearchButtonClick(); } } /** * @ver : 2010-12-06 * @desc : 약품일떄만 포장수량 입력시 낱개수량 자동 계산 * @param : * @return : * @---------------------------------------- */ function fCalcReqQty(){ if(grd_goodreq.col == grd_goodreq.colRef("reqpackqty")){ var exchqty = parseFloat(grd_goodreq.valueMatrix(grd_goodreq.row,grd_goodreq.colRef("reqpackperunitqty"))); var reqpackqty = parseFloat(grd_goodreq.valueMatrix(grd_goodreq.row,grd_goodreq.colRef("reqpackqty"))); var compReqpackqty = grd_goodreq.valueMatrix(grd_goodreq.row,grd_goodreq.colRef("reqpackqty")); grd_goodreq.valueMatrix(grd_goodreq.row,grd_goodreq.colRef("reqqty")) = reqpackqty*exchqty; if(isSearchString(grd_goodreq.valueMatrix(grd_goodreq.row,grd_goodreq.colRef("reqqty")), "#QNAN")){ messageBox("청구수량에 잘못된 값이 들어갔습니다.","I007"); grd_goodreq.col = grd_goodreq.colRef("reqpackqty"); grd_goodreq.editCell(); return; }else{ if(grd_goodreq.row < grd_goodreq.rows - grd_goodreq.fixedRows) { grd_goodreq.row = grd_goodreq.row + 1; grd_goodreq.select(grd_goodreq.row, grd_goodreq.colRef("reqpackqty")) = true; } } } grd_goodreq.refresh(); } /** * @ver : 2010-12-06 * @desc : 0인 수량 삭제 * @param : * @return : * @---------------------------------------- */ function fZeroReqQtyDel(){ for(var fRow = grd_goodreq.fixedRows; fRow < grd_goodreq.rows ; fRow++ ) { var reqpackqty = grd_goodreq.valueMatrix(fRow,grd_goodreq.colRef("reqpackqty")); if(reqpackqty == 0){ grd_goodreq.rowStatus(fRow)="4"; } } } /* ------------------------------------------------- */ /* ------End Of List ------------------------------- */ /* -------------------------------------------------- */