01. X-Platform학습 문서.docx

XPLATFORM_Server_License.xml

/**********************************************************************************************
 * 01. 업무구분 : 클레임관리 - 클레임반품등록
 * 02. 화면 : CRCLAA010.xfdl
 * 03. 화면설명 : 클레임반품등록
 * 04. 관련화면/서비스 : 
 * 05. 수정이력 : 
 **********************************************************************************************
 *  수정일     이  름   	사유 
 **********************************************************************************************
 *  2015-05-08   우승민  	 최초작성
 **********************************************************************************************
*/

/*==============================================================================================
* 1. Include Library JS File
*===============================================================================================*/
include "lib::commLib.xjs";
include "lib::slUtil.xjs";
include "lib::wpUtil.xjs";
/*==============================================================================================
* 2. Form전역변수 선언
*===============================================================================================*/
var RPR_NO_SEQ;
var DELRT_SLIP_NO;
var fv_toDay = gfn_getToday();
var stat = 0;
/*==============================================================================================
* 3. Form onload 처리
*===============================================================================================*/ 
function fn_onload(obj:Form, e:LoadEventInfo) {
	// 3.1 init
	gfn_init(obj);
	
	gfn_setToggleSrch([btn_toggle], ["divSrch"], ["divMain"],["divProgress"],["divBottom"]);
	fn_setShopValue();			// 4.5. 세션값에 따른 매장 정보 셋팅
	// 3.2 call onload function
	fn_setButton();				// 4.1. 버턴 초기화 or Dispaly
	fn_SetDataset();			// 4.2. DataSet 에 초기데이터 Load
	fn_setCommonCode();			// 4.3. 공통코드
	fn_setDefaultValue();		// 4.4. 기본값 설정
	fn_progressImage();
	fn_setShopCd();
	fn_checkRegiId();
}
 
/*==============================================================================================
* 4. Load 후 초기설정 및 Data Setting
*===============================================================================================*/
// 4.1. 버턴 초기화 or Dispaly
function fn_setButton() {
}

// 4.2. DataSet 에 초기데이터 Load
function fn_SetDataset() {
}

// 4.3. 공통코드
function fn_setCommonCode() {

	gfn_setComboAuth(divSrch.cboCompCd, 'dsCompCd', '00');	//법인 코드
	gfn_setComboAuth(divSrch.cboOdivCd, 'dsOdivCd', '30');	//사업부 코드
	gfn_setCommCode();
	gfn_setComboFilter('divSrch.cboOdivCd', 'dsOdivCd', 'divSrch.cboCompCd', 'COMP_CD:divSrch.cboCompCd');//사업부
    //gfn_setComboFilter('divMain.cboSizeCd', 'dsSizeCd', 'divMain.cboColrCd', 'COLR_CD:divMain.cboColrCd');//사이즈
}

// 4.4. 기본값 설정
function fn_setDefaultValue() {
	// 4.4.1 Grid 초기화(rownum 표시여부, CheckBox 표시여부(DataSet에 CHK값 필수))	
	// 4.4.2 Grid Head의 입력 항목 체크
	// 4.4.3 Grid Head의 필수 항목 체크
	// 4.4.4 Grid Head의 팝업 여부 Set	
	// 4.4.5 조회조건 필수값 Set
	
	divSrch.cboCompCd.chkdata 		          = "1:R:법인구분";
	divSrch.cboOdivCd.chkdata 		          = "2:R:브랜드";
	divMain.maeRecvYm.chkdata                 = "3:R:접수년월";
	divMain.edtShopCd.chkdata                 = "4:R:매장";
	divMain.edtCustNm.chkdata                 = "5:R:고객명";
	divMain.edtHpNo1.chkdata                  = "6:R:고객HP"
	divMain.edtHpNo2.chkdata                  = "7:R:고객HP"
	divMain.edtHpNo3.chkdata                  = "8:R:고객HP"
	divMain.txaShopRmrk.chkdata               = "9:R:반품사유"
	
	divMain.edtProdCd.chkdata                 = "10:R:상품";
	divMain.cboColrCd.chkdata                 = "11:R:칼라";
	divMain.cboSizeCd.chkdata                 = "12:R:사이즈";
	divMain.cboPrdcSeq.chkdata                = "13:R:지산차수";
	divMain.edtRprBarcd.chkdata               = "14:R:클레임바코드";
	divMain.cboPrdcSeq.chkdata                = "15:R:지시차수";
	divMain.rdoSellBfeAfCd.chkdata            = "16:R:판매전/후";
	//divMain.calPurcYmd.calFrom.chkdata        = "13:R:구매일";
	//divBottom.cboClamDivCd.chkdata            = "15:R:클레임구분";
	//divBottom.cboClamTypeCd.chkdata           = "16:R:클레임유형";
	//divBottom.cboClamCausCd.chkdata           = "17:R:클레임원인";
	
	divBottom.edtPrdcCmpyCd.chkdata           = "18:R:생산업체";
	
	dsMain.clearData();
	var addRow = dsMain.addRow();
	dsMain.setColumn(addRow, "COMP_CD", divSrch.cboCompCd.value);
	dsMain.setColumn(addRow, "ODIV_CD", divSrch.cboOdivCd.value);
	
	divMain.calSellYmd.fn_setDate(dsMain,"SELL_YMD");
	divMain.calPurcYmd.fn_setDate(dsMain,"PURC_YMD");
	divProgress.calShopRecvYmd.fn_setDate(dsMain,"SHOP_RECV_YMD");
	divProgress.calMbrRecvYmd.fn_setDate(dsMain,"MBR_RECV_YMD");
	divProgress.calShopSendYmd.fn_setDate(dsMain,"SHOP_SEND_YMD");
	divProgress.calMbrRgodFixYmd.fn_setDate(dsMain,"MBR_RGOD_FIX_YMD");
	divProgress.calGwYmd.fn_setDate(dsMain,"GW_YMD");
	divProgress.calFlSlipYmd.fn_setDate(dsMain,"FI_SLIP_YMD");
	divBottom.calMbrRgodFixYmd.fn_setDate(dsMain,"MBR_RGOD_FIX_YMD");
	divMain.maeRecvYm.value = fv_toDay.substr(0, 6);
	
	divMain.calPurcYmd.calFrom.value = "";
	divMain.calSellYmd.calFrom.value = "";
	
	divProgress.calShopRecvYmd.calFrom.value = fv_toDay;
	divProgress.calMbrRecvYmd.calFrom.value = "";
	divProgress.calShopSendYmd.calFrom.value = "";
	divProgress.calMbrRgodFixYmd.calFrom.value = "";
	divProgress.calGwYmd.calFrom.value = "";
	divProgress.calFlSlipYmd.calFrom.value = "";
	divBottom.calMbrRgodFixYmd.calFrom.value = "";
	divMain.calSellYmd.calFrom.readonly = true;
	divBottom.cboClamPrcBase.index = 0;
	dsClamTypeCd.filter(""); 
	dsClamCausCd.filter("");
}

// 4.5. 세션값에 따른 매장 정보 셋팅
function fn_setShopValue()
{
	if(gv_userTypeCd=="SHOP"){ //매장사용자로그인
		divMain.edtShopCd.enable = false;
		divMain.btnShop.enable = false;
		divMain.edtShopCd.value = gv_userId;
		divMain.edtShopNm.value = gv_empNm;
		divMain.edtSessCompCd.value = gv_compCd;
		divMain.edtSessBrandCd.value = gv_shopBrandCd;
		divMain.edtSessOdivCd.value = gv_odivCd;
	}else { //본사사용자로그인
		divMain.edtShopCd.enable = true;
		divMain.btnShop.enable = true;
		divMain.edtSessCompCd.value = gv_compCd;
		divMain.edtSessBrandCd.value = gv_brandCd;
		divMain.edtSessOdivCd.value = gv_odivCd;
		//divMain.edtShopCd.setFocus();
	}
}

function fn_checkShopValue() {
	if( gfn_isNull(divMain.edtShopCd.value)){
	    gfn_alert("매장정보를 선택해 주시기 바랍니다.");
	    divMain.edtShopCd.setFocus();
		return false;
	}
	return true;
}

function fn_setShopCd(){
	/*var nRow = dsShopCd.findRowExpr("REFR_VAL_1=='"+divSrch.cboCompCd.value+"' && REFR_VAL_2=='"+divSrch.cboOdivCd.value+"'");
	divMain.edtShopCd.value = dsShopCd.getColumn(nRow, "CD");
	divMain.edtShopNm.value = dsShopCd.getColumn(nRow, "NM");
	divMain.edtShopCd.setFocus();
	divMain.btnShop.setFocus();
	divMain.edtCustNm.setFocus();*/
}

/*==============================================================================================
* 5. Button Event Area. (공통 버턴 이벤트 함수 영역: 초기화, 조회, 저장, 등...)
*===============================================================================================*/
// 5.1. 초기화
function fn_init(obj:Button) {
	//5.1.1 변경내역 체크
	if(gfn_getChkDsUpdate(dsMain)) return false;
	this.reload();
}

// 5.2. 조회
// 5.2.1. 조회 전 체크
function fn_preRead() {
	if(gfn_chkSelect(divSrch)) return false;
	
	if(gfn_getValue(divMain.edtRprNo.value) == ""){
		gfn_alert("접수번호를 입력해 주시기 바랍니다..");
		return false;
	}
	
	//if(!fn_checkShopValue()) return false;
	
	return true;
}

// 5.2.2. 조회
function fn_read(obj:Button) {
	if (!fn_preRead()) return;
	
	gfn_searchArgsAdd(divSrch);
	gfn_searchArgAdd("maeRecvYm", divMain.maeRecvYm.value);
	gfn_searchArgAdd("edtRprNo", divMain.edtRprNo.value);

	strSvcid        = "selectMain";
	strController   = "/cr/cl/aa/selectClAa010Main.do";
	strInputDs      = "";
	strOutputDs     = "dsMain=dsMain";
	strParam        = "sqlid=dsMain:ClAa010.selectCrClam;";

    gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, obj);
}

// 5.3. 저장
// 5.3.1. 저장 전 체크
function fn_preSaveMain() {
	if(!fn_checkShopValue()) return false;
	
	if(!gfn_getDsUpdate(dsMain)) 
	{
		return false;
	}
	
	if(dsMain.rowposition<0 && (divMain.edtRprTypeCd01.value == "" || divMain.edtRprTypeCd02.value == "" || divMain.edtRprTypeCd03.value == "")){
		gfn_alert("Error.E002","","error");
		return false;
	}
	
	//5.3.1.1 입력 DIV의 필수 입력값 체크
	if(dsMain.rowcount>0){ //상세 DATA존재시에 체크
		if(gfn_chkSelect(divMain)) return false;   // 저장 시 필수 조건 컬럼 체크
		if(gfn_chkSelect(divBottom)) return false;   // 저장 시 필수 조건 컬럼 체크
    }
    
    var shopSendYmd = gfn_getValue(divProgress.calShopSendYmd.calFrom.value); //매장반송
    var mbrRecvYmd = gfn_getValue(divProgress.calMbrRecvYmd.calFrom.value); //본사접수
    var shopRecvYmd = gfn_getValue(divProgress.calShopRecvYmd.calFrom.value); //매장접수 
	
	if(shopSendYmd != ""){
		if(mbrRecvYmd != "" && shopSendYmd < mbrRecvYmd){
			gfn_alert("Warning.W019","본사접수|매장반송");
			return false;
		}
	}
	
	if(mbrRecvYmd == ""){
		divProgress.calMbrRecvYmd.calFrom.value = fv_toDay;
	}
	
	if(mbrRecvYmd != ""){
		if(shopRecvYmd != "" && mbrRecvYmd < shopRecvYmd){
			gfn_alert("Warning.W019","매장접수|본사접수");
			return false;
		}
	}
	
	var sellBfeAfCd = divMain.rdoSellBfeAfCd.value;
	var purcYmd = gfn_getValue(divMain.calPurcYmd.calFrom.value);
	if(sellBfeAfCd == "01"){
		if(purcYmd != ""){
			gfn_alert("CR.014","판매전|구매일 입력");
			return false;
		}
	}
	if(sellBfeAfCd == "02"){
		if(purcYmd == ""){
			gfn_alert("CR.010","판매후|구매일");
			return false;
		}
		if(gfn_getValue(divBottom.mskRgodFixUprc.value) == ""){
			gfn_alert("CR.010","판매후|고객반품가");
			divBottom.mskRgodFixUprc.setFocus();
			return false;
		}
	}
	
	if(purcYmd > fv_toDay){
		gfn_alert("Common.C003","구매일이|오늘");
		return false;
	}
	var shopSendYmd 		= gfn_getValue(divProgress.calShopSendYmd.calFrom.value);
	var mbrRgodFixYmd 		= gfn_getValue(divProgress.calMbrRgodFixYmd.calFrom.value);
	var gwYmd 				= gfn_getValue(divProgress.calGwYmd.calFrom.value);
	var flSlipYmd 			= gfn_getValue(divProgress.calFlSlipYmd.calFrom.value);
	
	if( mbrRgodFixYmd != "" && gfn_getValue(dsMain.getColumn(0,"MBR_RGOD_FIX_NO")) == "" ){
		gfn_alert("본사반품확정은 본사반품 확정버튼을 클릭하시기 바랍니다.");
		return false;
	}
	if(shopSendYmd != ""){
		if(mbrRgodFixYmd != "" || gwYmd != "" || flSlipYmd != ""){
			gfn_alert("CR.014","고객반품확정일 이후 입력되면|매장반송");
			return false;
		}
	}
	
	dsClamH.clearData();
	if( gfn_isNotNull(gfn_getValue(dsMain.getColumn(0,"MBR_RGOD_FIX_YMD")))){
		for(var i = 0 ; i < dsMain.colcount ; i++){
			//if((dsMain.getOrgColumn(0, i) != dsMain.getColumn(0, i)) && (gfn_getValue(dsMain.getColumn(0, i)) != "")){
			if( gfn_getValue(dsMain.getOrgColumn(0, i)) != gfn_getValue(dsMain.getColumn(0, i)) ){
				var addRow = dsClamH.addRow();
				dsClamH.setColumn(addRow, "COMP_CD", divSrch.cboCompCd.value);
				dsClamH.setColumn(addRow, "ODIV_CD", divSrch.cboOdivCd.value);
				dsClamH.setColumn(addRow, "RECV_YM", divMain.maeRecvYm.value);
				dsClamH.setColumn(addRow, "MODI_ITEM", dsMain.getColID(i));
				dsClamH.setColumn(addRow, "MODI_BFE_VAL", dsMain.getOrgColumn(0, i));
				dsClamH.setColumn(addRow, "MODI_AF_VAL", dsMain.getColumn(0, i));
			}
		}
	}
	if( gfn_getValue(dsMain.getColumn(0,"FRST_CHRG_MAN_ID")) != gv_userId ){
		var addRow = dsClamH.addRow();
		dsClamH.setColumn(addRow, "COMP_CD", divSrch.cboCompCd.value);
		dsClamH.setColumn(addRow, "ODIV_CD", divSrch.cboOdivCd.value);
		dsClamH.setColumn(addRow, "RECV_YM", divMain.maeRecvYm.value);
		dsClamH.setColumn(addRow, "MODI_ITEM", "접수자");
		dsClamH.setColumn(addRow, "MODI_BFE_VAL", dsMain.getOrgColumn(0, "FRST_CHRG_MAN_ID"));
		dsClamH.setColumn(addRow, "MODI_AF_VAL", gv_userId);
		dsMain.setColumn(0,"FRST_CHRG_MAN_ID",gv_userId);
	}
	return true;
}

// 5.3.2. 저장
function fn_save(obj:Button) {
	if (!fn_preSaveMain()) return;

	var vCheckStatCd = fn_checkStatCd();
	
	if( vCheckStatCd != "01" && vCheckStatCd != "02" ){
		gfn_alert("매장접수 또는 본사 접수 상태인 경우에만 수정 가능합니다.");
		return;
	}
	if (!gfn_confirm("Common.C201")) return;

	var hp1 = divMain.edtHpNo1.value;
	var hp2 = divMain.edtHpNo2.value;
	var hp3 = divMain.edtHpNo3.value;
	var hpNo = hp1 + hp2 + hp3;
	dsMain.setColumn(dsMain.rowposition, "HP_NO", hpNo);
	dsMain.setColumn(dsMain.rowposition, "BRAND_CD", divMain.edtSessBrandCd.value);

    var strSvcid    	= "saveMain";
	var strController   = "/cr/cl/aa/saveClAa010ClamMain.do";
	var strInputDs    	= "dsMain=dsMain:U dsClamH=dsClamH:U";
	var strOutputDs   	= "";
	var strParam    	= "";
    
	gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, obj);

}

//5.4 행추가
function fn_new(obj:Button){
	dsMain.clearData();
	fn_setShopValue();
	fn_setCommonCode();
	fn_setDefaultValue();
	/*
	dsMain.addRow();
	dsMain.setColumn(dsMain.rowposition, "COMP_CD", divSrch.cboCompCd.value);
	dsMain.setColumn(dsMain.rowposition, "ODIV_CD", divSrch.cboOdivCd.value);
	dsMain.setColumn(dsMain.rowposition, "SHOP_RECV_YMD", fv_toDay);
	*/
	divMain.edtHpNo1.value = "";
	divMain.edtHpNo2.value = "";
	divMain.maeRecvYm.value = fv_toDay.substr(0, 6);
	fn_setShopCd();
	fn_setInput();
	fn_checkRegiId();
	fn_progressImage();
	dsClamTypeCd.filter(""); 
	dsClamCausCd.filter("");
	divBottom.cboClamPrcBase.index = 0;
}

/*==============================================================================================
* 6. User CallBack Function.(사용자 콜백 함수)
*===============================================================================================*/
function fn_callback(svcid, errcd, errmsg) {
	
	if (svcid == "saveRgod" && errcd == -100){
		dsMain.setColumn(0, "MBR_RGOD_FIX_YMD", "");
	}
	if (errcd < 0) return; 

	switch(svcid) {
		case 'saveMain':
			gfn_info("Information.I012");
			dsMain.updatecontrol = false;
			dsMain.setColumn(dsMain.rowposition,"RPR_NO", RPR_NO_SEQ);
			dsMain.setColumn(dsMain.rowposition,"VIEW_RPR_NO", RPR_NO_SEQ);
			dsMain.updatecontrol = true;
			fn_read();
		    break;
		case "selectMain":
			gfn_status("Information.I013",dsMain.rowcount);
			if(dsMain.rowcount!=1){
			    //fn_new();
			    return;
			}
			var tel = "";
			var hpNo = "";
			if(gfn_getValue(dsMain.getColumn(0, "SHOP_TELNO")) != ""){
				var shopTelno = dsMain.getColumn(0, "SHOP_TELNO");
				var tel1 = "";
				var tel2 = "";
				var tel3 = "";
				if(shopTelno.substr(0,2) == "02"){
					tel1 = shopTelno.substr(0,2);
					if(shopTelno.length == 9){
						tel2 = shopTelno.substr(2,3);
					}else if(shopTelno.length == 10){
						tel2 = shopTelno.substr(2,4);
					}
				}else if(shopTelno.substr(0,2) != "02"){
					tel1 = shopTelno.substr(0,3)
					if(shopTelno.length == 10){
						tel2 = shopTelno.substr(3,3);
					}else{
						tel2 = shopTelno.substr(3,4);
					}
				}
				tel3 = shopTelno.substr(shopTelno.length-4, shopTelno.length);
				tel = tel1 + "-" + tel2 + "-" + tel3;
				divMain.stcShopTelno.text = "TEL : "+ tel;
			}else{
				divMain.stcShopTelno.text = "";
			}
			var hpNo = dsMain.getColumn(0, "HP_NO");
			if(hpNo.length == 9){
				divMain.edtHpNo1.value = hpNo.substr(0,2);
				divMain.edtHpNo2.value = hpNo.substr(2,3);
				divMain.edtHpNo3.value = hpNo.substr(5,4);
			}else if(hpNo.length == 10){
				if(hpNo.substr(0,2)=="02"){
					divMain.edtHpNo1.value = hpNo.substr(0,2);
					divMain.edtHpNo2.value = hpNo.substr(2,4);
					divMain.edtHpNo3.value = hpNo.substr(6,4);
				}else{
					divMain.edtHpNo1.value = hpNo.substr(0,3);
					divMain.edtHpNo2.value = hpNo.substr(3,3);
					divMain.edtHpNo3.value = hpNo.substr(6,4);
				}
			}else if(hpNo.length == 11){
				divMain.edtHpNo1.value = hpNo.substr(0,3);
				divMain.edtHpNo2.value = hpNo.substr(3,4);
				divMain.edtHpNo3.value = hpNo.substr(7,4);
			}else if(hpNo.length == 12){
				divMain.edtHpNo1.value = hpNo.substr(0,4);
				divMain.edtHpNo2.value = hpNo.substr(4,4);
				divMain.edtHpNo3.value = hpNo.substr(8,4);
			}
			
			if(gfn_getValue(dsMain.getColumn(0, "PROD_CD")) != ""){
			    dsColrCd.filter("");
			    dsSizeCd.filter("");
				gfn_WpProdColrSizeSearch(divSrch.cboCompCd.value,divMain.edtSessBrandCd.value,divMain.edtShopCd.value,dsMain.getColumn(0, "PROD_CD"),"dsSearchPopProdInfo","dsColrCd","dsSizeCd");
				gfn_setComboFilter('divMain.cboSizeCd', 'dsSizeCd', 'divMain.cboColrCd', 'COLR_CD:divMain.cboColrCd');//사이즈
				divMain.cboColrCd.value = dsMain.getColumn(0, "COLR_CD");
				var vSizeCdValue = dsMain.getColumn(0, "SIZE_CD");
				var e = new ItemChangeEventInfo;
				gfn_commcd_onitemchanged(divMain.cboColrCd,e);
				divMain.cboSizeCd.value = vSizeCdValue;
			}
			fn_setInput();
			
			fn_progressImage();
			fn_checkRegiId();
			dsClamTypeCd.filter(""); 
			dsClamCausCd.filter("");
			if( gfn_isNotNull(dsMain.getColumn(0,"CLAM_DIV_CD")) ){
				if( gfn_getValue(dsMain.getColumn(0,"CLAM_DIV_CD")) == "1"){
					divBottom.cboRgodWhCd.value = "A003";
					dsClamTypeCd.filter("");
					dsClamTypeCd.filter("REFR_VAL_1 == '1'");
				}else if(gfn_getValue(dsMain.getColumn(0,"CLAM_DIV_CD")) == "2"){
					divBottom.cboRgodWhCd.value = "A010";
					dsClamTypeCd.filter("");
					dsClamTypeCd.filter("REFR_VAL_1 == '2' || REFR_VAL_2 == '3'" ); 
				}else if(gfn_getValue(dsMain.getColumn(0,"CLAM_DIV_CD")) == "3"){
					divBottom.cboRgodWhCd.value = "A009";
					dsClamTypeCd.filter("");
					dsClamTypeCd.filter("REFR_VAL_1 == '2' || REFR_VAL_2 == '3'" ); 
				}
			}
			if( gfn_isNotNull(dsMain.getColumn(0,"CLAM_TYPE_CD")) ){
				dsClamCausCd.filter("REFR_VAL_1 == '" + gfn_getValue(dsMain.getColumn(0,"CLAM_TYPE_CD")) + "'");
			}
		    break;
		case "selectHpNoCount":
			if(dsHpNoCnt.getColumn(0, "CNT") >= 2){
				/*핸드폰 번호가 2건 이상 있는 경우*/
				var hp1 = divMain.edtHpNo1.value;
				var hp2 = divMain.edtHpNo2.value;
				var hp3 = divMain.edtHpNo3.value;
				divMain.edtHpNo.value = hp1 + hp2 + hp3;
				var sStrParam = {"sPopCompCd":divSrch.cboCompCd,"sPopBrandCd":divMain.edtSessBrandCd
	                 ,"sPopShopCd":divMain.edtShopCd,"sPopFnCallBackNm":"","sPopHpNo":divMain.edtHpNo,"sFlag":"1"};
	            
		        var sRet = gfn_dialog(this, "_srchCustPopup", "popup::CrShopCust.xfdl", -1, -1, -1, -1, false, "-1", sStrParam, false);
		        
		        if(gfn_isNotNull(sRet))
				{
					divMain.maeZipNo.value = sRet[0];
					divMain.edtBaseAddr.value = sRet[1];
					divMain.edtDetlAddr.value = sRet[2];
					divMain.edtLoadNmbaseAddr.value = sRet[3];
					divMain.edtLoadNmDetlAddr.value = sRet[4];
					divMain.edtCustCd.value = sRet[5];
					divMain.edtCustNm.value = sRet[6];
				}
			}else if(dsHpNoCnt.getColumn(0, "CNT") == 1){
			    var edtCompCd = divSrch.cboCompCd.value;
			    var edtBrandCd = divMain.edtSessBrandCd.value;
			    var edtShopCd = divMain.edtShopCd.value;
			    var hp1 = divMain.edtHpNo1.value;
				var hp2 = divMain.edtHpNo2.value;
				var hp3 = divMain.edtHpNo3.value;
				var edtHpNo = hp1 + hp2 + hp3;
				gfn_searchArgAdd("edtCompCd", edtCompCd);
				gfn_searchArgAdd("edtBrandCd", edtBrandCd);
				gfn_searchArgAdd("edtShopCd", edtShopCd);
				gfn_searchArgAdd("edtHpNo", edtHpNo);

				var strSvcid        = "selectCustCdList";
				var strController   = "/wp/cm/aa/selectCrShopCustList.do";
				var strInputDs      = "";
				var strOutputDs     = "dsPopMain=dsPopMain";
				var strParam        = "sqlid=dsPopMain:WpCmAa010.selectCrShopCustList;";
				
				gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam);
			}else{
				divMain.btnZip.setFocus();
			}
			
		    break;
		case "selectCustCdList":
			divMain.maeZipNo.value = dsPopMain.getColumn(0, "ZIP_NO");
			divMain.edtBaseAddr.value = dsPopMain.getColumn(0, "BASE_ADDR");
			divMain.edtDetlAddr.value = dsPopMain.getColumn(0, "DETL_ADDR");
			divMain.edtLoadNmbaseAddr.value = dsPopMain.getColumn(0, "LOAD_NM_BASE_ADDR");
			divMain.edtLoadNmDetlAddr.value = dsPopMain.getColumn(0, "LOAD_NM_DETL_ADDR");
			divMain.edtCustCd.value = dsPopMain.getColumn(0, "CUST_CD");
			divMain.edtCustNm.value = dsPopMain.getColumn(0, "CUST_NM");
		    break;
		case "selectVndCd":
			if(stat == 0){
				divMain.cboPrdcSeq.index = 0;
				if(dsVndCd.getRowCount() == 1){
					dsMain.setColumn(0, "PRDC_CMPY_CD", dsVndCd.getColumn(dsVndCd.findRow("INDC_SEQ", divMain.cboPrdcSeq.value), "VND_CD"));
					dsMain.setColumn(0, "PRDC_CMPY_NM", dsVndCd.getColumn(dsVndCd.findRow("INDC_SEQ", divMain.cboPrdcSeq.value), "VND_NM"));
					//divMain.edtPrdcCmpyCd.value = dsVndCd.getColumn(dsVndCd.findRow("INDC_SEQ", divMain.cboPrdcSeq.value), "VND_CD");
				}else{
					dsVndCd.insertRow(0);
					dsMain.setColumn(0, "PRDC_CMPY_CD", "");
					dsMain.setColumn(0, "PRDC_CMPY_NM", "");
					divMain.cboPrdcSeq.value = "";
				}
			}else if(stat == 1){
				divMain.cboPrdcSeq.value = dsMain.getColumn(0, "PRDC_SEQ");
			}
			break;
		case "selectRprCount":
			if(dsCnt.getColumn(0, "CNT") == 1){
				/*해당 접수건 있는 경우*/
				fn_read();
			}else{
			    /*해당 접수건 없는 경우*/
				fn_rprListPopup(divMain);
			}
		    break;
		case "selectRgodFixUprc":
			var purcYmd = "";
			if(gfn_getValue(divMain.calPurcYmd.calFrom.value) != "" ){
				purcYmd = divMain.calPurcYmd.calFrom.value;
			}
		    var vPordInfoDs = gfn_getWpPordColrSizeInfo(divMain.edtSessCompCd.value, divMain.edtSessBrandCd.value, divMain.edtShopCd.value, divMain.edtProdCd.value, divMain.cboColrCd.value, divMain.cboSizeCd.value, 'S', purcYmd);
			divMain.mskBuySellPrce.value  = vPordInfoDs.getColumn(0, "SELL_DT_UPRC");
			divMain.mskNowSellPrce.value  = vPordInfoDs.getColumn(0, "SELL_UPRC");
			divMain.makCnsmPrce.value     = vPordInfoDs.getColumn(0, "CNSM_PRCE");
			divBottom.mskRgodFixUprc.value = vPordInfoDs.getColumn(0, "CNSM_PRCE");
			//divMain.mskSellUprc.value = vPordInfoDs.getColumn(0, "CNSM_PRCE");
			
			divBottom.mskRgodFixUprc.readonly = true;
			
			if( dsMain.getColumn(0,"CLAM_UPRC_BASE")=="20"){
				divBottom.mskRgodFixUprc.value = vPordInfoDs.getColumn(0, "CNSM_PRCE") * 0.8;
				//divMain.mskSellUprc.value = vPordInfoDs.getColumn(0, "CNSM_PRCE") * 0.8;
			}else if( dsMain.getColumn(0,"CLAM_UPRC_BASE")=="40"){
				divBottom.mskRgodFixUprc.value = vPordInfoDs.getColumn(0, "CNSM_PRCE") * 0.6;
				//divMain.mskSellUprc.value = vPordInfoDs.getColumn(0, "CNSM_PRCE") * 0.6;
			}else if( dsMain.getColumn(0,"CLAM_UPRC_BASE")=="50"){
				divBottom.mskRgodFixUprc.value = vPordInfoDs.getColumn(0, "CNSM_PRCE") * 0.5;
				//divMain.mskSellUprc.value = vPordInfoDs.getColumn(0, "CNSM_PRCE") * 0.5;
			}else if( dsMain.getColumn(0,"CLAM_UPRC_BASE")=="60"){
				divBottom.mskRgodFixUprc.value = vPordInfoDs.getColumn(0, "CNSM_PRCE") * 0.4;
				//divMain.mskSellUprc.value = vPordInfoDs.getColumn(0, "CNSM_PRCE") * 0.4;
			}else if( dsMain.getColumn(0,"CLAM_UPRC_BASE")=="80"){
				divBottom.mskRgodFixUprc.value = vPordInfoDs.getColumn(0, "CNSM_PRCE") * 0.2;
				//divMain.mskSellUprc.value = vPordInfoDs.getColumn(0, "CNSM_PRCE") * 0.2;
			}else if( dsMain.getColumn(0,"CLAM_UPRC_BASE")=="99"){
				divBottom.mskRgodFixUprc.readonly = false;
			    divBottom.mskRgodFixUprc.value = "";
				//divMain.mskSellUprc.value = "";
			}else if( dsMain.getColumn(0,"CLAM_UPRC_BASE")=="00"){
				divBottom.mskRgodFixUprc.value = vPordInfoDs.getColumn(0, "SELL_UPRC");
				//divMain.mskSellUprc.value = vPordInfoDs.getColumn(0, "SELL_UPRC");
			}else if( dsMain.getColumn(0,"CLAM_UPRC_BASE")=="01"){
				divBottom.mskRgodFixUprc.value = vPordInfoDs.getColumn(0, "SELL_DT_UPRC");
				//divMain.mskSellUprc.value = vPordInfoDs.getColumn(0, "SELL_DT_UPRC");
			}else{
				divBottom.mskRgodFixUprc.value = vPordInfoDs.getColumn(0, "CNSM_PRCE");
				//divMain.mskSellUprc.value = vPordInfoDs.getColumn(0, "CNSM_PRCE");
			}
		    /*if(dsRgodFixUprc.getRowCount() == 1){
		    
				if( dsRgodFixUprc.getColumn(0,"ITEM_CD") == "G" || dsRgodFixUprc.getColumn(0,"ITEM_CD") == "N"){
					divBottom.mskRgodFixUprc.value = dsRgodFixUprc.getColumn(0, "PURC_UPRC");
					divMain.mskSellUprc.value = dsRgodFixUprc.getColumn(0, "PURC_UPRC");
				}else{
					var rgodFixUprc = dsWpUtilCmProdInfoSel.getColumn(0, "CNSM_PRCE");
					var planYyCd = dsRgodFixUprc.getColumn(0, "PLAN_YY_CD");
					var year = dsPlanYyCd.getColumn(dsPlanYyCd.findRow("CD", planYyCd), "NM");
					var nowYear = fv_toDay.substr(0,4);
					var chk = toNumber(nowYear) - toNumber(year);
					if(chk < 2){
						divBottom.mskRgodFixUprc.value = rgodFixUprc;
						divMain.mskSellUprc.value = rgodFixUprc;
					}else if(chk == 2){
						divBottom.mskRgodFixUprc.value = rgodFixUprc * 0.6;
						divMain.mskSellUprc.value = rgodFixUprc * 0.6;
					}else if(chk == 3){
						divBottom.mskRgodFixUprc.value = rgodFixUprc * 0.4;
						divMain.mskSellUprc.value = rgodFixUprc * 0.4;
					}else if(chk > 3){
						divBottom.mskRgodFixUprc.value = rgodFixUprc * 0.2;
						divMain.mskSellUprc.value = rgodFixUprc * 0.2;
					}
				}
		    }else{
				divBottom.mskRgodFixUprc.value = 0;
				divMain.mskSellUprc.value = 0;
		    }*/
		   
		    break;
		case "saveRgod":
		    /*
			dsMain.setColumn(dsMain.rowposition,"MBR_RGOD_FIX_NO", DELRT_SLIP_NO);
			dsMain.setColumn(dsMain.rowposition, "RGOD_FIX_UPRC", divBottom.mskRgodFixUprc.value);
			dsMain.setColumn(dsMain.rowposition, "RGOD_FIX_UPRC_YMD", fv_toDay);
			dsMain.setColumn(dsMain.rowposition, "FRST_CHRG_MAN_ID", gv_userId);
 
			if (!fn_preSaveMain()) return;

			var strSvcid    	= "saveCrClam";
			var strController   = "/cr/cl/aa/saveClAa010CrClam.do";
			var strInputDs    	= "dsMain=dsMain:U";
			var strOutputDs   	= "";
			var strParam    	= "sqlid=dsMain:ClAa010.saveCrClam;";
			
			gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam);*/
			fn_read();
			break;
		case "cancelRgod": 
			/*
			dsMain.setColumn(dsMain.rowposition,"MBR_RGOD_FIX_YMD", "");
			dsMain.setColumn(dsMain.rowposition,"MBR_RGOD_FIX_NO", "");
			dsMain.setColumn(dsMain.rowposition, "RGOD_FIX_UPRC_YMD", "");
			dsMain.setColumn(dsMain.rowposition, "FRST_CHRG_MAN_ID", gv_userId);
            
			var strSvcid    	= "saveCrClam";
			var strController   = "/cr/cl/aa/saveClAa010CrClam.do";
			var strInputDs    	= "dsMain=dsMain:U";
			var strOutputDs   	= "";
			var strParam    	= "sqlid=dsMain:ClAa010.saveCrClam;";
			gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam);
			*/
			fn_read();
			break;
		case 'saveCrClam':
			gfn_info("Information.I012");

			fn_read();
		    break;
		default:
			break;
	}
}

/*==============================================================================================
* 7. Local Function. (사용자 정의 함수)
*    - 사용자 정의 함수는 fn_xxxx() 현태로 작성  + 기본 이벤트 function
*==============================================================================================*/

function divMain_edtRprNo_onkeydown(obj:Edit, e:KeyEventInfo)
{
	if(e.keycode==13){
		fn_rprCount();
	}
}

function divMain_btnShop_onclick(obj:Button,  e:ClickEventInfo)
{
	var ret = gfn_getWpShopPopupSrch(obj.parent,e);
	fn_setCompCd();
	var shopTelno = ret.getColumn(0, "SHOP_TELNO");
	var tel1 = "";
	var tel2 = "";
	var tel3 = "";
	if(shopTelno.substr(0,2) == "02"){
		tel1 = shopTelno.substr(0,2);
		if(shopTelno.length == 9){
			tel2 = shopTelno.substr(2,3);
		}else if(shopTelno.length == 10){
			tel2 = shopTelno.substr(2,4);
		}
	}else if(shopTelno.substr(0,2) != "02"){
		tel1 = shopTelno.substr(0,3)
		if(shopTelno.length == 10){
			tel2 = shopTelno.substr(3,3);
		}else{
			tel2 = shopTelno.substr(3,4);
		}
	}
	tel3 = shopTelno.substr(shopTelno.length-4, shopTelno.length);
	var tel = tel1 + "-" + tel2 + "-" + tel3;

	divMain.stcShopTelno.text = "TEL : " +tel;
}

function divMain_edtShopCd_onkeydown(obj:Edit, e:KeyEventInfo)
{
	if(e.keycode==13){
		var ret = gfn_getWpShopPopupSrch(obj.parent,e);
		fn_setCompCd();
		var shopTelno = ret.getColumn(0, "SHOP_TELNO");
		var tel1 = "";
		var tel2 = "";
		var tel3 = "";
		if(shopTelno.substr(0,2) == "02"){
			tel1 = shopTelno.substr(0,2);
			if(shopTelno.length == 9){
				tel2 = shopTelno.substr(2,3);
			}else if(shopTelno.length == 10){
				tel2 = shopTelno.substr(2,4);
			}
		}else if(shopTelno.substr(0,2) != "02"){
			tel1 = shopTelno.substr(0,3)
			if(shopTelno.length == 10){
				tel2 = shopTelno.substr(3,3);
			}else{
				tel2 = shopTelno.substr(3,4);
			}
		}
		tel3 = shopTelno.substr(shopTelno.length-4, shopTelno.length);
		var tel = tel1 + "-" + tel2 + "-" + tel3;

		divMain.stcShopTelno.text = "TEL : " +tel;
	}
}

function divMain_edtShopCd_onkillfocus(obj:Edit, e:KillFocusEventInfo)
{
	var ret = gfn_getWpShopPopupSrch(obj.parent,e);
	fn_setCompCd();
	var shopTelno = ret.getColumn(0, "SHOP_TELNO");
	var tel1 = "";
	var tel2 = "";
	var tel3 = "";
	if(shopTelno.substr(0,2) == "02"){
		tel1 = shopTelno.substr(0,2);
		if(shopTelno.length == 9){
			tel2 = shopTelno.substr(2,3);
		}else if(shopTelno.length == 10){
			tel2 = shopTelno.substr(2,4);
		}
	}else if(shopTelno.substr(0,2) != "02"){
		tel1 = shopTelno.substr(0,3)
		if(shopTelno.length == 10){
			tel2 = shopTelno.substr(3,3);
		}else{
			tel2 = shopTelno.substr(3,4);
		}
	}
	tel3 = shopTelno.substr(shopTelno.length-4, shopTelno.length);
	var tel = tel1 + "-" + tel2 + "-" + tel3;

	divMain.stcShopTelno.text = "TEL : " +tel;
}

function fn_setCompCd(){
	if(gfn_getValue(divSrch.cboOdivCd.value) != gfn_getValue(divMain.edtSessOdivCd.value)){
		var tempShopCd = divMain.edtShopCd.value;
		var tempShopNm = divMain.edtShopNm.value;
		var tempCompCd = divMain.edtSessCompCd.value;
		var tempOdivCd = divMain.edtSessOdivCd.value;
		var tempBrandCd = divMain.edtSessBrandCd.value;
		//dsClamH.clearData();
		fn_setDefaultValue();
		
		divSrch.cboCompCd.value = tempCompCd;
		gfn_setComboFilter('divSrch.cboOdivCd', 'dsOdivCd', 'divSrch.cboCompCd', 'COMP_CD:divSrch.cboCompCd');//사업부
		divSrch.cboOdivCd.value = tempOdivCd;
		divMain.edtSessBrandCd.value = tempBrandCd;
		divMain.edtSessCompCd.value = tempCompCd;
		divMain.edtSessOdivCd.value = tempOdivCd;
		divMain.edtShopCd.value = tempShopCd;
		divMain.edtShopNm.value = tempShopNm;
	}else{
		return;
	}
}

function divMain_edtHpNo3_onkillfocus(obj:Edit, e:KillFocusEventInfo)
{
	var hp1 = divMain.edtHpNo1.value;
	var hp2 = divMain.edtHpNo2.value;
	var hp3 = divMain.edtHpNo3.value;
	var hpNo = hp1 + hp2 + hp3;
	
	gfn_searchArgsAdd(divSrch);
	var compCd = divSrch.cboCompCd.value;
	var brandCd = divMain.edtSessBrandCd.value;
	gfn_searchArgAdd("hpNo", hpNo);
	gfn_searchArgAdd("compCd", compCd);
	gfn_searchArgAdd("brandCd", brandCd);
	
	strSvcid        = "selectHpNoCount";
	strController   = "/cr/cl/aa/selectClAa010Main.do";
	strInputDs      = "";
	strOutputDs     = "dsHpNoCnt=dsHpNoCnt";
	strParam        = "sqlid=dsHpNoCnt:ClAa010.selectHpNoCount;";

    gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, obj);
}

function divMain_btnCust_onclick(obj:Button,  e:ClickEventInfo)
{
	if(!fn_checkShopValue()) return false;
	var sStrParam = {"sPopCompCd":divSrch.cboCompCd,"sPopBrandCd":divMain.edtSessBrandCd 
	                 ,"sPopShopCd":divMain.edtShopCd,"sPopFnCallBackNm":"fn_SetCustInfo","sPopCustVal":divMain.edtCustCd,"sFlag":""};
	gfn_getCustShopPopupSrch(sStrParam,e);
}

function fn_SetCustInfo(pDsCustInfo){
	if(pDsCustInfo.rowcount!=1){
		divMain.edtCustNm.value = "";
		divMain.edtCustCardNo.value = "";
		divMain.edtCustCd.value = "";
		divMain.edtHpNo1.value = "";
		divMain.edtHpNo2.value = "";
		divMain.edtHpNo3.value = "";
	}else{
		divMain.edtCustNm.value = pDsCustInfo.getColumn(0,"CUST_NM");
		divMain.edtCustCardNo.value = pDsCustInfo.getColumn(0,"CUST_CARD_NO");
		var hpNo = pDsCustInfo.getColumn(0,"HP_NO");
		divMain.edtCustCd.value = pDsCustInfo.getColumn(0,"CUST_CD");
		if(hpNo.length == 10){
			divMain.edtHpNo1.value = hpNo.substr(0,3);
			divMain.edtHpNo2.value = hpNo.substr(3,3);
			divMain.edtHpNo3.value = hpNo.substr(6,4);
			divMain.edtHpNo3.setFocus();
		}else if(hpNo.length == 11){
			divMain.edtHpNo1.value = hpNo.substr(0,3);
			divMain.edtHpNo2.value = hpNo.substr(3,4);
			divMain.edtHpNo3.value = hpNo.substr(7,4);
			divMain.edtHpNo3.setFocus();
		}
	}
}
function divMain_btnZip_onclick(obj:Button,  e:ClickEventInfo)
{
	var sRet = gfn_dialog(this, "popup", "popup::CmZipCd.xfdl", -1,-1,-1,-1, false, "-1", "", false, false );

	if(gfn_isNotNull(sRet))
	{
		divMain.maeZipNo.value = sRet[0];
		divMain.edtBaseAddr.value = sRet[1];
		divMain.edtDetlAddr.value = sRet[2];
		divMain.edtLoadNmbaseAddr.value = sRet[3];
		divMain.edtLoadNmDetlAddr.value = sRet[4];
	}
}

function divMain_edtProdCd_onkeydown(obj:Edit, e:KeyEventInfo)
{
	if(e.keycode == 13){
		if(!fn_checkShopValue()) return false;
		
		/*dsColrCd.clearData();
		dsSizeCd.clearData();
		var sStrParam = {"sPopCompCd":divSrch.cboCompCd,"sPopBrandCd":divMain.edtSessBrandCd  
						 ,"sPopShopCd":divMain.edtShopCd,"sPopFnCallBackNm":"fn_SetProdInfo","sPopProdCd":divMain.edtProdCd,"sPopTabGubun":1,"sPopProdGubun":1};
		
		gfn_WpProdSearchPop(sStrParam,e);*/
		divMain.cboColrCd.setFocus();
	}
}

function divMain_edtProdCd_onkillfocus(obj:Edit, e:KillFocusEventInfo)
{
	if(!fn_checkShopValue()) return false;
	
	dsColrCd.clearData();
	dsSizeCd.clearData();
	var sStrParam = {"sPopCompCd":divSrch.cboCompCd,"sPopBrandCd":divMain.edtSessBrandCd
	                 ,"sPopShopCd":divMain.edtShopCd,"sPopFnCallBackNm":"fn_SetProdInfo","sPopProdCd":divMain.edtProdCd,"sPopTabGubun":1,"sPopProdGubun":1};
    
	gfn_WpProdSearchPop(sStrParam,e);
}

function divMain_btnProd_onclick(obj:Button,  e:ClickEventInfo)
{
	if(!fn_checkShopValue()) return false;

	dsColrCd.clearData();
	dsSizeCd.clearData();
	var sStrParam = {"sPopCompCd":divSrch.cboCompCd,"sPopBrandCd":divMain.edtSessBrandCd
	                 ,"sPopShopCd":divMain.edtShopCd,"sPopFnCallBackNm":"fn_SetProdInfo","sPopProdCd":divMain.edtProdCd,"sPopTabGubun":1,"sPopProdGubun":1};

	gfn_WpProdSearchPop(sStrParam,e);
}

function fn_SetProdInfo(pPopDataset){
	if(pPopDataset.getRowCount() != 1) return;
	
	dsColrCd.filter("");
	dsSizeCd.filter("");
	gfn_WpProdColrSizeSearch(divSrch.cboCompCd.value,divMain.edtSessBrandCd.value,divMain.edtShopCd.value,pPopDataset.getColumn(0, "PROD_CD"),"dsSearchPopProdInfo","dsColrCd","dsSizeCd");
	gfn_setComboFilter('divMain.cboSizeCd', 'dsSizeCd', 'divMain.cboColrCd', 'COLR_CD:divMain.cboColrCd');//사이즈
	divMain.cboColrCd.index = 0;
	var e = new ItemChangeEventInfo;
	gfn_commcd_onitemchanged(divMain.cboColrCd,e);
	divMain.edtProdCd.value = pPopDataset.getColumn(0, "PROD_CD");
	divMain.cboSizeCd.index = 0;
	divMain.cboColrCd.setFocus();

	stat = 0;
	fn_findVndCd();
	fn_getRgodFixUprc();
}

function fn_findVndCd(){
	gfn_searchArgAdd("COMP_CD", dsMain.getColumn(0, "COMP_CD"), true);
	gfn_searchArgAdd("PROD_CD", dsMain.getColumn(0, "PROD_CD"));
	
	strSvcid        = "selectVndCd";
	strController   = "/cr/cl/aa/selectClAa010Main.do";
	strInputDs      = "";
	strOutputDs     = "dsVndCd=dsVndCd";
	strParam        = "sqlid=dsVndCd:ClAa010.selectVndCd;";

    gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, null, false);
}

function fn_getRgodFixUprc(){
	gfn_searchArgAdd("COMP_CD", dsMain.getColumn(0, "COMP_CD"), true);
	gfn_searchArgAdd("PROD_CD", dsMain.getColumn(0, "PROD_CD"));
	gfn_searchArgAdd("PRDC_SEQ", dsMain.getColumn(0, "PRDC_SEQ"));
	strSvcid        = "selectRgodFixUprc";
	strController   = "/cr/cl/aa/selectClAa010Main.do";
	strInputDs      = "";
	strOutputDs     = "dsRgodFixUprc=dsRgodFixUprc";
	strParam        = "sqlid=dsRgodFixUprc:ClAa010.selectRgodFixUprc;";
    gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, null, false);
}

function divMain_edtRpodBarcd_onkeydown(obj:Edit, e:KeyEventInfo)
{
	var compCd;
	var ordrYmd;
	var ordrNo;
	if(e.keycode==13){
	    if( gfn_getLeng(divMain.edtRpodBarcd.value)>5 ){
			gfn_WpBarcdInfo(divMain.edtSessCompCd.value,divMain.edtSessBrandCd.value,divMain.edtShopCd.value, divMain.edtRpodBarcd.value,"sBarCdDataSet");
			if(sBarCdDataSet.getRowCount()==1){
				dsColrCd.filter("");
				dsSizeCd.filter("");
				gfn_WpProdColrSizeSearch(divMain.edtSessCompCd.value,divMain.edtSessBrandCd.value,divMain.edtShopCd.value,sBarCdDataSet.getColumn(0,"PROD_CD"),"dsSearchPopProdInfo","dsColrCd","dsSizeCd");
				gfn_setComboFilter('divMain.cboSizeCd', 'dsSizeCd', 'divMain.cboColrCd', 'COLR_CD:divMain.cboColrCd');//사이즈
				
				var vPordInfoDs = gfn_getWpPordColrSizeInfo(divMain.edtSessCompCd.value, divMain.edtSessBrandCd.value, divMain.edtShopCd.value, dsSearchPopProdInfo.getColumn(0,"PROD_CD"), sBarCdDataSet.getColumn(0,"COLR_CD"), sBarCdDataSet.getColumn(0,"SIZE_CD"), "S");
				dsMain.setColumn(dsMain.rowposition,"PROD_CD",dsSearchPopProdInfo.getColumn(0,"PROD_CD"));
				dsMain.setColumn(dsMain.rowposition,"PROD_NM",dsSearchPopProdInfo.getColumn(0,"PROD_NM"));
				dsMain.setColumn(dsMain.rowposition,"COLR_CD",sBarCdDataSet.getColumn(0,"COLR_CD"));
				var e = new ItemChangeEventInfo;
				gfn_commcd_onitemchanged(divMain.cboColrCd,e);
				
				dsMain.setColumn(dsMain.rowposition,"SIZE_CD",sBarCdDataSet.getColumn(0,"SIZE_CD"));
				dsMain.setColumn(dsMain.rowposition,"SIZE_NM",sBarCdDataSet.getColumn(0,"SIZE_NM"));
				fn_findVndCd();
				fn_getRgodFixUprc();
				divMain.edtRpodBarcd.value = "";
			}else{
				gfn_alert("","바코드정보를 정상적으로 입력하시기 바랍니다.");
			    divMain.edtRpodBarcd.value = "";
			    return false;
			}
		}else{
			gfn_alert("","바코드정보를 정상적으로 입력하시기 바랍니다.");
			divMain.edtRpodBarcd.value = "";
		}
	}
}

function divMain_cboPrdcSeq_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
{
 
	dsMain.setColumn(0, "PRDC_CMPY_CD", dsVndCd.getColumn(dsVndCd.findRow("INDC_SEQ", e.postvalue), "VND_CD"));
	dsMain.setColumn(0, "PRDC_CMPY_NM", dsVndCd.getColumn(dsVndCd.findRow("INDC_SEQ", e.postvalue), "VND_NM"));
	//fn_getRgodFixUprc();
}

function divBottom_cboClamDivCd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
{
	if(obj.value == "1"){
		divBottom.cboRgodWhCd.value = "A003";
		dsClamTypeCd.filter("");
		dsClamTypeCd.filter("REFR_VAL_1 == '1'");
	}else if(obj.value == "2"){
		divBottom.cboRgodWhCd.value = "A010";
		dsClamTypeCd.filter("");
		dsClamTypeCd.filter("REFR_VAL_1 == '2' || REFR_VAL_2 == '3'" );
	}else if(obj.value == "3"){
		divBottom.cboRgodWhCd.value = "A009";
		dsClamTypeCd.filter("");
		dsClamTypeCd.filter("REFR_VAL_1 == '2' || REFR_VAL_2 == '3'" );
	}
}

function divMain_btnRprNo_onclick(obj:Button,  e:ClickEventInfo)
{
	var sParam = {"sPopCompCd":divSrch.cboCompCd,"sPopOdivCd":divSrch.cboOdivCd,"sPopShopCd":""};
	var sRet = gfn_dialog(this, "popup", "popup::CrClamList.xfdl", -1, -1, -1, -1, false, "-1", sParam, false, false );
	
	if(gfn_isNotNull(sRet))
	{
		divMain.maeRecvYm.value = sRet[0];
		divMain.edtRprNo.value = sRet[1];
		fn_rprCount();
	}else{
		//divMain.edtRprNo.value = "";
		divMain.edtRprNo.setFocus();
	}
}

function fn_rprCount(obj:Button){
	gfn_searchArgsAdd(divSrch);
	var rprNo = divMain.edtRprNo.value;
	var recvYm = divMain.maeRecvYm.value;
	gfn_searchArgAdd("recvYm", recvYm);
	gfn_searchArgAdd("rprNo", rprNo);
	
	strSvcid        = "selectRprCount";
	strController   = "/cr/cl/aa/selectClAa010Main.do";
	strInputDs      = "";
	strOutputDs     = "dsCnt=dsCnt";
	strParam        = "sqlid=dsCnt:ClAa010.selectRprNoCnt;";

    gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, obj, null, false);
}

function fn_rprListPopup(div:Div, obj:Button){
	var sParam = {"sPopCompCd":divSrch.cboCompCd,"sPopOdivCd":divSrch.cboOdivCd,"sPopShopCd":divMain.edtShopCd};
	var sRet = gfn_dialog(div, "popup", "popup::CrClamList.xfdl", -1, -1, -1, -1, false, "-1", sParam, false, false );
	
	if(gfn_isNotNull(sRet))
	{
		divMain.maeRecvYm.value = sRet[0];
		divMain.edtRprNo.value = sRet[1];
		fn_read();
	}else{
		//fn_new();
		/*var recvYm = dsMain.getColumn(0, "RECV_YM");
		dsMain.deleteAll();
		var addRow = dsMain.addRow();
		dsMain.setColumn(addRow, "RECV_YM", recvYm);
		dsMain.setColumn(addRow, "COMP_CD", divSrch.cboCompCd.value);
		dsMain.setColumn(addRow, "ODIV_CD", divSrch.cboOdivCd.value);
		//divProgress.calShopRecvYmd.calFrom.value = fv_toDay;
		dsMain.setColumn(addRow, "SHOP_RECV_YMD", fv_toDay);
		divMain.edtHpNo1.value = "";
		divMain.edtHpNo2.value = "";
		fn_setInput();*/
	}
	this.removeChild("_rtnPopupDs");
}
function divMain_edtRprBarcd_onkeydown(obj:Edit, e:KeyEventInfo)
{
	if(e.keycode==13){
		divMain.rdoSellBfeAfCd.setFocus();
	}
}

function divMain_edtRprBarcd_onkillfocus(obj:Edit, e:KillFocusEventInfo)
{
	if(gfn_getValue(divMain.edtRprBarcd.value) != ""){
		var sCompCd = divSrch.cboCompCd.value;
		var sBrandCd = divMain.edtSessBrandCd.value;
		var sShopCd = divMain.edtShopCd.value;
		var sRprBarcd = divMain.edtRprBarcd.value;
		var sGubunCd = "";
		var rtn = gfn_clamBarcd(sCompCd,sBrandCd,sShopCd,sRprBarcd,sGubunCd);
		if(rtn == false){
			divMain.edtRprBarcd.value = "";
		}
	}
}

function divMain_cboColrCd_onsetfocus(obj:Combo, e:SetFocusEventInfo)
{
	obj.dropdown();
}

function divMain_cboSizeCd_onsetfocus(obj:Combo, e:SetFocusEventInfo)
{
	obj.dropdown();
}

function dsMain_onload(obj:Dataset, e:DSLoadEventInfo)
{
	if(dsMain.getRowCount() == 1 && dsMain.getColumn(0, "PRDC_SEQ") != ""){
		stat = 1;
		fn_findVndCd();
	}
}

function divBottom_btnMbrRgodFix_onclick(obj:Button,  e:ClickEventInfo)
{
	if( gfn_isNull(dsMain.getColumn(0,"RPR_NO")) ){
		gfn_alert("저장 후 본사 확정해주시기 바랍니다..");
		return;
	}
	var vCheckStatCd = fn_checkStatCd();
	if( vCheckStatCd != "01" && vCheckStatCd != "02" ){
		gfn_alert("매장접수 또는 본사접수 상태에서만 확정 가능합니다.");
		return;
	}
	if(  vCheckStatCd == "06" ){
		gfn_alert("이미 본사 반품 확정한 건입니다.");
		return;
	}
	if( gfn_isNotNull(dsMain.getColumn(dsMain.rowposition, "MBR_RGOD_FIX_YMD")) ){
		gfn_alert("이미 본사반품 확정한 건입니다.");
		return;
	}

	if(gfn_getValue(dsMain.getColumn(0,"SELL_BFE_AF_CD"))=="02"){
		if( gfn_getValue(dsMain.getColumn(0,"CLAM_UPRC_BASE"))=="" ){
			gfn_alert("클레임감가기준을 선택해 주시기 바랍니다.");
			return false;
		}
		if(gfn_getValue(divBottom.mskRgodFixUprc.value) == ""){
			gfn_alert("SP.018", "고객반품가|반품확정");
			return false;
		}
	}

	if( gfn_isNull(divBottom.cboClamDivCd.value) || gfn_isNull(divBottom.cboClamTypeCd.value)
	   || gfn_isNull(divBottom.cboClamCausCd.value) ){
		gfn_alert("클레임 구분, 유형, 원인을 입력해 주시기 바랍니다.");
		return false;
	}
	
	if( divBottom.cboClamDivCd.value != divBottom.cboClamDivCd.value.substr(0,1)){
		gfn_alert("클레임 원인은 클레임 유형에 속하는 값을 입력해야 합니다.");
		return false;
	}
	
	if(gfn_getValue(dsMain.getColumn(0,"MBR_RECV_YMD")) != ""){
		if( gfn_getValue(dsMain.getColumn(0,"MBR_RGOD_FIX_YMD")) == ""){
			if( dsMain.getColumn(0,"MBR_RECV_YMD") > fv_toDay ){
				gfn_alert("본사접수일이 본사반품일보다 이후 날짜일수 없습니다.");
				return false;
			}
		}else{
			if( dsMain.getColumn(0,"MBR_RECV_YMD") > gfn_getValue(dsMain.getColumn(0,"MBR_RGOD_FIX_YMD")) ){
				gfn_alert("본사접수일이 본사반품일보다 이후 날짜일수 없습니다.");
				return false;
			}
		}
	}
	dsMain.setColumn(dsMain.rowposition, "RGOD_QTY", 1);
	
    if (!fn_preSaveMain()) return;
    
	if (!gfn_confirm("본사반품 확정 하시겟습니까")) return;
	
	if(gfn_getValue(dsMain.getColumn(0,"MBR_RECV_YMD")) == ""){
		dsMain.setColumn(0, "MBR_RECV_YMD", fv_toDay);
	}
	if( gfn_isNull(dsMain.getColumn(0,"MBR_RGOD_FIX_YMD")) ){
		dsMain.setColumn(0, "MBR_RGOD_FIX_YMD", fv_toDay);
	}
    dsMain.setColumn(dsMain.rowposition, "RGOD_FIX_UPRC", divBottom.mskRgodFixUprc.value);
	dsMain.setColumn(dsMain.rowposition, "RGOD_FIX_UPRC_YMD", fv_toDay);
	dsMain.setColumn(dsMain.rowposition, "FRST_CHRG_MAN_ID", gv_userId);
	
	var strSvcid    	= "saveRgod";
	var strController   = "/cr/cl/aa/execPR_CR_CLAIM_RGOD_PROC.do";
	var strInputDs    	= "dsMain=dsMain:U";
	var strOutputDs   	= "";
	var strParam    	= "";

	gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, obj);
}

function divBottom_btnMbrRgodFixCancel_onclick(obj:Button,  e:ClickEventInfo)
{
	
	var vCheckStatCd = fn_checkStatCd();
	if(  vCheckStatCd == "90" ){
		gfn_alert("그룹웨어 결재 기안건은 취소 할수 없습니다..");
		return;
	}
	if(  vCheckStatCd == "99" ){
		gfn_alert("고객 반품 등록 건은 취소 할수 없습니다.");
		return;
	}
	if(  vCheckStatCd != "06" ){
		gfn_alert("본사반품 확정건만 본사반품 취소 할수 있습니다.");
		return;
	}
	if( gfn_isNull(dsMain.getColumn(dsMain.rowposition, "MBR_RGOD_FIX_YMD")) ){
		gfn_alert("본사반품 확정건만 본사반품 취소 할수 있습니다.");
		return;
	}
	if( gfn_isNotNull(dsMain.getColumn(dsMain.rowposition, "SELL_NO")) ){
		gfn_alert("매장 고객반품 등록건은 본사반품 취소 할수 없습니다.");
		return;
	}
	if (!gfn_confirm("본사반품 취소 하시겟습니까")) return;
	
	dsMain.setColumn(dsMain.rowposition, "RGOD_QTY", 1);
	if( gfn_isNull(dsMain.getColumn(0,"MBR_RGOD_FIX_YMD")) ){
		dsMain.setColumn(dsMain.rowposition, "MBR_RGOD_FIX_YMD", fv_toDay);
	}
	dsMain.setColumn(dsMain.rowposition, "FRST_CHRG_MAN_ID", gv_userId);
	//divBottom.calMbrRgodFixYmd.calFrom.value = fv_toDay;
	if (!fn_preSaveMain()) return;
	var strSvcid    	= "cancelRgod";
	var strController   = "/cr/cl/aa/execPR_CR_CLAIM_RGOD_PROC_CANCEL.do";
	var strInputDs    	= "dsMain=dsMain:U";
	var strOutputDs   	= "";
	var strParam    	= "";

	gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, obj);
}

function divMain_btnRprHistory_onclick(obj:Button,  e:ClickEventInfo)
{
	var hp1 = divMain.edtHpNo1.value;
	var hp2 = divMain.edtHpNo2.value;
	var hp3 = divMain.edtHpNo3.value;
	var hpNo = hp1 + hp2 + hp3;
	var sParam =  {"sPopCompCd":divSrch.cboCompCd,"sPopOdivCd":divSrch.cboOdivCd,"sPopHpNo":hpNo,"sPopBrandCd":divMain.edtSessBrandCd};
	gfn_dialog(divMain, "popup", "crcl::CRCLAA010_P01.xfdl", -1, -1, -1, -1, false, "-1", sParam, false, false );
}

function divBottom_btnClamH_onclick(obj:Button,  e:ClickEventInfo)
{
	var sParam =  {"sPopCompCd":divSrch.cboCompCd,"sPopOdivCd":divSrch.cboOdivCd,"sPopRecvYm":divMain.maeRecvYm,"sPopRprNo":divMain.edtRprNo};
	gfn_dialog(divMain, "popup", "crcl::CRCLAA010_P02.xfdl", -1, -1, -1, -1, false, "-1", sParam, false, false );
}

function divBottom_btnPrdcCmpy_onclick(obj:Button,  e:ClickEventInfo)
{
	gfn_callCmonPop("popCompVnd","CR_VND",false,"fn_popCallBack",false,divSrch.cboCompCd);
	
	/*
	var sParam =  {"sPopCompCd":divSrch.cboCompCd,"sPopBrandCd":divMain.edtSessBrandCd,"sPopProdCd":divMain.edtProdCd};
	var sRet = gfn_dialog(divBottom, "popup", "popup::CrVndCdList.xfdl", -1, -1, -1, -1, false, "-1", sParam, false, false );
	if(gfn_isNotNull(sRet))
	{
		divBottom.edtPrdcCmpyCd.value = sRet[0];
		divBottom.edtPrdcCmpyNm.value = sRet[1];
	}else{
		divBottom.edtPrdcCmpyCd.value = "";
		divBottom.edtPrdcCmpyNm.value = "";
		divBottom.edtPrdcCmpyCd.setFocus();
		return false;
	}
	*/
	
}

function divBottom_edtPrdcCmpyCd_onkillfocus(obj:Edit, e:KillFocusEventInfo)
{
	if( gfn_isNotNull(obj.value) ){
		gfn_callCmonPop("popCompVnd","CR_VND",false,"fn_popCallBack",false,divSrch.cboCompCd);
	}else{
		divBottom.edtPrdcCmpyCd.value = "";
		divBottom.edtPrdcCmpyNm.value = "";
	}
}

function fn_popCallBack(strID, variant) {

	switch(strID) {
		case 'popCompVnd':
			if(gfn_getValue(variant) != ""){
				divBottom.edtPrdcCmpyCd.value = variant[1][0];
				divBottom.edtPrdcCmpyNm.value = variant[2][0];
			}else{
				divBottom.edtPrdcCmpyCd.value = "";
				divBottom.edtPrdcCmpyNm.value = "";
			}			

			break;
		default:
			trace("strID===>"+strID);
			break;
	}
}

function divSrch_cboCompCd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
{
	dsMain.clearData();
	dsClamH.clearData();
	gfn_setComboFilter('divSrch.cboOdivCd', 'dsOdivCd', 'divSrch.cboCompCd', 'COMP_CD:divSrch.cboCompCd');
	fn_setDefaultValue();
	fn_setShopCd();
}

function divSrch_cboOdivCd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
{
	dsMain.clearData();
	dsClamH.clearData();
	//gfn_setComboFilter('divSrch.cboOdivCd', 'dsOdivCd', 'divSrch.cboCompCd', 'COMP_CD:divSrch.cboCompCd');
	fn_setDefaultValue();
	fn_setShopCd();
}

function divBottom_btnRgodFixUprc_onclick(obj:Button,  e:ClickEventInfo)
{
	if (!fn_preSaveMain()) return;
	
	if (!gfn_confirm("Common.C201")) return;
	
	dsMain.setColumn(dsMain.rowposition, "RGOD_FIX_UPRC", divBottom.mskRgodFixUprc.value);
	divProgress.calRgodFixUprcYmd.calFrom.value = fv_toDay;
	
	var strSvcid    	= "saveCrClam";
	var strController   = "/cr/cl/aa/saveClAa010CrClam.do";
	var strInputDs    	= "dsMain=dsMain:U";
	var strOutputDs   	= "";
	var strParam    	= "sqlid=dsMain:ClAa010.saveCrClam;";

	gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, obj);
}

function divMain_rdoSellBfeAfCd_canitemchange(obj:Radio, e:ItemChangeEventInfo)
{
	if(e.postvalue == "01"){
		divMain.calPurcYmd.enable = false;
		divMain.calPurcYmd.calFrom.value = "";
	}else{
		divMain.calPurcYmd.enable = true;
	}
}

//고객반품가 확정 이후에는 매장에서 입력하는 부분 수정하지 못함
function fn_setInput(){
	var clamStatCd = toNumber(gfn_getValue(dsMain.getColumn(dsMain.rowposition, "CLAM_STAT_CD")));
	if(clamStatCd >= 3){
		var childlist = divMain.components;
		for(var i=0; i < childlist.length ; i++){
			childlist[i].enable = false;
		}
		divMain.edtBaseAddr.readonly = true;
		divMain.edtLoadNmbaseAddr.readonly = true;
		divMain.edtDetlAddr.readonly = true;
		divMain.edtLoadNmDetlAddr.readonly = true;
		divMain.maeRecvYm.enable = true;
		divMain.edtRprNo.enable = true;
		divMain.btnRprNo.enable = true;
		divBottom.cboClamDivCd.enable = false;
		divBottom.cboClamTypeCd.enable = false;
		divBottom.cboClamCausCd.enable = false;
	}
	//if(clamStatCd >= 6){
	if(clamStatCd >= 3){
		var childlist1 = divMain.components;
		for(var i=0; i < childlist.length ; i++){
			childlist1[i].enable = false;
		}
		var childlist2 = divProgress.components;
		for(var j=0; j < childlist2.length ; j++){
			childlist2[j].enable = false;
		}
		var childlist3 = divBottom.components;
		for(var k=0; k < childlist3.length ; k++){
			childlist3[k].enable = false;
		}
		divMain.maeRecvYm.enable = true;
		divMain.edtRprNo.enable = true;
		divMain.btnRprNo.enable = true;
		divBottom.btnClamH.enable = true;
		//divBottom.cboClamDivCd.enable = true;
	}
	if(clamStatCd < 3){
		var childlist = divMain.components;
		for(var i=0; i < childlist.length ; i++){
			childlist[i].enable = true;
		}
		var childlist2 = divProgress.components;
		for(var j=0; j < childlist2.length ; j++){
			childlist2[j].enable = true;
		}
		var childlist3 = divBottom.components;
		for(var k=0; k < childlist3.length ; k++){
			childlist3[k].enable = true;
		}
	}
	divBottom.txaMbrRmrk.enable = true;
	divProgress.calMbrRgodFixYmd.enable = false;
	divProgress.calGwYmd.enable = false;
	divProgress.calFlSlipYmd.enable = false;
	divBottom.mskRgodFixUprc.readonly = true;
	if( gfn_getValue(dsMain.getColumn(0,"CLAM_UPRC_BASE"))=="99"){
		divBottom.mskRgodFixUprc.readonly = false;
	}
}

function fn_progressImage(){
	var clamStatCd = dsMain.getColumn(0, "CLAM_STAT_CD");
	
	divProgress.stcA.class = "level_out";
	divProgress.stcB.class = "level_out";
	divProgress.stcC.class = "level_out";
	divProgress.stcD.class = "level_out";
	divProgress.stcE.class = "level_out";
	divProgress.stcF.class = "level_out";
	if(clamStatCd == "01"){//매장접수
		divProgress.stcA.class = "levelR";
	}else if(clamStatCd == "02"){//본사접수
		divProgress.stcB.class = "levelR";
	}else if(clamStatCd == "03"){//매장반송
		divProgress.stcC.class = "levelR";
	}else if(clamStatCd == "06"){//본사반품확정
		divProgress.stcD.class = "levelR";
	}else if(clamStatCd == "07"){//그룹웨어기안
		divProgress.stcE.class = "levelR";
	}else if(clamStatCd == "08"){//전표처리
		divProgress.stcF.class = "levelR";
	}
	
	if(gfn_getValue(dsMain.getColumn(0, "SHOP_SEND_YMD")) != ""){
		divProgress.stcC.visible = true;
		divProgress.calShopSendYmd.visible = true;
		divProgress.stcC.position = "absolute 322 17 422 42";
		divProgress.stcD.position = "absolute 422 17 522 42";
		divProgress.stcE.position = "absolute 526 17 626 42";
		divProgress.stcF.position = "absolute 630 17 730 42";
		divProgress.calShopSendYmd.position = "absolute 331 45 412 66";
		divProgress.calMbrRgodFixYmd.position = "absolute 431 45 512 66";
		divProgress.calGwYmd.position = "absolute 535 45 616 66";
		divProgress.calFlSlipYmd.position = "absolute 639 45 720 66";
	}else{
		divProgress.stcTF.visible = false;
		divProgress.stcC.visible = false;
		divProgress.calShopSendYmd.visible = false;
		divProgress.stcD.position = "absolute 322 17 422 42";
		divProgress.stcE.position = "absolute 422 17 522 42";
		divProgress.stcF.position = "absolute 526 17 626 42";
		divProgress.calMbrRgodFixYmd.position = "absolute 331 45 412 66";
		divProgress.calGwYmd.position = "absolute 431 45 512 66";
		divProgress.calFlSlipYmd.position = "absolute 535 45 616 66";
	}
	
}
function divBottom_cboClamTypeCd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
{
	dsClamCausCd.filter("");
	dsClamCausCd.filter("REFR_VAL_1 == '" + obj.value + "'");
}

// 다른메뉴에서 호출시 호출하는 함수
function fn_pageLink(oParam) {
	divMain.maeRecvYm.value = oParam[0];
	divMain.edtRprNo.value = oParam[1];
	divMain.edtShopCd.value = oParam[2];
	divMain.edtShopNm.value = oParam[3];
	divSrch.cboCompCd.value = oParam[4];
	divMain.edtSessCompCd.value = oParam[4];
	var e = new ItemChangeEventInfo;
	gfn_commcd_onitemchanged(divSrch.cboCompCd,e);
	divMain.edtSessOdivCd.value = oParam[5];
	divMain.edtSessBrandCd.value = oParam[6];
	divSrch.cboOdivCd.value = oParam[5];
	
	fn_read();
}

function fn_checkRegiId(){
	if(gfn_getValue(dsMain.getColumn(dsMain.rowposition, "REGI_ID")) == ""){
		divBottom.btnMbrRgodFix.enable = false;
	}else{
		divBottom.btnMbrRgodFix.enable = true;
	}
	
	if(gfn_getValue(divProgress.calShopSendYmd.calFrom.value) != ""){
		divBottom.btnMbrRgodFix.enable = false;
	}else{		
		if(gfn_getValue(dsMain.getColumn(dsMain.rowposition, "MBR_RGOD_FIX_NO")) != ""){
			divBottom.btnMbrRgodFix.enable = false;
			divBottom.cboClamPrcBase.readonly = true;
		}else{
			divBottom.btnMbrRgodFix.enable = true;
			divBottom.cboClamPrcBase.readonly = false;
		}
	}
	
	if( gfn_getValue(dsMain.getColumn(dsMain.rowposition, "MBR_RGOD_FIX_NO")) != ""){
		divBottom.btnMbrRgodFixCancel.visible = true;
		divBottom.btnMbrRgodFix.visible = false;
		if(gfn_getValue(divProgress.calGwYmd.calFrom.value) != "" || gfn_getValue(divProgress.calFlSlipYmd.calFrom.value) != ""){
			divBottom.btnMbrRgodFixCancel.enable = false;
		}else{
			divBottom.btnMbrRgodFixCancel.enable = true;
		}
		divBottom.cboClamPrcBase.readonly = true;
	}else{
		divBottom.btnMbrRgodFixCancel.visible = false;
		divBottom.btnMbrRgodFix.visible = true;
		divBottom.cboClamPrcBase.readonly = false;
	}
	
}

function divBottom_btnShopSend_onclick(obj:Button,  e:ClickEventInfo)
{
	var vCheckStatCd = fn_checkStatCd();
	if( vCheckStatCd != "01" && vCheckStatCd != "02" ){
		gfn_alert("매장접수 또는 본사접수상태만 매장반송 가능합니다.");
		return;
	}
	var clamStatCd = gfn_getValue(dsMain.getColumn(dsMain.rowposition, "CLAM_STAT_CD"));
	if(clamStatCd >= "06"){
		gfn_alert("본사반품확정 이후에는 반송할 수 없습니다.");
		return;
	}
	
	if (!gfn_confirm("Common.C201")) return;
	
	dsMain.setColumn(dsMain.rowposition,"SHOP_SEND_YMD", fv_toDay);
	dsMain.setColumn(dsMain.rowposition,"CLAM_DIV_CD", "");
	dsMain.setColumn(dsMain.rowposition,"CLAM_TYPE_CD", "");
	dsMain.setColumn(dsMain.rowposition,"CLAM_CAUS_CD", "");

	var strSvcid    	= "saveCrClam";
	var strController   = "/cr/cl/aa/saveClAa010CrClam.do";
	var strInputDs    	= "dsMain=dsMain:U";
	var strOutputDs   	= "";
	var strParam    	= "sqlid=dsMain:ClAa010.saveCrClam;";
	
	gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam);
}

function divMain_calPurcYmd_onkillfocus(obj:comCal, e:KillFocusEventInfo)
{
	//구매일판매가, 현재판매가 조회
	var purcYmd = "";
	if(gfn_getValue(divMain.calPurcYmd.calFrom.value) != "" ){
		purcYmd = divMain.calPurcYmd.calFrom.value;
	}
	var vPordInfoDs = gfn_getWpPordColrSizeInfo(divMain.edtSessCompCd.value, divMain.edtSessBrandCd.value, divMain.edtShopCd.value, divMain.edtProdCd.value, divMain.cboColrCd.value, divMain.cboSizeCd.value, 'S', purcYmd);
	divMain.mskBuySellPrce.value = vPordInfoDs.getColumn(0, "SELL_DT_UPRC");
	divMain.mskNowSellPrce.value = vPordInfoDs.getColumn(0, "SELL_UPRC");
}

function divBottom_cboClamDivCd_onkeyup(obj:Combo, e:KeyEventInfo)
{
	if(e.keycode == 13){
		divBottom.cboClamTypeCd.setFocus();
	}
}

function divBottom_cboClamTypeCd_onkeyup(obj:Combo, e:KeyEventInfo)
{
	if(e.keycode == 13){
		divBottom.cboClamCausCd.setFocus();
	}
}

function divBottom_cboClamCausCd_onkeyup(obj:Combo, e:KeyEventInfo)
{
	if(e.keycode == 13){
		divBottom.edtPrdcCmpyCd.setFocus();
	}
}

function divBottom_cboClamDivCd_onsetfocus(obj:Combo, e:SetFocusEventInfo)
{
	divBottom.cboClamDivCd.dropdown();
	//if(divBottom.cboClamDivCd.index == 0){
	//	divBottom.cboClamDivCd.text = "";
	//}
}

function divBottom_cboClamTypeCd_onsetfocus(obj:Combo, e:SetFocusEventInfo)
{
	divBottom.cboClamTypeCd.dropdown();
	//if(divBottom.cboClamTypeCd.index == 0){
	//	divBottom.cboClamTypeCd.text = "";
	//}
}

function divBottom_cboClamCausCd_onsetfocus(obj:Combo, e:SetFocusEventInfo)
{
	divBottom.cboClamCausCd.dropdown();
	//if(divBottom.cboClamCausCd.index == 0){
	//	divBottom.cboClamCausCd.text = "";
	//}
}

var oldMaeRecvYmValue = "";
var oldMaeCompCdValue = "";
var oldMaeOdivCdValue = "";
function divMain_maeRecvYm_onsetfocus(obj:MaskEdit, e:SetFocusEventInfo)
{
	oldMaeRecvYmValue = obj.value;
	oldMaeCompCdValue = divSrch.cboCompCd.value;
	oldMaeOdivCdValue = divSrch.cboOdivCd.value;
}

function divMain_maeRecvYm_onkillfocus(obj:MaskEdit, e:KillFocusEventInfo)
{
	if( oldMaeRecvYmValue != obj.value ){
		oldMaeRecvYmValue = obj.value
		fn_new();
		obj.value = oldMaeRecvYmValue;
		divSrch.cboCompCd.value = oldMaeCompCdValue;
		var e = new ItemChangeEventInfo;
	    gfn_commcd_onitemchanged(divSrch.cboCompCd,e);
		divSrch.cboOdivCd.value = oldMaeOdivCdValue;
		var ee = new ItemChangeEventInfo;
	    gfn_commcd_onitemchanged(divSrch.cboOdivCd,ee);
	}
}

function divMain_cboColrCd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
{
	fn_getRgodFixUprc();
}

function divMain_cboSizeCd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
{
	fn_getRgodFixUprc();
}

function dsMain_oncolumnchanged(obj:Dataset, e:DSColChangeEventInfo)
{
	if(e.columnid == "CLAM_UPRC_BASE"){
	    if( gfn_isNotNull(e.newvalue) ){
			if(dsMain.getColumn(0,"SELL_BFE_AF_CD")=="02"){
				fn_getRgodFixUprc();
			}else{
				gfn_alert("판매전/후가 판매후인 경우에만 선택 가능합니다.");
				dsMain.enableevent = false;
				divBottom.cboClamPrcBase.index = 0;
				dsMain.enableevent = true;
			}
		}
	}else if(e.columnid == "CLAM_DIV_CD"){
		if( gfn_getValue(dsMain.getColumn(0,"CLAM_DIV_CD")) == "1"){
			divBottom.cboRgodWhCd.value = "A003";
			dsClamTypeCd.filter("");
			dsClamTypeCd.filter("REFR_VAL_1 == '1'");
		}else if(gfn_getValue(dsMain.getColumn(0,"CLAM_DIV_CD")) == "2"){
			divBottom.cboRgodWhCd.value = "A010";
			dsClamTypeCd.filter("");
			dsClamTypeCd.filter("REFR_VAL_1 == '2' || REFR_VAL_2 == '3'" ); 
		}else if(gfn_getValue(dsMain.getColumn(0,"CLAM_DIV_CD")) == "3"){
			divBottom.cboRgodWhCd.value = "A009";
			dsClamTypeCd.filter("");
			dsClamTypeCd.filter("REFR_VAL_1 == '2' || REFR_VAL_2 == '3'" ); 
		}
		dsMain.setColumn(0,"CLAM_TYPE_CD","");
		dsMain.setColumn(0,"CLAM_CAUS_CD","");
		dsClamCausCd.filter("");
		dsClamCausCd.filter("REFR_VAL_1 == '" + gfn_getValue(dsMain.getColumn(0,"CLAM_TYPE_CD")) + "'");
	}else if(e.columnid == "CLAM_TYPE_CD"){
	    dsMain.setColumn(0,"CLAM_CAUS_CD","");
		dsClamCausCd.filter("");
		dsClamCausCd.filter("REFR_VAL_1 == '" + gfn_getValue(dsMain.getColumn(0,"CLAM_TYPE_CD")) + "'");
	}else if(e.columnid == "CLAM_CAUS_CD"){
		 
	}
	
}

function fn_checkStatCd(){

	if( gfn_isNotNull(dsMain.getColumn(0,"RPR_NO")) ){
		gfn_searchDsAdd(dsMain);
		
		strSvcid        = "selectRprStatCd";
		strController   = "/cr/cl/aa/selectCrAa010ClamStatCd.do";
		strInputDs      = "";
		strOutputDs     = "dsClamStatCd=dsClamStatCd";
		strParam        = "sqlid=dsClamStatCd:ClAa010.selectClamStatCd;";

		gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, null, false);
		return dsClamStatCd.getColumn(0,"CLAM_STAT_CD");
	}else{
		return "01";
	}
}

function divSrch_edtClamBarCd_onkeydown(obj:Edit, e:KeyEventInfo)
{
	if(e.keycode == 13){
		gfn_searchArgsAdd(divSrch);

		strSvcid        = "selectMain";
		strController   = "/cr/cl/aa/selectClAa010Main.do";
		strInputDs      = "";
		strOutputDs     = "dsMain=dsMain";
		strParam        = "sqlid=dsMain:ClAa010.selectCrClam;";

		gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, obj);
		divSrch.edtRprBarCd.value = "";
	}
}

function divBottom_cboClamCausCd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
{
	
}

/**********************************************************************************************
 * 01. 업무구분 : 인사급여 - 근태관리 - 연차관리
 * 02. 화면 : HRAMAH030.xfdl
 * 03. 화면설명 : 연차현황조회
 * 04. 관련화면/서비스 :
 * 05. 수정이력 :
 **********************************************************************************************
 *  수정일     이  름   	사유
 **********************************************************************************************
 *  2015-04-27  김산	  	최초작성
 *  2015-08-19  김산	  	연차 컬럼 String -> Int로 변경
 **********************************************************************************************
*/

include "lib::commLib.xjs";

/*==============================================================================================
* 2. Form전역변수 선언
*===============================================================================================*/

/*==============================================================================================
* 3. Form onload 처리
*===============================================================================================*/
function fn_onload(obj:Form, e:LoadEventInfo) {

	// 3.1 init
	gfn_init(obj);

	gfn_setToggleSrch([btn_toggle], ["divSrch"], ["divDetail"]);

	// 3.2 call onload function
	fn_setButton();				// 4.1. 버턴 초기화 or Dispaly
	fn_SetDataset();			// 4.2. DataSet 에 초기데이터 Load
	fn_setCommonCode();			// 4.3. 공통코드
	fn_setDefaultValue();		// 4.4. 기본값 설정

}

/*==============================================================================================
* 4. Load 후 초기설정 및 Data Setting
*===============================================================================================*/
// 4.1. 버턴 초기화 or Dispaly
function fn_setButton() {
	//그리드 엔터키 입력시 구동 함수 설정(조회 엔터 선택시)
	gfn_setEnterKeyEvent(divSrch, "fn_read(divCommBtn.btnRead)");
}

// 4.2. DataSet 에 초기데이터 Load
function fn_SetDataset() {
}

// 4.3. 공통코드
function fn_setCommonCode() {
	// 4.3.1 회사코드
	gfn_setCompCd("dsComp", "divSrch.cmbCompCd", "", "");

	// 4.3.2 공통코드 (dsCommCode 데이터셋으로 관리)
	gfn_setCommCode();
}

// 4.4. 기본값 설정
function fn_setDefaultValue() {
	// 4.4.1 Grid 초기화(rownum 표시여부, CheckBox 표시여부(DataSet에 CHK값 필수))
	divGrd.grdMain.grd_onloadInitialization(false,false);

	// 4.4.2 Grid Head의 입력 항목 체크

	// 4.4.3 Grid Head의 필수 항목 체크

	// 4.4.4 Grid Head의 팝업 여부 Set

	// 4.4.5 조회조건 필수값 Set
	divSrch.cmbCompCd.chkdata = "1:R:회사코드";
	divSrch.spnYear.chkdata = "2:R:기준년월";
	
	// 4.4.6 공통팝업 Set
	divSrch.comSearchCodeDept.initType("HR_DEPT","DEPT_CD","DEPT_NM", false, divSrch.cmbCompCd);
	divSrch.comSearchCodeEmp.initType("HR_EMP","EMPNO","EMPNM", false, divSrch.cmbCompCd);
	
	divSrch.spnYear.value = gfn_getToday("YYYY");
}

/*==============================================================================================
* 5. Button Event Area. (공통 버턴 이벤트 함수 영역: 초기화, 조회, 저장, 등...)
*===============================================================================================*/
// 5.1. 초기화
function fn_init(obj:Button) {
	//5.1.1 변경내역 체크
	if(gfn_getChkDsUpdate(dsMain)) return false;

	//5.1.2 화면 다시 로딩
	this.reload();
}

// 5.2. 조회
// 5.2.1. 조회 전 체크
function fn_preRead() {
	//5.2.1.1 변경내역 체크
	if(gfn_getChkDsUpdate(dsMain)) return false;

	//5.2.1.2 필수 항목 체크
	if(gfn_chkSelect(divSrch)) return false;
	
	return true;
}

// 5.2.2. 조회
function fn_read(obj:Button) {
	if (!fn_preRead()) return;

	gfn_searchArgsAdd(divSrch);

	var strSvcid        = "selectAmAh030";
    var strController   = "/hr/am/at/selectAmAh030.do";
    var strInputDs      = "";
    var strOutputDs     = "dsMain=dsMain";
    var strParam        = "sqlid=dsMain:AmAh030.selectAmAh030;";

    gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, obj);
}

// 5.3. 저장
// 5.3.1. 저장 전 체크
function fn_preSave() {
}

// 5.3.2. 저장
function fn_save(obj:Button) {
	
}

// 5.4. 삭제
// 5.4.1. 삭제 전 체크
function fn_preDelete() {
}

// 5.4.2. 삭제
function fn_delete(obj:Button) {
}

// 5.5. 파일
function fn_file(obj:Button) {
}

// 5.6. 인쇄.
function fn_print(obj:Button) {
}

// 5.7. 신규.
function fn_new(obj:Button) {
}

// 5.8. 기타1
function fn_custom1(obj:Button) {
}

// 5.9. 기타2
function fn_custom2(obj:Button) {
}

/*==============================================================================================
* 6. User CallBack Function.(사용자 콜백 함수)
*===============================================================================================*/
function fn_callback(svcid, errcd, errmsg) {
	if (errcd < 0) return;

	switch(svcid) {
		case 'selectAmAh030':
			//상태창에 총건수 표시
			gfn_status("Information.I013", dsMain.rowcount);
			break;
		default:
			break;
	}
}

/*==============================================================================================
* 7. Local Function. (사용자 정의 함수)
*    - 사용자 정의 함수는 fn_xxxx() 현태로 작성  + 기본 이벤트 function
*==============================================================================================*/
function divSrch_cmbCompCd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
{
	dsMain.clearData();
	
	divSrch.comSearchCodeDept.edtCode.value = "";
	divSrch.comSearchCodeDept.edtName.value = "";
	
	divSrch.comSearchCodeEmp.edtCode.value = "";
	divSrch.comSearchCodeEmp.edtName.value = "";
}

function dsMain_onrowposchanged(obj:Dataset, e:DSRowPosChangeEventInfo)
{
	gfn_searchDsAdd(obj);

	var strSvcid        = "selectDetailAmAh030";
    var strController   = "/hr/am/at/selectAmAh030.do";
    var strInputDs      = "";
    var strOutputDs     = "dsDetail=dsDetail";
    var strParam        = "sqlid=dsDetail:AmAh030.selectDetailAmAh030;";

    gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, obj);
}

function dsMain_onload(obj:Dataset, e:DSLoadEventInfo)
{
	dsDetail.clearData();
}

/**********************************************************************************************
 * 01. 업무구분 : 연차관리
 * 02. 화면 : HRAMAH020.xfdl
 * 03. 화면설명 : 연차휴가관리
 * 04. 관련화면/서비스 : HRAMAH020
 * 05. 수정이력 : 
 **********************************************************************************************
 *  수정일     이  름   	사유 
 **********************************************************************************************
 *  2015-05-08  SKC    	최초작성
 **********************************************************************************************
*/

include "lib::commLib.xjs";
include "lib::hrValid.xjs";  
 
/*==============================================================================================
* 2. Form전역변수 선언
*===============================================================================================*/ 
var fv_StdYY = gfn_getToday().substr(0,4);

/*==============================================================================================
* 3. Form onload 처리
*===============================================================================================*/ 
function fn_onload(obj:Form, e:LoadEventInfo) {

	// 3.1 init
	gfn_init(obj);
	
	gfn_setToggleSrch([btn_toggle], ["divSrch"], ["divLeft,divGrd"]);
	
	// 3.2 call onload function
	fn_setButton();				// 4.1. 버턴 초기화 or Dispaly
 	fn_SetDataset();			// 4.2. DataSet 에 초기데이터 Load
 	fn_setCommonCode();			// 4.3. 공통코드
 	fn_setDefaultValue();		// 4.4. 기본값 설정

 	fn_readTree("0");
}

 
/*==============================================================================================
* 4. Load 후 초기설정 및 Data Setting
*===============================================================================================*/
// 4.1. 버턴 초기화 or Dispaly
function fn_setButton() {
	gfn_setTextCommBtn("btnCustom1", "연차재계산"); 	//사용자버튼의 텍스트 변경
}

// 4.2. DataSet 에 초기데이터 Load
function fn_SetDataset() {
}

// 4.3. 공통코드
function fn_setCommonCode() {
	// 4.3.1 회사코드
	gfn_setCompCd("dsComp", "divSrch.cboCompCd", "", "");
	
	// 4.3.2 공통코드 (dsCommCode 데이터셋으로 관리)
	gfn_setCommCode();
}

// 4.4. 기본값 설정
function fn_setDefaultValue() {
	// 4.4.1 Grid 초기화(rownum 표시여부, CheckBox 표시여부(DataSet에 CHK값 필수))
	divGrd.grdMain.grd_onloadInitialization(true,false);
	
	// 4.4.2 Grid Head의 입력 항목 체크
	//gfn_setEditCol(divGrd.grdMain, "ERYY_INQU_YN,POPUP_WDTH,POPUP_HGHT");
	
	// 4.4.3 Grid Head의 필수 항목 체크
	//gfn_setRequiredCol(divGrd.grdMain, "POPUP_ID,POPUP_NM");	
	
	// 4.4.4 조회조건 필수값 Set
	divSrch.cboCompCd.chkdata = "1:R:회사코드"; 
	divSrch.spnYY.chkdata = "2:R:기준년도"; 

	divSrch.cosEMP.initType("HR_EMP_ALL","EMPNO","EMPNM", false, divSrch.cboCompCd);	
	
	divDetail.cosEMPD.initType("HR_EMP01","EMP_NO","EMP_NM", false, divDetail.cboCompCdD);
	divDetail.cosDEPTD.initType("HR_DEPT","DEPT_CD","DEPT_NM", false, divDetail.cboCompCdD);			
			
	
	divDetail.cosEMPD.fn_setBindData(dsMain, "EMP_NO", "EMP_NM");
	divDetail.cosDEPTD.fn_setBindData(dsMain, "DEPT_CD", "DEPT_NM");

	divDetail.comENTRDT.fn_setDate(dsMain, "ENTRDT");
	divDetail.comFRST_ENTRDT.fn_setDate(dsMain, "FRST_ENTRDT");

	
	divSrch.spnYY.value = fv_StdYY;	
	
	divDetail.cboCompCdD.enable = false;
	divDetail.cosEMPD.enable = false;
	divDetail.maeRESI_NO.enable = false;
	divDetail.cosDEPTD.enable = false;
	divDetail.cboRANK_CD.enable = false;
	divDetail.cboDUTY_CD.enable = false;
	divDetail.comENTRDT.enable = false;
	divDetail.comFRST_ENTRDT.enable = false;
}

/*==============================================================================================
* 5. Button Event Area. (공통 버턴 이벤트 함수 영역: 초기화, 조회, 저장, 등...)
*===============================================================================================*/
// 5.1. 초기화
function fn_init(obj:Button) {
	//5.1.1 변경내역 체크
	if(gfn_getChkDsUpdate(dsMain)) return false;
	
	//5.1.2 화면 다시 로딩
	this.reload();

}

// 5.2. 조회
// 5.2.1. 조회 전 체크
function fn_preRead() {
	//5.2.1.1 변경내역 체크
	if(gfn_getChkDsUpdate(dsMain)) return false;
	
	//5.2.1.2 필수 항목 체크
	if(gfn_chkSelect(divSrch)) return false;
	
	return true;
}

// 5.2.2. 조회
function fn_read(obj:Button) {

	if (!fn_preRead()) return;
	
	//5.2.2.1 조직도 펼침상태 원복
	dsOrgInfo_onload(dsOrgInfo);
	
	//EMP_NO로 dsOrgInfo를 검색하여 rowposition 이동
	var nRow = dsOrgInfo.findRow("EMP_NO", divSrch.cosEMP.edtCode.value);
	if(nRow == -1) {
		//rowposition으로 안한이유는 전체조회(row:-1)를 연속으로 할 수 있기 때문에.
		fn_readDet(nRow);
	} else {
		//dsOrgInfo.rowposition = nRow;
		fn_readDet(nRow);
		// 조직도에서 해당 사원의 위치 찾기
		fn_findEmp();
	}
}

// 5.2.3 트리목록 조회
function fn_readTree(parentId, depth) {
	if (gfn_isNull(parentId)) return;
	
	gdsSearch.clear();
    gfn_searchArgsAdd(divSrch);
    
	var strSvcid = "selectOrgInfo";
    var strController   = "/hr/am/ah/selectAmAh020.do";
    var strInputDs      = "";
    var strOutputDs     = "dsOrgInfo=dsOrgInfo";
    var strParam        = "sqlid=dsOrgInfo:AmAh020.selectOrgInfo;";
    
    gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam);
}

// 5.3. 저장
// 5.3.1. 저장 전 체크
function fn_preSave() {
	//5.3.1.1 DataSet존재 여부 확인
	if(dsMain.rowposition<0){
		//수정할 자료가 없습니다. error
		gfn_alert("Error.E002","","error");
		return false;
	}

	//5.3.1.1 입력 DIV의 필수 입력값 체크
	if(dsMain.rowcount>0){ //상세 DATA존재시에 체크
		if(gfn_chkSelect(divDetail)) return false;   // 저장 시 필수 조건 컬럼 체크 
		if(gfn_isNotNull(divDetail.maeRESI_NO.value) && gfn_chkObj("주민등록번호", "J", divDetail.maeRESI_NO.value)) return false; 
	}
	
	//5.3.1.2 그리드 필수 값 체크
	if(gfn_chkSave(divGrd.grdMain)) return false;   // 저장 시 필수 조건 컬럼 체크
		
	//5.3.1.3 변경내역 체크
	if(!gfn_getDsUpdate(dsMain, false)) 
	{
		gfn_alert("Error.E002","","error");
		return false;
	}
			
	return true;
	
}

// 5.3.2. 저장
function fn_save(obj:Button) {
	if (!fn_preSave()) return;
	
	if (!gfn_confirm("Common.C201")) return;
	
	gdsSearch.clearData();

	var strSvcid    	= "saveAmAh020";
	var strController   = "/hr/am/ah/saveAmAh020.do";
	var strInputDs    	= "dsMain=dsMain:U";
	var strOutputDs   	= "";
	var strParam    	= "sqlid=dsMain:AmAh020.saveYRYCINFO;";

	gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, obj);
}

// 5.4. 삭제
// 5.4.1. 삭제 전 체크
function fn_preDelete() {

}

// 5.4.2. 삭제
function fn_delete(obj:Button) {

}

// 5.5. 파일
function fn_file(obj:Button) {
	
}

// 5.6. 인쇄
// 5.6.1. 인쇄 전 체크
function fn_prePrint() {

}

function fn_print(obj:Button) {

}

// 5.7. 신규.
function fn_new(obj:Button) {

}

// 5.8. 연차 재계산.
function fn_custom1(obj:Button) {

    if(!gfn_confirm("","연차 재계산을 하시겠습니까?")) return;
    
	fn_CalYRYC();
	
	gdsSearch.clearData();
	gfn_searchArgsAdd(divSrch);  		

	var strSvcid    	= "calcAmAh020";
	var strController   = "/hr/am/ah/saveAmAh020.do";
	var strInputDs    	= "dsMain=dsMain:U";
	var strOutputDs   	= "";
	var strParam    	= "sqlid=dsMain:AmAh020.saveYRYC;";

	gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, obj);
}

/*==============================================================================================
* 6. User CallBack Function.(사용자 콜백 함수)
*===============================================================================================*/
function fn_callback(svcid, errcd, errmsg) {
	
	if (errcd < 0) return;

	switch(svcid) {
		case 'selectOrgInfo':
			// 1단계 트리노드 fold로  표현
			for (var i=divLeft.grdTree.rowcount-1; i>=0; i--) {
				if (divLeft.grdTree.isTreeLeafRow(divLeft.grdTree.getDatasetRow(i)))
					divLeft.grdTree.setTreeStatus(i, true);
			}
			break;
		case 'selectYRYC':
			gfn_status("Information.I013", dsMain.rowcount);	//총 건수 표시
			fn_readDdclz() 
			break;
		case 'calcAmAh020':
			gfn_info("HR.040");
			var nRow = dsOrgInfo.findRow("EMP_NO", divDetail.cosEMPD.edtCode.value);
			fn_readDet(nRow);
			break;			
		case 'saveAmAh020':
			gfn_info("Information.I012");
			
			var nRow = dsOrgInfo.findRow("EMP_NO", divDetail.cosEMPD.edtCode.value);
			fn_readDet(nRow);
			break;
		case 'selectEmpInfo':
			divDetail.maeRESI_NO.value = dsEmpInfo.getColumn(0, "RESI_NO");
			divDetail.comENTRDT.calFrom.value = dsEmpInfo.getColumn(0, "ENTRDT");
			divDetail.comFRST_ENTRDT.calFrom.value = dsEmpInfo.getColumn(0, "FRST_ENTRDT");
			divDetail.cosDEPTD.edtCode.value = dsEmpInfo.getColumn(0, "DEPT_CD");
			divDetail.cosDEPTD.edtName.value = dsEmpInfo.getColumn(0, "DEPT_NM");
			divDetail.cboRANK_CD.value = dsEmpInfo.getColumn(0, "RANK_CD");
			divDetail.cboDUTY_CD.value = dsEmpInfo.getColumn(0, "DUTY_CD");			
			break;
		default:
			break;
	}
}

/*==============================================================================================
* 7. Local Function. (사용자 정의 함수)
*    - 사용자 정의 함수는 fn_xxxx() 현태로 작성  + 기본 이벤트 function
*==============================================================================================*/

// 7.1 검색조건의 법인 변경 시 조직도 재 조회 및 clear
function divSrch_cboCompCd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
{
 	fn_readTree("0");	
    dsMain.clearData();
    
    divSrch.cosEMP.edtCode.value = "";
	divSrch.cosEMP.edtName.value = "";
}

// 7.2 연차정보 display
function fn_readDet(row) {
	divDetail.cosEMPD.edtCode.readonly = true;
	divDetail.cosEMPD.edtName.readonly = true;
	divDetail.cosEMPD.btnSearch.enable = false;
    
    //divSrch.cosEMP.edtCode.value = dsOrgInfo.getColumn(row, "EMP_NO");
    //divSrch.cosEMP.edtName.value = dsOrgInfo.getColumn(row, "EMP_NM");
    
	var empNo = dsOrgInfo.getColumn(row, "EMP_NO");
	//var empNo = divSrch.cosEMP.edtCode.value;

    if(empNo != "0") {
		dsMain.clearData();

		gfn_searchArgsAdd(divSrch);
		gfn_searchArgAdd("EMP_NO", empNo);

		var strSvcid        = "selectYRYC";
		var strController   = "/hr/am/ah/selectAmAh020.do";
		var strInputDs      = "";
		var strOutputDs     = "dsMain=dsMain";
		var strParam        = "sqlid=dsMain:AmAh020.selectYRYC;";
		
		gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam);
    }
}

// 7.3 하단 연차사용내역 display 
function fn_readDdclz() {

    dsVCAAPPL.clearData();
    
	var empNo = dsMain.getColumn(dsMain.rowposition, "EMP_NO");

	gfn_searchArgsAdd(divSrch);
	gfn_searchArgAdd("EMP_NO", empNo);
  
	var strSvcid        = "selectVCAAPPL";
	var strController   = "/hr/am/ah/selectAmAh020.do";
	var strInputDs      = "";
	var strOutputDs     = "dsVCAAPPL=dsVCAAPPL";
	var strParam        = "sqlid=dsVCAAPPL:AmAh020.selectVCAAPPL";
	
	gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, null, false);
    
}

// 7.4 조직도의 선택된 직원
function dsOrgInfo_canrowposchange(obj:Dataset, e:DSRowPosChangeEventInfo)
{
	//7.2.1 변경내역 체크
	if(obj.getColumn(e.newrow, "EMP_NO") != "0") {

		if(gfn_getChkDsUpdate(dsMain)) return false;
		
		//var param1 = obj.getColumn(e.newrow, "COMP_CD");
		//curDeptCd = obj.getColumn(e.newrow,"DEPT_CD");
		var curEmpNo = obj.getColumn(e.newrow,"EMP_NO");
		var curEmpNm = obj.getColumn(e.newrow,"EMP_NM");
		
		divSrch.cosEMP.edtCode.value = curEmpNo;
		divSrch.cosEMP.edtName.value = curEmpNm;
		
		fn_readDet(e.newrow);

	}	
}

// 7.5 뎁스 레벨 2 이하는 펼쳐보이기
function dsOrgInfo_onload(obj:Dataset, e:DSLoadEventInfo)
{
	obj.enableevent = false;
	
	for(var i = 0; i < obj.rowcount; i++) {
		if(obj.getColumn(i, "LEVL") < 2) {
			divLeft.grdTree.setTreeStatus(i, true);
		} else {
			divLeft.grdTree.setTreeStatus(i, false);
		}
	}
	
	obj.enableevent = true;
}

this.nCurRow = 0;
this.treeStatus = 0;

// 7.6 조직도 더블클릭시 펼침기능
function divLeft_divGrd_grdTree_oncelldblclick(obj:Grid, e:GridClickEventInfo)
{
	var objDs = this[obj.binddataset];

	if (this.treeStatus == 1) 
	{
		this.treeStatus = 0;
		return;
	}

	var childRow = obj.getTreeChildRow(objDs.rowposition, 0, true);

	// 자식 노드가 존재할 경우
	if (childRow >= 0) 
	{
		var gridRow = obj.getTreeRow(objDs.rowposition);
		if (obj.isTreeCollapsedRow(childRow, true)) 
		{
			obj.setTreeStatus(gridRow, true);
		}
		else 
		{
			obj.setTreeStatus(gridRow, false);
		}
	}
	this.treeStatus = 0;
}

this.grd_TreeCommunity_cantreestatuschange = function (obj:Grid, e:GridTreeStatusEventInfo)
{
	this.treeStatus = 1;
}

// 7.7 Emp정보 신청 세팅
function fn_setEmpInfo(rtnArray) {

	gfn_searchArgAdd("EMP_NO", rtnArray[0][0], true);
	gfn_searchArgAdd("COMP_CD", divDetail.cboCompCdD.value);
  
	var strSvcid        = "selectEmpInfo";
	var strController   = "/hr/am/ah/selectEmpInfo.do";
	var strInputDs      = "";
	var strOutputDs     = "dsEmpInfo=dsEmpInfo";
	var strParam        = "sqlid=dsEmpInfo:AmAh020.selectEmpInfo;";
	
	gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam);
}

function divSrch_cboCompCd_canitemchange(obj:Combo, e:ItemChangeEventInfo)
{
	if(gfn_getChkDsUpdate(dsMain)) return false;	
}

// 7.8 연차정보 재계산
function fn_CalYRYC()
{
    var v_BaseYRYC =  toNumber(dsYRYC_CNT.getColumn(dsYRYC_CNT.rowposition,"REFR_VAL_1"));
    var v_MaxYRYC =   toNumber(dsYRYC_CNT.getColumn(dsYRYC_CNT.rowposition,"REFR_VAL_2"));
    var v_WKYC = 0;
    var v_DivWKYC = 0;    
    var v_ModWKYC = 0;
    var v_OccrWKYC = 0;

	dsMain.updatecontrol = false;
	dsMain.setRowType(dsMain.rowposition, Dataset.ROWTYPE_INSERT);
	dsMain.updatecontrol = true;
	   
	v_WKYC = toNumber(dsMain.getColumn(dsMain.rowposition,"WKYC"));   // 근속년수
	v_DivWKYC = Math.floor(v_WKYC/2);    // 나누기
	v_ModWKYC = (v_WKYC % 2);   	 // 나머지												

	if (v_WKYC== 0){
		v_OccrWKYC = toNumber(dsMain.getColumn(dsMain.rowposition,"THISMCNT"));
	}else {			
		if(v_ModWKYC == 1){
							
			if(v_BaseYRYC + v_DivWKYC >= v_MaxYRYC){
				v_OccrWKYC = v_MaxYRYC;
			}else{
				v_OccrWKYC = v_BaseYRYC + v_DivWKYC;
			}
		} else {
			
			v_OccrWKYC = v_BaseYRYC + v_DivWKYC - 1;
		}
	}
	dsMain.setColumn(dsMain.rowposition,"THSYY_OCCR_YRVC_CNT",v_OccrWKYC);

}

// 7.3 조직도 모두펼침
function divBtn_btnOpen_onclick(obj:Button,  e:ClickEventInfo)
{
	for (var i=0; i<dsOrgInfo.getRowCount(); i++) {	
		if (divLeft.grdTree.isTreeLeafRow(i) == false) {
			divLeft.grdTree.setTreeStatus(divLeft.grdTree.getTreeRow(i), true);
		}
	}
}

// 7.4 조직도 모두접기
function divBtn_btnClose_onclick(obj:Button,  e:ClickEventInfo)
{
	for (var i=dsOrgInfo.getRowCount()-1; i>=0; i--) {	
		if (divLeft.grdTree.isTreeLeafRow(i) == false) {
			divLeft.grdTree.setTreeStatus(divLeft.grdTree.getTreeRow(i), false);
		}
	}
}

// 7.5 조직도에서 사원검색 시 해당 사원노드로 이동
function fn_findEmp(){
	var nRow;
	var preRow;
	var compare;
	var j = 1;
	var array = new Array();
	var total = dsOrgInfo.getRowCount();	
	
	//검색하고자 하는 사원의 row값을 구함
	var curRow = dsOrgInfo.findRow("EMP_NO",divSrch.cosEMP.edtCode.value);
	
	//해당사원이 없으면 퇴사자 검색
	if(curRow == -1){
		
		for (var i=dsOrgInfo.getRowCount()-1; i>=1; i--) {	
			// 자식행이 있는지 확인
			if (divLeft.grdTree.isTreeLeafRow(i) == false) {
				
				//최상위 루트인지 확인
				if(divLeft.grdTree.isTreeRootRow(i) == false){
					divLeft.grdTree.setTreeStatus(divLeft.grdTree.getTreeRow(i), false);
				}else{
					divLeft.grdTree.setTreeStatus(divLeft.grdTree.getTreeRow(i), true);
				}
			}
		}
		
		//퇴사자 검색
		//fn_selectEmpHffc(divLeft.divSrch.cboSrchComCd.value, divLeft.divSrch.comSearchSEmp.edtCode.value);
		
	}else{
		divLeft.grdTree.enableredraw = false;
		divLeft.grdTree.treeinitstatus = "expand,all";
		
		//상위노드를 구한다
		nRow = divLeft.grdTree.getTreeParentRow(curRow);	
		
		array[0] = nRow;
		while(nRow != -1)
		{
			nRow = parentNode(nRow);
			array[j] = nRow;
			j++;
		}
		
		while(curRow <=total)
		 {
			if(divLeft.grdTree.getTreeChildCount(total, false) > 0)
			{
				for(var i = 0; i < array.length; i ++)
				{
					if(array[i] == total) compare = 1;				
				}
				
				if(compare != 1)
				{
					divLeft.grdTree.setTreeStatus(total,false); // 펼쳐주기				
				}
				compare = 0;
			}
			total--;
		 }
		if(nRow == -1) preRow = curRow;

		else preRow = nRow -1;	
		 while(preRow>=0)
		 {
			if(divLeft.grdTree.getTreeChildCount(preRow, false) > 0)
			{
				for(var i = 0; i < array.length; i ++)
				{				
					if(array[i] == preRow) compare = 1;								
				}
				if(compare != 1)
				{				
					divLeft.grdTree.setTreeStatus(preRow,false); // 펼쳐주기				
				}
				compare = 0;
			}				
			preRow--;	 
		}	 
		 dsOrgInfo.rowposition = curRow;
		 divLeft.grdTree.enableredraw = true;
	}
	
}

function parentNode(nRow)
{
	return divLeft.grdTree.getTreeParentRow(nRow);	
}
/**********************************************************************************************
 * 01. 업무구분 : 인사급여 - 연차 자동생성
 * 02. 화면 : SingleDetail.xfdl
 * 03. 화면설명 : 연차 자동생성
 * 04. 관련화면/서비스 : 
 * 05. 수정이력 : 
 **********************************************************************************************
 *  수정일     이  름   	사유 
 **********************************************************************************************
 *  2015-05-06  서기철  	최초작성
 **********************************************************************************************
*/

include "lib::commLib.xjs"; 
include "lib::hrValid.xjs"; 
 
/*==============================================================================================
* 2. Form전역변수 선언
*===============================================================================================*/ 
var fv_initHeight = 567;
var fv_StdYY = gfn_getToday().substr(0,4);

/*==============================================================================================
* 3. Form onload 처리
*===============================================================================================*/ 
function fn_onload(obj:Form, e:LoadEventInfo) {

	// 3.1 init
	gfn_init(obj);
	
	gfn_setToggleSrch([btn_toggle], ["divSrch"], ["divGrd"]);
	
	// 3.2 call onload function
	fn_setButton();				// 4.1. 버턴 초기화 or Dispaly
	fn_SetDataset();			// 4.2. DataSet 에 초기데이터 Load
	fn_setCommonCode();			// 4.3. 공통코드
	fn_setDefaultValue();		// 4.4. 기본값 설정

}

 
/*==============================================================================================
* 4. Load 후 초기설정 및 Data Setting
*===============================================================================================*/
// 4.1. 버턴 초기화 or Dispaly
function fn_setButton() {
	//사용자 권한 처리
	/*
		초기화:"btnInit", 조회:"btnRead", 저장:"btnSave", 삭제:"btnDelete", 파일:"btnFile", 인쇄:"btnPrint", 신규:"btnNew", 
		기타1:"btnCustom1", 기타2:"btnCustom2", 도움말:"btnHelp"
	*/
	gfn_setTextCommBtn("btnCustom1", "연차생성"); 	//사용자버튼의 텍스트 변경

}

// 4.2. DataSet 에 초기데이터 Load
function fn_SetDataset() {
}

// 4.3. 공통코드
function fn_setCommonCode() {
	
	// 4.3.1 회사코드
	gfn_setCompCd("dsComp", "divSrch.cboCompCd", "", "");
	
	// 4.3.2 공통코드 (dsCommCode 데이터셋으로 관리)
	gfn_setCommCode();

}

// 4.4. 기본값 설정
function fn_setDefaultValue() {
	
   
	// 4.4.1 Grid 초기화(rownum 표시여부, CheckBox 표시여부(DataSet에 CHK값 필수))
	divGrd.grdMain.grd_onloadInitialization(false,true);
	
	// 4.4.2 Grid Head의 입력 항목 체크
	//gfn_setEditCol(divGrd.grdMain, "HDAY_YMD");
	
	// 4.4.3 Grid Head의 필수 항목 체크
	//gfn_setRequiredCol(divGrd.grdMain, "COMP_CD,DCLZBP_CD");	
	
	divSrch.cosEMP.initType("HR_EMP01","EMP_NO","EMP_NM", false, divSrch.cboCompCd);
	divSrch.cosDEPT.initType("HR_DEPT","DEPT_CD","DEPT_NM", false, divSrch.cboCompCd);	
	
	// 4.4.5 조회조건 필수값 Set
	divSrch.cboCompCd.chkdata = "1:R:회사코드"; 
	divSrch.spnYY.chkdata = "2:R:연차생성년도"; 

    divSrch.spnYY.value = fv_StdYY;

}

/*==============================================================================================
* 5. Button Event Area. (공통 버턴 이벤트 함수 영역: 초기화, 조회, 저장, 등...)
*===============================================================================================*/
// 5.1. 초기화
function fn_init(obj:Button) {
	//5.1.1 변경내역 체크
	if(gfn_getChkDsUpdate(dsMain)) return false;
	
	//5.1.2 화면 다시 로딩
	this.reload();
	

}

// 5.2. 조회
// 5.2.1. 조회 전 체크
function fn_preRead() {
	//5.2.1.1 변경내역 체크
	if(gfn_getChkDsUpdate(dsMain)) return false;
	
	//5.2.1.2 필수 항목 체크
	if(gfn_chkSelect(divSrch)) return false;
	
	return true;
}

// 5.2.2. 조회
function fn_read(obj:Button) {
	if (!fn_preRead()) return;
	
	gfn_searchArgsAdd(divSrch);         // 조회시 조건으로 사용할 컬럼추가
	
	dsMain.clearData();
  
	var strSvcid        = "selectAmAh010";
    var strController   = "/hr/am/ah/selectAmAh010.do";
    var strInputDs      = "";
    var strOutputDs     = "dsMain=dsMain";
    var strParam        = "sqlid=dsMain:AmAh010.selectYRYC;";
    
    
    gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, obj);
       
  
}

// 5.3. 저장
// 5.3.1. 저장 전 체크
function fn_preSave() {

	
	//5.3.1.1 DataSet존재 여부 확인
	if(dsMain.rowposition<0){
		//수정할 자료가 없습니다. error
		gfn_alert("Error.E002","","error");
		return false;
	}

	//5.3.1.1 입력 DIV의 필수 입력값 체크
	if(dsMain.rowcount>0){ //상세 DATA존재시에 체크
		//if(gfn_chkSelect(tabDetail.tabInfo)) return false;   // 저장 시 필수 조건 컬럼 체크 
		//if(gfn_chkObj("팝업번호", "R", divGrd01.abDetail.tabInfo.edtPopupId.value)) return false; 
		//if(gfn_chkObj("팝업명", "R", divGrd01.tabDetail.tabInfo.edtPopupNm.value)) return false; 
	}
	
	//5.3.1.2 그리드 필수 값 체크
	if(gfn_chkSave(divGrd.grdMain)) return false;   // 저장 시 필수 조건 컬럼 체크

			
	//5.3.1.3 변경내역 체크
	if(!gfn_getDsUpdate(dsMain, false)) 
	{
		gfn_alert("Error.E002","","error");
		return false;
	}
	
	//5.3.1.4 급여마감여부 체크
// 	if(dsMain.getColumn(dsMain.rowposition, "SALCLOS_YN") == "Y" ) {
// 		
// 		gfn_alert("HR.035","","error");	   	
// 		return false;
// 	}		

	
	return true;
}

// 5.3.2. 저장
function fn_save(obj:Button) {
	if (!fn_preSave()) return;
	
	if (!gfn_confirm("Common.C201")) return;
	
	gdsSearch.clearData();

	var strSvcid    	= "saveAmAh010";
	var strController   = "/hr/am/ah/saveAmAh010.do";
	var strInputDs    	= "dsMain=dsMain:U";
	var strOutputDs   	= "";
	var strParam    	= "sqlid=dsMain:AmAh010.saveYRYC;";

	gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, obj);

}

// 5.4. 삭제
// 5.4.1. 삭제 전 체크
function fn_preDelete() {
	
	return true;
}

// 5.4.2. 삭제
function fn_delete(obj:Button) {
	if (!gfn_confirm("Question.Q001", "선택한 항목")) return;
	
	//행삭제
	dsMain.deleteRow(dsMain.rowposition);
	
	gdsSearch.clearData();
	
	var strSvcid    	= "deleteAmAh010";
	var strController   = "/hr/am/ah/saveAmAh010.do";
	var strInputDs    	= "dsMain=dsMain:U";
	var strOutputDs   	= "";
	var strParam    	= "sqlid=dsMain:AmAh010.saveYRYC;";

	gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, obj);
}

// 5.5. 파일
function fn_file(obj:Button) {
	
}

// 5.6. 인쇄.
function fn_print(obj:Button) {
	
}

// 5.7. 신규.
function fn_new(obj:Button) {

}

// 5.8. 연차 생성.
function fn_custom1(obj:Button) {

	var chknum = 0;
	
	for (var i=0; i < dsMain.getRowCount(); i++) {
		
		if(dsMain.getColumn(dsMain.rowposition, "CHK") == "1" ) {			
			chknum = chknum  +1;
		}	
	}

	if(chknum == 0 ) {		
		gfn_alert("","연차를 생성 할 직원을 선택하세요.");	   	
		return false;
	}	
	
	
	// 생성여부 체크
	if(dsMain.getColumn(dsMain.rowposition, "CLOSE_YN") == "Y" ) {
		
		if (!gfn_confirm("Question.Q016")) return;
	}		
	
	fn_CalYRYC();
	
	gdsSearch.clearData();
	gfn_searchArgsAdd(divSrch);  		

	var strSvcid    	= "saveAmAh010";
	var strController   = "/hr/am/ah/saveAmAh010.do";
	var strInputDs    	= "dsMain=dsMain:U";
	var strOutputDs   	= "";
	var strParam    	= "sqlid=dsMain:AmAh010.saveYRYC;";

	gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, obj);
}

/*==============================================================================================
* 6. User CallBack Function.(사용자 콜백 함수)
*===============================================================================================*/
function fn_callback(svcid, errcd, errmsg) {
	
	if (errcd < 0) return;

	switch(svcid) {
		case 'selectAmAh010':
			gfn_status("Information.I013", dsMain.getRowCount());	//총 건수 표시
			break;
		case 'saveAmAh010':
			gfn_info("Information.I012","","");		//Information.I001 등록 , Information.I002 수정
			fn_read();
			break;
		case 'deleteAmAh010':
			gfn_info("Information.I003","","");
			fn_read();
			break;												
		default:
			break;
	}
}

/*==============================================================================================
* 7. Local Function. (사용자 정의 함수)
*    - 사용자 정의 함수는 fn_xxxx() 현태로 작성  + 기본 이벤트 function
*==============================================================================================*/

// 7.1. 조회항목 행삭제
function fn_subDeleteInqu(obj:Button,  e:ClickEventInfo)
{
	gfn_deleteDsRow(divGrd);
}

// 7.2 법인구분 변경 시 Data를 날려버린다.
function divSrch_cboCompCd_onitemchanged(obj:Combo, e:ItemChangeEventInfo)
{
	dsMain.clearData();
	
	divSrch.cosDEPT.edtCode.value = "";
	divSrch.cosDEPT.edtName.value = "";
	
	divSrch.cosEMP.edtCode.value = "";
	divSrch.cosEMP.edtName.value = "";
}

// 7.3 년도 변경 시 Data를 날려버린다.
function divSrch_spnYY_onspin(obj:Spin, e:SpinEventInfo)
{
	dsMain.clearData();	
}

// 7.4 년도 변경 시 Data를 날려버린다.
function divSrch_spnYY_onchar(obj:Spin, e:CharEventInfo)
{
	dsMain.clearData();	
}

// function dsMain_cancolumnchange(obj:Dataset, e:DSColChangeEventInfo)
// {
// 	//5.3.1.4 급여마감여부 체크
// 	if(dsMain.getColumn(e.row, "SALCLOS_YN") == "Y" ) {
// 		
// 		gfn_alert("HR.035","","error");	   	
// 		return false;
// 	}		
// }

function fn_CalYRYC()
{
    var v_BaseYRYC =  toNumber(dsYRYC_CNT.getColumn(dsYRYC_CNT.rowposition,"REFR_VAL_1"));
    var v_MaxYRYC =   toNumber(dsYRYC_CNT.getColumn(dsYRYC_CNT.rowposition,"REFR_VAL_2"));
    var v_WKYC = 0;
    var v_DivWKYC = 0;    
    var v_ModWKYC = 0;
    var v_OccrWKYC = 0;

	for(var row = 0; row < dsMain.rowcount; row++)
	{
        
        if(dsMain.getColumn(row,"CHK") == "1"){

			dsMain.updatecontrol = false;
			dsMain.setRowType(row, Dataset.ROWTYPE_INSERT);
			dsMain.updatecontrol = true;
	           
			v_WKYC = toNumber(dsMain.getColumn(row,"WKYC"));   // 근속년수
			 
			
			// 2년에 연차일수 1일씩 증가 
			v_DivWKYC = Math.floor(v_WKYC/2);    // 나누기
			v_ModWKYC = (v_WKYC % 2);   	 // 나머지												
				
			// 1년만근 미만 중도입사자	
			if (v_WKYC== 0){
				v_OccrWKYC = toNumber(dsMain.getColumn(row,"THISMCNT"));
			}else {				
				if(v_ModWKYC == 1){
					// 초과 연차일수이상이면 초과연차일수			    
					if(v_BaseYRYC + v_DivWKYC >= v_MaxYRYC){
						v_OccrWKYC = v_MaxYRYC;
					}else{
					// 기본연차일수 + 몫
						v_OccrWKYC = v_BaseYRYC + v_DivWKYC;
					}
				} else {
					// 기본연차일수 + 몫 - 1
					v_OccrWKYC = v_BaseYRYC + v_DivWKYC - 1;
				}
			}
			
			dsMain.setColumn(row,"THSYY_OCCR_YRVC_CNT",v_OccrWKYC);
		}	
	}
}
/**
 * @fileoverview UI Frame에 관련된 함수.
 */

var _fv_isGrdFocus = false;
var _fv_progCloseYn = "";		// 화면 닫기 여부

/**
 * @class 사용자 권한 메뉴 조회
 * @return none
 */
function gfn_selectMainMenu()
{
	gdsMenu.clearData();
    gdsSearch.clear();
    
    gfn_searchArgAdd("userId", gv_userId);
    gfn_searchArgAdd("parentId", gdsUserInfo.getColumn(0, "PARENT_ID"));    
    
    var strSvcid        = "mainMenu";
    var strController   = "/cm/sy/au/selectMainMenu.do";
    var strInputDs      = "";
    var strOutputDs     = "gdsMenu=gdsMenu gdsFavorite=gdsFavorite gdsCompCd=gdsCompCd";
    var strParam        = "sqlid=gdsMenu:SyAu010.selectMainMenu;gdsFavorite:SyAu010.selectMyMenu;gdsCompCd:SyAu050.selectCompAuth;";
    
    gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, undefined);
}

/**
 * @class 사용자 즐겨찾기 메뉴 조회
 * @return none
 */
function gfn_selectFavoMenu()
{
	gdsFavorite.clearData();
	
    gfn_searchArgAdd("userId", gv_userId);
    
    var strSvcid        = "favoMenu";
    var strController   = "/cm/sy/au/selectMainMenu.do";
    var strInputDs      = "";
    var strOutputDs     = "gdsFavorite=gdsFavorite";
    var strParam        = "sqlid=gdsFavorite:SyAu010.selectMyMenu;";
    
    gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, undefined);
}

/**
 * @class 메인화면 호출
 * @return none
 */
function gfn_openMain()
{
	// 추후 UserType별로 메인페이지 분기
	var strUserTypeCd = gdsUserInfo.getColumn(0, "USER_TYPE_CD");
    var strUrl = "frame::Main.xfdl";
    if(strUserTypeCd == "SHOP") {
		strUrl = "wpcm::WPCMAA010.xfdl";
	} else if(strUserTypeCd == "SCMB") {
		strUrl = "frame::Main_SCMB.xfdl";
	} else if(strUserTypeCd == "ETC") return;

	// 메인페이지
	gfn_openMenu("MAIN", "MAIN", strUrl, "");
}

/**
 * @class 메뉴 Row 열기
 * @param nRow 대상 데이타셋의 Row
 * @param objDs 대상 데이타셋
 * @param oParam 파라미터 Object
 * @return none
 */
function gfn_openMenuRow(nRow, objDs, oParam)
{
	objDs.rowposition = nRow;
	
	// 메뉴ID값 없으면 리턴
    if ( gfn_isNull(objDs.getColumn(nRow, "MENU_ID")) )	return;
    
    var menuId = objDs.getColumn(nRow, "MENU_ID");    
    var fRow = gdsMenu.findRow("MENU_ID",menuId);
    
    // 전체 메뉴에서 못 찾으면 리턴
    if ( fRow <= -1 ) 	return;
    
    // 메뉴유형이 P 아니면 리턴
    if (gdsMenu.getColumn(fRow, "MENU_TYPE") != "P" )	return;
    
    var menuNm = gdsMenu.getColumn(fRow, "MENU_NM");
    var appGroup = gdsMenu.getColumn(fRow, "APP_GROUP");
    var progId = gdsMenu.getColumn(fRow, "PROG_FILE");
    var menuUrl = appGroup+"::"+progId+".xfdl";    
    var innerParam = gdsMenu.getColumn(fRow, "INNER_PARAM");
    
    // 메뉴Open
    gfn_openMenu(menuId, menuNm, menuUrl, innerParam, oParam);
}

/**
 * @class 메뉴 열기
 * @param menuId 메뉴ID
 * @param menuNm 메뉴명
 * @param menuUrl 메뉴URL
 * @param innerParam 메뉴파라미터
 * @param oParam 파라미터 Object
 * @return none
 */
function gfn_openMenu(menuId, menuNm, menuUrl, innerParam, oParam)
{
	var objChildFrame;
    var form_id = "form_" + menuId;
    
    objChildFrame = agv_frame_mdiframe[form_id];
    
    // 중복 열림 방지
    if ( objChildFrame != undefined )
    {
		// 파라미터 있을경우 fn_pageLink() 함수 호출
		if ( gfn_isNotNull(oParam) )
		{
			try
			{
				objChildFrame.form.div_form["fn_pageLink"].call(objChildFrame.form.div_form, oParam);
            }
            catch(err)
            {
				trace("fn_pageLink() 함수 없음");
            }
		}
		objChildFrame.setFocus();
        return;
    }
    
    // 화면 닫기 여부 체크
    gdsSearch.clear();
	gfn_searchArgAdd("progId", menuId);
	gfn_transaction(this, "gPosPenalty", "/cm/sy/au/selectCloseYn.do", "", "", "", "", false);
	if (_fv_progCloseYn == "Y") {
		gfn_dialog(this, "progClose", "popup::CmCloseViewer.xfdl", -1, -1, -1, -1, false, "-1", "", false);				
		return;
	}
    
    // 최대 화면 갯수 체크
    if ( parseInt(gdsOpenMenu.rowcount) >= gv_openCnt )
	{
		// 동시에 열 수 있는 최대 탭 갯수({0}개)가 이미 모두 열려 있습니다. 사용하지 않는 탭을 닫고 다시 시도하여 주십시오.
		gfn_info("Common.C101", gv_openCnt);
		return;
	}
	
	// 메뉴 ACCESS 로그 기록
	if (menuId != "MAIN")	gfn_transaction(this, "gMenuAccess", "/cm/sy/lg/insertAccessMenu.do", "", "", "progId=" + menuId);
    
    gv_menuOpening = "Y";
    
    objChildFrame = new ChildFrame();
    
    objChildFrame.init(form_id,0, 0, 0, 0, "frame::CommonBody.xfdl");
    
    // Open Form 정보 인자 전달 ...
    objChildFrame.arguments = [];    
    objChildFrame.arguments["winKey"] = form_id;
    objChildFrame.arguments["menuId"] = menuId;
    objChildFrame.arguments["menuNm"] = menuNm;
    objChildFrame.arguments["menuUrl"] = menuUrl;
    objChildFrame.arguments["innerParam"] = innerParam;
    objChildFrame.arguments["oParam"] = oParam;
    objChildFrame.showtitlebar = false;
    objChildFrame.resizable = true;
    objChildFrame.openstatus = "maximize";
    objChildFrame.titletext = menuNm;
    
    var nIndex = agv_frame_mdiframe.addChild(form_id, objChildFrame);
        
    objChildFrame.show();
}

/**
 * @class 팝업화면을 호출한다.
 * @param {Form} objForm 호출하는 form (this로 넘기면 됨, 필수)
 * @param {String} strId Dialog ID
 * @param {String} strURL Form URL
 * @param {number} nTop Form Top Position
 * @param {number} nLeft Form Left Position
 * @param {number} nWidth Form Width
 * @param {number} nHeight Form Height
 * @param {boolean} bShowTitle Form Title 을 표시 할지 여부
 * @param {String} strAlign Dialog 의 위치<br>
 *                   - '-1' : 모니터의 중앙<br>
 *                   - 'Bottom Left' : Click 된 마우스 위치의 좌측 하단 정렬<br>
 *                   - 'Top Left' : Click 된 마우스 위치의 좌측 상단 정렬<br>
 *                   - 'Bottom Right' : Click 된 마우스 위치의 우측 하단 정렬<br>
 *                   - 'Top Right' : Click 된 마우스 위치의 우측 상단 정렬<br>
 *                   - 'offset' : Click 된 마우스 위치에서 nTop, nLeft만큼 들여쓰기<br>
 *                   - 'absolute' : 입력된 좌표를 Screen 좌표로 인식<br>
 *                   - '0' : 사용자 임의 정렬
 * @param {Object} objArgumentList Dialog 로 전달될 Argument - {strMessage1:'E'}
 * @param {boolean} isModeless true 면 Dialog 를 Modeless로 띄운다.
 * @param {boolean} isLayered true 면 Dialog 를 Layered로 띄운다.
 * @param {boolean} bAutoSize true 면 Dialog의 autosize속성을 true로 띄운다.
 * @param {string} strCallBack 대화상자가 닫힐 때 호출될 콜백 함수
 * @param {boolean} bResizable true 면 Dialog의 사이즈를 조절 가능하게 한다.
 * @return Variant
 */
function gfn_dialog(objForm, strId, strURL, nTop, nLeft, nWidth, nHeight, bShowTitle, strAlign, objArgumentList, isModeless, isLayered, bAutoSize, strCallBack, bResizable)
{
	// Modeless의 경우 창이 이미 떠있으면 포커스만 이동
    if ( isModeless )
    {
        var objPopup = application.popupframes[strId];
        
        if ( !gfn_isNull(objPopup) )
        {
            if ( objPopup.openstatus == "minimize" )
            {
                objPopup.openstatus = "normal";
            }
            
            objPopup.setFocus();
            return;
        }
    }
    
	var newChild = null;
	//var objParentFrame = objForm.getOwnerFrame();
	var objParentFrame = mainframe;
	var nRight = 0;
	var nBottom = 0;
    var bAutoSize = false;
    
    if ( nLeft == -1 )    nLeft = system.cursorx;
    if ( nTop < 0 )     nTop  = system.cursory;
    
    if ( nWidth < 0 && nHeight < 0 )
    {
        bAutoSize = true;
    }
	
	newChild = new ChildFrame;
	
	// 마우스 위치의 좌측 하단 정렬
	if ( strAlign == "Bottom Left" )
	{
        nLeft   = system.cursorx - nWidth;
        nTop    = system.cursory - 5;
        nRight  = system.cursorx;
        nBottom = nTop + nHeight;
    }
    // 마우스 위치의 좌측 상단 정렬
    else if ( strAlign == "Top Left" )
    {
        nLeft   = system.cursorx - nWidth;
        nTop    = system.cursory - nHeight;
        nRight  = system.cursorx;
        nBottom = system.cursory - 5;
    }
    // 마우스 위치의 우측 하단 정렬
    else if ( strAlign == "Bottom Right" )
    {
        nLeft   = system.cursorx;
        nTop    = system.cursory - 5;
        nRight  = nLeft + nWidth;
        nBottom = nTop + nHeight;
    }
    // 마우스 위치의 우측 상단 정렬
    else if ( strAlign == "Top Right" )
    {
        nLeft   = system.cursorx;
        nTop    = system.cursory - nHeight;
        nRight  = nLeft + nWidth;
        nBottom = system.cursory - 5;
    }
    // 모니터의 중앙
    else if ( strAlign == "-1" )
    {
        newChild.openalign.halign = "center";
        newChild.openalign.valign = "center";
        nRight  = nLeft + nWidth;
        nBottom = nTop + nHeight;
    }
    // 마우스 위치에서 nTop, nLeft만큼 들여쓰기
    else if ( strAlign == "offset" )
    {
        nLeft  += system.cursorx;
        nTop   += system.cursory;
        nRight  = nLeft + nWidth;
        nBottom = nTop + nHeight;
    }
    // 입력된 좌표를 Screen 좌표로 인식
    else if ( strAlign == "absolute" )
    {
        nRight  = nLeft + nWidth;
        nBottom = nTop + nHeight;
    }
    else
    {
        nLeft  += mainframe.position.left;
        nTop   += mainframe.position.top;
        nRight  = nLeft + nWidth;
        nBottom = nTop + nHeight;
    }
	
	// 화면 밖으로 벗어나는 Dialog 방지
    var nMonitor = system.getMonitorIndex((nLeft+nRight)/2,(nTop+nBottom)/2);
    var rectScreen = system.getScreenRect(nMonitor);
    
    if ( nBottom > rectScreen.bottom )
    {
        nTop = rectScreen.bottom - (nBottom - nTop);
        nBottom = rectScreen.bottom;
    } 
    
    if ( nTop < rectScreen.top )
    {
        nBottom = rectScreen.top + (nBottom - nTop);
        nTop = rectScreen.top;
    }
    
    if ( nRight > rectScreen.right )
    {
        nLeft = rectScreen.right - (nRight - nLeft);
        nRight = rectScreen.right;
    }
    
    if ( nLeft < rectScreen.left )
    {
        nRight = rectScreen.left + (nRight - nLeft);
        nLeft = rectScreen.left;
    }
    //trace("nLeft, nTop, nRight, nBottom===>"+nLeft+", "+nTop+", "+nRight+", "+nBottom);
    newChild.init(strId, nLeft, nTop, nRight, nBottom, strURL);
    
    if ( !bShowTitle ) newChild.showtitlebar = false;
    
    // 메뉴화면을 팝업화면으로 동시 사용할때
    if ( bShowTitle )
    {
        newChild.style.border = "2px solid #383838ff";
        newChild.titlebar.style.margin = "-2 -2 0 -2";
        newChild.titlebar.closebutton.margin.right = 1;
        
        if ( bResizable )
        {
			newChild.titlebar.normalbutton.margin.right = 1;
			newChild.titlebar.maxbutton.margin.right = 1;
			newChild.titlebar.minbutton.margin.right = 1;
        }
    }
    else
    {
        newChild.style.border = "0px none #ffffffff";
    }
	
	if ( isLayered == true )
	{
		newChild.layered = true;
	}
	else
	{
		newChild.layered = false;
	}
	
	if ( bResizable == true )
	{
		newChild.resizable = true;
	}
	
	newChild.autosize = bAutoSize;
	
	if ( isModeless == true )
	{
		return newChild.showModeless(objParentFrame, objArgumentList);
	}
	else
	{
		var bkchildObj = application.popupframes[strId+"_popup_BackGorund"];
		if ( bkchildObj == null || application.popupframes.length==0 )
		{
			var objChildFrameBG = new ChildFrame();
			if (application.popupframes[0] == null )
			{
				objChildFrameBG.init(strId+"_popup_BackGorund", mainframe.position.left, mainframe.position.top, mainframe.position.right, mainframe.position.bottom, "frame::CommonBg.xfdl" );
			}
			else
			{
				objChildFrameBG.init(strId+"_popup_BackGorund", parent.position.left, parent.position.top, parent.position.right, parent.position.bottom, "frame::CommonBg.xfdl" );
			}
			objChildFrameBG.style.background = "transparent";
			objChildFrameBG.showtitlebar = false;
			objChildFrameBG.layered      = true;
			objChildFrameBG.autosize     = false;
			objChildFrameBG.showModeless(this.getOwnerFrame());
        }
        
		var rtn;
		
		if ( gfn_isNotNull(strCallBack) )
		{
			rtn = newChild.showModalAsync(objParentFrame, objArgumentList, this, strCallBack);
		}
		else
		{
			rtn = newChild.showModal(objParentFrame, objArgumentList, this, "lock=all");
		}
		
		bkchildObj = application.popupframes[strId+"_popup_BackGorund"];
		
		if (bkchildObj <> null)
		{
			this.removeChild(bkchildObj.name);
			bkchildObj.destroy();
			bkchildObj = null;
		}
		
		return rtn;
	}
}

// 모달 팝업시, 백그라운드 처리안함.
function gfn_dialogNBg(objForm, strId, strURL, nTop, nLeft, nWidth, nHeight, bShowTitle, strAlign, objArgumentList, isModeless, isLayered, bAutoSize, strCallBack, bResizable)
{
	// Modeless의 경우 창이 이미 떠있으면 포커스만 이동
    if ( isModeless )
    {
        var objPopup = application.popupframes[strId];
        
        if ( !gfn_isNull(objPopup) )
        {
            if ( objPopup.openstatus == "minimize" )
            {
                objPopup.openstatus = "normal";
            }
            
            objPopup.setFocus();
            return;
        }
    }
    
	var newChild = null;
	//var objParentFrame = objForm.getOwnerFrame();
	var objParentFrame = mainframe;
	var nRight = 0;
	var nBottom = 0;
    var bAutoSize = false;
    
    if ( nLeft == -1 )    nLeft = system.cursorx;
    if ( nTop < 0 )     nTop  = system.cursory;
    
    if ( nWidth < 0 && nHeight < 0 )
    {
        bAutoSize = true;
    }
	
	newChild = new ChildFrame;
	
	// 마우스 위치의 좌측 하단 정렬
	if ( strAlign == "Bottom Left" )
	{
        nLeft   = system.cursorx - nWidth;
        nTop    = system.cursory - 5;
        nRight  = system.cursorx;
        nBottom = nTop + nHeight;
    }
    // 마우스 위치의 좌측 상단 정렬
    else if ( strAlign == "Top Left" )
    {
        nLeft   = system.cursorx - nWidth;
        nTop    = system.cursory - nHeight;
        nRight  = system.cursorx;
        nBottom = system.cursory - 5;
    }
    // 마우스 위치의 우측 하단 정렬
    else if ( strAlign == "Bottom Right" )
    {
        nLeft   = system.cursorx;
        nTop    = system.cursory - 5;
        nRight  = nLeft + nWidth;
        nBottom = nTop + nHeight;
    }
    // 마우스 위치의 우측 상단 정렬
    else if ( strAlign == "Top Right" )
    {
        nLeft   = system.cursorx;
        nTop    = system.cursory - nHeight;
        nRight  = nLeft + nWidth;
        nBottom = system.cursory - 5;
    }
    // 모니터의 중앙
    else if ( strAlign == "-1" )
    {
        newChild.openalign.halign = "center";
        newChild.openalign.valign = "center";
        nRight  = nLeft + nWidth;
        nBottom = nTop + nHeight;
    }
    // 마우스 위치에서 nTop, nLeft만큼 들여쓰기
    else if ( strAlign == "offset" )
    {
        nLeft  += system.cursorx;
        nTop   += system.cursory;
        nRight  = nLeft + nWidth;
        nBottom = nTop + nHeight;
    }
    // 입력된 좌표를 Screen 좌표로 인식
    else if ( strAlign == "absolute" )
    {
        nRight  = nLeft + nWidth;
        nBottom = nTop + nHeight;
    }
    else
    {
        nLeft  += mainframe.position.left;
        nTop   += mainframe.position.top;
        nRight  = nLeft + nWidth;
        nBottom = nTop + nHeight;
    }
	
	// 화면 밖으로 벗어나는 Dialog 방지
    var nMonitor = system.getMonitorIndex((nLeft+nRight)/2,(nTop+nBottom)/2);
    var rectScreen = system.getScreenRect(nMonitor);
    
    if ( nBottom > rectScreen.bottom )
    {
        nTop = rectScreen.bottom - (nBottom - nTop);
        nBottom = rectScreen.bottom;
    } 
    
    if ( nTop < rectScreen.top )
    {
        nBottom = rectScreen.top + (nBottom - nTop);
        nTop = rectScreen.top;
    }
    
    if ( nRight > rectScreen.right )
    {
        nLeft = rectScreen.right - (nRight - nLeft);
        nRight = rectScreen.right;
    }
    
    if ( nLeft < rectScreen.left )
    {
        nRight = rectScreen.left + (nRight - nLeft);
        nLeft = rectScreen.left;
    }
    //trace("nLeft, nTop, nRight, nBottom===>"+nLeft+", "+nTop+", "+nRight+", "+nBottom);
    newChild.init(strId, nLeft, nTop, nRight, nBottom, strURL);
    
    if ( !bShowTitle ) newChild.showtitlebar = false;
    
    // 메뉴화면을 팝업화면으로 동시 사용할때
    if ( bShowTitle )
    {
        newChild.style.border = "2px solid #383838ff";
        newChild.titlebar.style.margin = "-2 -2 0 -2";
        newChild.titlebar.closebutton.margin.right = 1;
        
        if ( bResizable )
        {
			newChild.titlebar.normalbutton.margin.right = 1;
			newChild.titlebar.maxbutton.margin.right = 1;
			newChild.titlebar.minbutton.margin.right = 1;
        }
    }
    else
    {
        newChild.style.border = "0px none #ffffffff";
    }
	
	if ( isLayered == true )
	{
		newChild.layered = true;
	}
	else
	{
		newChild.layered = false;
	}
	
	if ( bResizable == true )
	{
		newChild.resizable = true;
	}
	
	newChild.autosize = bAutoSize;
	
	if ( isModeless == true )
	{
		return newChild.showModeless(objParentFrame, objArgumentList);
	}
	else
	{
		var rtn;
		
		if ( gfn_isNotNull(strCallBack) )
		{
			rtn = newChild.showModalAsync(objParentFrame, objArgumentList, this, strCallBack);
		}
		else
		{
			rtn = newChild.showModal(objParentFrame, objArgumentList, this, "lock=all");
		}
		
		return rtn;
	}
}

/**
 * @class 공통팝업 호출
 * @param {Form} objForm Form Object
 * @param {string} searchType 조회 유형
 * @param {Object} objArgumentList 팝업에 추가될 변수 리스트{변수명:변수값, 변수명:변수값} 형식으로 입력합니다.
 */
function gfn_comPopupDialog(objForm, searchType, objArgumentList)
{
	var popupUrl = gfn_getPopupUrl(searchType);
	if ( gfn_isNull(popupUrl) )
	{
		gfn_info("",'해당팝업이 없습니다.');
		return null;
	}
	return gfn_dialog(this, searchType, popupUrl, -1,-1,-1,-1, false, "-1", objArgumentList, false, false );
}

/**
 * @class 페이지 이동
 * @param sMenuId - 메뉴ID
 * @param oParam - 파라미터
 * @return none
 */
function gfn_goPage(sMenuId, oParam)
{
    var fRow = gdsMenu.findRow("MENU_ID",sMenuId);

	//권한이 없거나 잘못된 메뉴ID
    if (fRow == -1) return -1;
    agv_frame_leftmenu.form.gfn_openMenuRow(fRow, gdsMenu, oParam);
}

/**
 * @class SQL레포트팝업호출
 * @param sTitle - 레포트제목
 * @param sFilePath - 레포트 파일경로
 * @param sDsParam - 파라미터 데이타셋, 없을경우 Default(gdsSearchReport) 전달
 * @param sUrl - 팝업 URL, 없을경우 리포트 Default 호출 화면
 * @return none
 * @example
 * //Report 호출
 * gfn_popReportSql("DBrain DB 연결 레포트 샘플","sample/djndsSample.reb");
 */
function gfn_popReportSql(sTitle, sFilePath, sDsParam, sUrl)
{
    var strFlag     = "2";                              // 구분(1:XML데이타, 2:SQL데이타)
    var strTitle    = sTitle;							// 레포트제목
	var strFilePath = sFilePath;	        			// 레포트파일경로
	var strDsList   = "";						        // Dataset List(구분자 : ",")
	var strDsParam  = "gdsSearchReport";				// 파라미터 데이타셋
	
	if(gfn_isNotNull(sDsParam)){
		strDsParam      = sDsParam;
	}
	var dsParam = eval(strDsParam);
	dsParam.addColumn("FILE_NM", "string");
 	dsParam.setColumn(0, "FILE_NM", sFilePath);

	//var strDBconNm  = gv_contextPath.substr(0,3)+"ds";		// DB접속명(생략할 경우 Default Connection 이용)
	var strDBconNm  = "";		// K2는 DB가 하나!
	
	var strId       = "report";
	var strURL      = "popup::CmReport.xfdl"
	if(gfn_isNotNull(sUrl)){
		strURL      = sUrl;
	}
	var nLeft       = -1;
	var nTop        = -1;
	var nWidth      = -1;
	var nHeight     = -1;
	var bShowTitle  = false;
	var strAlign    = "-1";
	var strArgument = {av_strFlag:strFlag,av_strTitle:strTitle,av_strFilePath:strFilePath,av_strDsList:strDsList,av_strDsParam:strDsParam,av_strDBconNm:strDBconNm};
	var isModeless  = false;
	
	var arrRtn = gfn_dialog(this, strId, strURL, nLeft, nTop, nWidth, nHeight, bShowTitle, strAlign, strArgument, isModeless);
}

/**
 * @class XML(DataSet)레포트팝업호출
 * @param sTitle - 레포트제목
 * @param sFilePath - 레포트 파일경로
 * @param sDsList - 출력 DataSet
 * @param sDsParam - 파라미터 데이타셋, 없을경우 Default(gdsSearchReport) 전달
 * @param sUrl - 팝업 URL, 없을경우 리포트 Default 호출 화면
 * @return none
 * @example
 * //Report 호출
 * gfn_popReportXml("DBrain DB 연결 레포트 샘플","sample/djndsSample.reb","dsTest");
 */
function gfn_popReportXml(sTitle, sFilePath, sDsList, sDsParam, sUrl)
{
    var strFlag     = "1";                              // 구분(1:XML데이타, 2:SQL데이타)
    var strTitle    = sTitle;							// 레포트제목
	var strFilePath = sFilePath;	        			// 레포트파일경로
	var strDsList   = sDsList;						    // Dataset List(구분자 : ",")
	var strDsParam  = "gdsSearchReport";				// 파라미터 데이타셋
	
	if(gfn_isNotNull(sDsParam)){
		strDsParam      = sDsParam;
	}
	var dsParam = eval(strDsParam);
	dsParam.addColumn("FILE_NM", "string");
 	dsParam.setColumn(0, "FILE_NM", sFilePath);

	var strDBconNm  = gv_contextPath.substr(0,3)+"ds";		// DB접속명(생략할 경우 Default Connection 이용)
	
	var strId       = "report";
	var strURL      = "popup::CmReport.xfdl"
	if(gfn_isNotNull(sUrl)){
		strURL      = sUrl;
	}
	var nLeft       = -1;
	var nTop        = -1;
	var nWidth      = -1;
	var nHeight     = -1;
	var bShowTitle  = false;
	var strAlign    = "-1";
	var strArgument = {av_strFlag:strFlag,av_strTitle:strTitle,av_strFilePath:strFilePath,av_strDsList:strDsList,av_strDsParam:strDsParam,av_strDBconNm:strDBconNm};
	var isModeless  = false;
	
	var arrRtn = gfn_dialog(this, strId, strURL, nLeft, nTop, nWidth, nHeight, bShowTitle, strAlign, strArgument, isModeless);
}

/**
 * @class XML(DataSet)레포트팝업호출
 * @param sFlag - 렉스퍼트 데이터 전달 방식
 * @param sTitle - 레포트제목
 * @param sFilePath - 레포트 파일경로
 * @param sDsList - 출력 DataSet
 * @param sDsParam - 파라미터 데이타셋, 없을경우 Default(gdsSearchReport) 전달
 * @param sUrl - 팝업 URL, 없을경우 리포트 Default 호출 화면
 * @return none
 * @example
 * //Report 호출
 * fn_popReportXml("1", "DBrain DB 연결 레포트 샘플","sample/djndsSample.reb","dsTest");
 */
function gfn_popHRReport(sFlag, sTitle, sFilePath, sDsList, sDsParam, sUrl)
{
    var strFlag     = sFlag;                              // 구분(1:XML데이타, 2:SQL데이타)
    var strTitle    = sTitle;							// 레포트제목
	var strFilePath = sFilePath;	        			// 레포트파일경로
	var strDsList	= "";				    			// Dataset List(구분자 : ",")
	var strDsParam  = "gdsSearchReport";				// 파라미터 데이타셋
	
	if(gfn_isNotNull(sDsList)) {
		strDsList = sDsList;
	}
	if(gfn_isNotNull(sDsParam)){
		strDsParam      = sDsParam;
	}
	var dsParam = eval(strDsParam);
	dsParam.addColumn("FILE_NM", "string");
 	dsParam.setColumn(0, "FILE_NM", sFilePath);

	var strDBconNm  = "nkis";// DB접속명
	
	var strId       = "report";
	var strURL      = "popup::HrReport.xfdl"
	if(gfn_isNotNull(sUrl)){
		strURL      = sUrl;
	}
	var nLeft       = -1;
	var nTop        = -1;
	var nWidth      = -1;
	var nHeight     = -1;
	var bShowTitle  = false;
	var strAlign    = "-1";
	var strArgument = {av_strFlag:strFlag,av_strTitle:strTitle,av_strFilePath:strFilePath,av_strDsList:strDsList,av_strDsParam:strDsParam,av_strDBconNm:strDBconNm};
	var isModeless  = false;
	
	var arrRtn = gfn_dialog(this, strId, strURL, nLeft, nTop, nWidth, nHeight, bShowTitle, strAlign, strArgument, isModeless);
	
	return arrRtn;
}

/**
 * @class 공통팝업 호출을 위한 정보가져오기
 * @param {string} sCallId 화면에서 사용될 팝업명(콜백에서 사용되는 명)
 * @param {string} sId 팝업ID(번호)
 * @param {boolean} bMulti 팝업에서 복수 선택 가능여부 default : false(단건선택)
 * @param {string} sCallBack 팝업 호출후 실행 콜백 기능 정의 default : fn_popCallBack
 * @param {boolean} isGrdFocus 팝업 호출후 검색 그리드에 포커스를 둘지 여부  default : false
 * @param {string} sCompCd 회사코드콤보박스ID
 * @return none
 * @example
 * //팝업호출
 * gfn_callCmonPop("popTest","CMONPOP010",true,"fn_popCallBack");
 * gfn_callCmonPop("popTest1","CMONPOP011"); 
 */
function gfn_callCmonPop(sCallId,sId,bMulti,sCallBack,isGrdFocus,sCompCd)
{
	gdsPopupM.clearData();
	gdsPopupSrch.clearData();
	gdsPopupInqu.clearData();
	
	gv_strPopupCallBackId = sCallId;
	gv_IsMultiPopup = gfn_isNull(bMulti) ? false : bMulti;
	gv_strPopupCallBack = gfn_isNull(sCallBack) ? "fn_popCallBack" : sCallBack;
	_fv_isGrdFocus = gfn_isNull(isGrdFocus) ? false : isGrdFocus;	

	if(gfn_isNotNull(sCompCd)) {
		gfn_setCmonPopParam("pgv_compCd", sCompCd.value);
	}
	
	var strSvcid    	= "__selectCmonPopupInfo__";
	var strController   = "/cm/selectComSearchList.do";
	var strInputDs    	= "";
	var strOutputDs   	= "gdsPopupM=gdsPopupM gdsPopupSrch=gdsPopupSrch gdsPopupInqu=gdsPopupInqu";
	var strParam    	= "POPUP_ID="+wrapQuote(sId)+" sqlid=gdsPopupM:CmCo010.selectCmonPopup;gdsPopupSrch:CmCo010.selectCmonPopupSrchList;gdsPopupInqu:CmCo010.selectCmonPopupInquList;";

	gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, "", false);
}

/**
 * @class 실제 팝업호출
 * @return none
 * @example
 */
function gfn_setCmonPop()
{
	//팝업정보 가져오기
	if(gdsPopupM.rowcount == 0)
	{
		//팝업번호가 존재하지 않을경우
		gfn_alert("Error.E045","","error");
		return;
	}
	
	var searchType = gdsPopupM.getColumn(0,"POPUP_ID");
	var popupUrl = "cmcm::CMCMCO010_P01.xfdl";
	var width = toNumber(gdsPopupM.getColumn(0,"POPUP_WDTH"));
	var height = toNumber(gdsPopupM.getColumn(0,"POPUP_HGHT"));
	
	var objArgumentList = {sWidth:width,sHeight:height,isMulti:gv_IsMultiPopup,isGrdFocus:_fv_isGrdFocus};
	//var rtn = gfn_dialog(this, searchType, popupUrl, -1,-1,width,height, false, "-1", objArgumentList, false, false );
	
	
	var arrAuto = iif(gfn_isNotNull(gv_strPopupCallBackId))?gv_strPopupCallBackId.split("."):"";
	if (arrAuto.length > 1 && gfn_isNotNull(arrAuto[1])) {
		gdsPopupM.setColumn(0, "ERYY_INQU_YN", arrAuto[1]);
		gv_strPopupCallBackId = arrAuto[1];
	}

	var rtn = gfn_dialog(this, gv_strPopupCallBackId, popupUrl, -1,-1,width,height, false, "-1", objArgumentList, false, false, false, gv_strPopupCallBack, true );
		
}

/**
 * @class 로그아웃 실행 여부 확인 함수
 * @return {boolean} 로그아웃 실행 여부
 */
function fn_preLogout(msgCd)
{
	if (gfn_isNull(msgCd)) {
		// N-KIS를 종료 하시겠습니까?
		return gfn_confirm("Common.C107");
	}
	else {
		// 차세대 정보시스템을 로그아웃 하시겠습니까?
		return gfn_confirm(msgCd);
	}
}

/**
 * @class 로그아웃 실행 함수
 * @return none
 */
function fn_logout(svcId)
{
	var strSvcid        = "logout";
	
	if (!gfn_isNull(svcId)) {
		strSvcid = svcId;
	}

	gdsSearch.clear();
	
    var strController   = "/cm/ln/aa/logout.do";
    var strInputDs      = "";
    var strOutputDs     = "";
    var strParam        = "";
    
    gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam, undefined, false);
}

/**
 * @class 트랜잭션 콜백 함수
 * @param {string} svcid 서비스ID
 * @param {number} errcd 에러코드
 * @param {string} errmsg 에러메시지
 * @return none
 */
function fn_callback(svcid, errcd, errmsg)
{
	switch ( svcid )
	{
		case 'mainMenu':
			if ( gdsMenu.rowcount < 1 )
			{
				gfn_alert("", "권한 있는 메뉴가 없습니다.");
				return;
			}
			else
			{
				//trace(gdsMenu.saveXML());
				
				// 개발지원용 메뉴 추가(Globalvars의 gdsGuide의 PARENT_ID값과 일치시키면 됨
				if (gv_runType != "live" &&  gdsMenu.findRow("MENU_ID", "CM") >= 0) {
					
					var nRow = gdsMenu.findRow("MENU_ID", "CMCM");
					var newRow;	
					var parentId = gdsMenu.getColumn(0, "PARENT_ID");
				
					if ( nRow <= -1 )
					{
						nRow = gdsMenu.findRow("MENU_ID", "CM");
						if ( nRow <= -1 )
						{
							newRow = gdsMenu.insertRow(0);
							gdsMenu.setColumn(newRow, "MENU_ID", "CM");
							gdsMenu.setColumn(newRow, "PARENT_ID", parentId);
							gdsMenu.setColumn(newRow, "MENU_NM", "공통관리");
							gdsMenu.setColumn(newRow, "DEPTH", "0");
							gdsMenu.setColumn(newRow, "APP_GROUP", "");
							gdsMenu.setColumn(newRow, "PROG_ID", "CM");
							gdsMenu.setColumn(newRow, "MENU_TYPE", "F");
							gdsMenu.setColumn(newRow, "AUTH", "00000000");
							gdsMenu.setColumn(newRow, "INNER_PARAM", "");
							gdsMenu.setColumn(newRow, "MENU_NAVI", "|공통관리");
							gdsMenu.setColumn(newRow, "PROG_FILE", "");
							gdsMenu.setColumn(newRow, "MENU_PWD_USE_YN", "N");
							nRow = 0;
						}
						
						newRow = gdsMenu.insertRow(nRow+1);
						gdsMenu.setColumn(newRow, "MENU_ID", "CMCM");
						gdsMenu.setColumn(newRow, "PARENT_ID", "CM");
						gdsMenu.setColumn(newRow, "MENU_NM", "공통모듈");
						gdsMenu.setColumn(newRow, "DEPTH", "1");
						gdsMenu.setColumn(newRow, "APP_GROUP", "");
						gdsMenu.setColumn(newRow, "PROG_ID", "CMCM");
						gdsMenu.setColumn(newRow, "MENU_TYPE", "F");
						gdsMenu.setColumn(newRow, "AUTH", "00000000");
						gdsMenu.setColumn(newRow, "INNER_PARAM", "");
						gdsMenu.setColumn(newRow, "MENU_NAVI", "|공통관리|공통모듈");
						gdsMenu.setColumn(newRow, "PROG_FILE", "");
						gdsMenu.setColumn(newRow, "MENU_PWD_USE_YN", "N");
						nRow = 1;
					}
					
					// 공통 값 찾은 부분부터 삽입
					for(var i = 0; i < gdsGuide.rowcount; i++) {
						newRow = gdsMenu.insertRow(nRow + i + 1);
						gdsMenu.copyRow(newRow, gdsGuide, i);
					}
				
				}
				
				// 상단프레임 메뉴 설정
				agv_frame_topmenu.form.fn_setTopMenu();
				
				// 첫번째 메뉴의 서브메뉴 설정
				agv_frame_leftmenu.form.fn_setSubMenu(gdsMenu.getColumn(0,"MENU_ID"));
			
			}
			
			// 즐겨찾기메뉴 설정
			agv_frame_leftmenu.form.fn_setFavMenu();
			
			// 메인화면 호출
			gfn_openMain();
			
			break;
		case 'favoMenu':
			// 즐겨찾기메뉴 설정
			fn_setFavMenu();
			break;
		case 'logout':
			agv_close = "LOGOUT";
			exit();
			break;
		case 'closeFinish':
			agv_close = "CLOSE_FINISHED";
			exit();
			break;
			
		default:
			gfn_info('','등록서비스 없음');
			break;
	}
}
include "lib::commLib.xjs";
include "lib::slUtil.xjs";

function form_onload(obj:Form, e:LoadEventInfo)
{
	// 3.1 init
	gfn_init(obj);
	//vOpenerFunction = sPopFnCallBackNm;
    divSrch.edtCompCd.value     = sPopCompCd.value;
	divSrch.edtOdivCd.value     = sPopOdivCd.value;
	divSrch.edtShopCd.value     = sPopShopCd.value;

	fn_setCommonCode();
	//divGrd.grdMain.grd_onloadInitialization(true,false);
	if(gv_userTypeCd=="SHOP"){ 
		divSrch.cboRecvYmd.index = 1;
	}
	divSrch.calMbrRecvYmdFT.setFocus();
}

// 4.3. 공통코드
function fn_setCommonCode() {
	// 공통코드 가져오기
	gfn_setCommCode();
	
}

function btn_close_onclick(obj:Button,  e:ClickEventInfo)
{	
	this.close();
}

// 그리드 더블 클릭 시 해당 로우 정보 전달
function grdMain_oncelldblclick(obj:Grid, e:GridClickEventInfo)
{
	var arrRtn = fn_rtnResult(obj);
	//parant.fn_read();
    this.close();
}

// 그리드 [확인] 클릭 시  
function btnCnfm_onclick(obj:Button,  e:ClickEventInfo)
{
	var arrRtn = fn_rtnResult(dsPopMain);
    this.close();
}

//그리드 엔터시 해당 로우 정보 전달
function grdMain_onkeydown(obj:comGrdBasic, e:KeyEventInfo)
{
	if(e.keycode == "13"){
		var arrRtn = fn_rtnResult(obj);
		this.close();
    }
}

//리턴할 결과값
function fn_rtnResult(obj){
    var arrRtn = new Array;
	var i=0;
	arrRtn[i++] = dsPopMain.getColumn(dsPopMain.rowposition, "RECV_YM");
	arrRtn[i++] = dsPopMain.getColumn(dsPopMain.rowposition, "RPR_NO");
	this.close(arrRtn);
}

// 조회 전 체크
function fn_preRead() {
	if( gfn_isNotNull(divSrch.edtCustNm.value) && gfn_getLeng(divSrch.edtCustNm.value)<2){
		gfn_alert("","고객명은 두글자 이상을 입력 하시기 바랍니다.");
		divSrch.edtCustNm.setFocus();
		return false;
	}
	return true;
}

//조회
function fn_read() {
	
	//if (!fn_preRead()) return;
	
	this.dsPopMain.clearData();
	
	gfn_searchArgsAdd(this.divSrch);

	var strSvcid        = "selectClamRprNoList";
	var strController   = "/wp/cm/aa/selectClamRprNoList.do";
	var strInputDs      = "";
	var strOutputDs     = "dsPopMain=dsPopMain";
	var strParam        = "sqlid=dsPopMain:WpCmAa010.selectClamRprNoList;";
	
    gfn_transaction(this, strSvcid, strController, strInputDs, strOutputDs, strParam);
}

function fn_callback(svcid, errcd, errmsg) {
	
	if (errcd < 0) return;
	
	switch(svcid) {
		case 'selectRprNoList': 
		   gfn_status("Information.I013",dsPopMain.rowcount);
			break;
		case 'selectComCode':
			try{
				if( gfn_isNotNull(vCustVal) || gfn_isNotNull(vCustNm) || gfn_isNotNull(vCustHpNo) || gfn_isNotNull(vCustHpBackNo)|| gfn_isNotNull(vCustCardNo)){
					fn_read();
				}
			} catch(err) {}
			break;
		default:
			break;
	}
}

function cd_onkeydown(obj:Edit, e:KeyEventInfo)
{
	if(e.keycode == 13){
		fn_read();
	}
}

function divSrch_btnRead_onclick(obj:Button,  e:ClickEventInfo)
{	
	fn_read();
}

function divSrch_edtCustNm_onkeydown(obj:Edit, e:KeyEventInfo)
{
	if(e.keycode==13){
		if( gfn_isNotNull(divSrch.edtCustNm.value) && gfn_getLeng(divSrch.edtCustNm.value)<2){
			gfn_alert("","고객명은 두글자 이상을 입력 하시기 바랍니다.");
			divSrch.edtCustNm.setFocus();
			return false;
		}
		fn_read();
	}
}

function divSrch_edtHpNo_onkeydown(obj:Edit, e:KeyEventInfo)
{
	if(e.keycode==13){
		if( gfn_isNotNull(divSrch.edtHpNo.value) && gfn_getLeng(divSrch.edtHpNo.value) <10){
			gfn_alert("","핸드폰번호를 모두 입력 하시기 바랍니다.");
			divSrch.edtHpNo.setFocus();
			return false;
		}
		fn_read();
	}
}

function divSrch_edtShopCd_onkeydown(obj:Edit, e:KeyEventInfo)
{
	if(e.keycode==13){
		fn_read();
	}
}

function divSrch_calMbrRecvYmdFT_onkeydown(obj:comCalFT, e:KeyEventInfo)
{
	if(e.keycode==13){
		fn_read();
	}
}

function divSrch_calShopRecvYmdFT_onkeydown(obj:comCalFT, e:KeyEventInfo)
{
	if(e.keycode==13){
		fn_read();
	}
}