/**ֵű*/
/*ȡǰʱ*/
function getCurrentDateTime(fieldName) {
	var value = getItemValueAsDate(fieldName);
	if (value == null) {
		value = getToday();
	}
	return value;
}

/*ȡǰû*/
function getCurrentUser(fieldName){
                var doc = getCurrentDocument();
	var value = doc.getItemValueAsString(fieldName);
	if(value == null || value.trim().length()<=0){
		var user = getWebUser();
		value = user.getName();
	}
	return value;
}

/*ȡǰû¼*/
function getCurrentLoginno(fieldName){
                var doc = getCurrentDocument();
	var value = doc.getItemValueAsString(fieldName);
	if(value == null || value.trim().length()<=0){
		var user = getWebUser();
		value = user.getLoginno();
	}
	return value;
}
/*ȡǰûڲID-׸*/
function getCurrentDepartments(fieldName) {
	var value = getItemValue(fieldName);
	if (value == null || value.trim().length() <= 0) {
		var user = getWebUser();
		var depts = user.getDepartments();
		if (depts != null) {
			var iter = depts.iterator();
			if (iter.hasNext()) {
				var dept = iter.next();
				value = dept.getId();
				//break;
			}
		}
	}
	return value;
}


/*ȡǰûڲ-׸*/
function getCurrentDeptName(fieldName) {
	var value = getItemValue(fieldName);
	if (value == null || value.trim().length() <= 0) {
		var user = getWebUser();
		var depts = user.getDepartments();
		if (depts != null) {
			var iter = depts.iterator();
			if (iter.hasNext()) {
				var dept = iter.next();
				value = dept.getName();
			}
		}
	}
	return value;
}

/**
 * ݲƻȡŶID
 * 
 * @param name
 *           
 * @return ضӦID
 */
function getDepartmentByName(name) {
	var process = createProcess("cn.myapps.core.department.ejb.DepartmentProcess");
	var domainid = getDomainid();
	var deptId = "";
	var deptlist = process.getDepartmentByName(name,domainid);
	if(deptlist!=null && deptlist.size()>0){
	   for(var iter = deptlist.iterator();iter.hasNext();){
				var dept = iter.next();
					deptId = dept.getId();
					break;
	   }
	}
	return deptId;
}
/*ȡǰûID*/
function getCurrentUserId(fieldName){
	var value = getItemValue(fieldName);
	if(value == null || value.trim().length()<=0){
		var user = getWebUser();
		value = user.getId();
	}
	return value;
}
/*ƻȡ*/
function getCodeByName(tableName,nameField,codeField,value){
	var fieldValue = "";
	var returnValue = "";
	if(value){
		fieldValue = value;
	} else {
		fieldValue = getItemValue(nameField);
	}
	var dql = "$formname='"+tableName+"' and "+nameField+"='"+fieldValue+"'";
	var datas = queryByDQL(dql);
	var iter = datas.iterator();
	if(iter.hasNext()){
		var data = iter.next();
		returnValue = data.getItemValueAsString(codeField);
	}
	return returnValue;
}
/*ȡˮ*/
function getSeq(countLabel,num,isYear,isMonth,isDay){
	var process = new Packages.cn.myapps.core.counter.ejb.CounterProcessBean($WEB.getApplication());
	var dateUtil = $BEANFACTORY.createObject("cn.myapps.util.DateUtil");
	var prefix = countLabel;

	var year = "";
	var month = "";
	var day = "";

	if(isYear){
		year = dateUtil.format(dateUtil.getToday(), "yy");
		prefix = prefix + year;
	}
	if(isMonth){
		month = dateUtil.format(dateUtil.getToday(), "MM");
		prefix = prefix + month;
	}
	if(isDay){
		day = dateUtil.format(dateUtil.getToday(), "DD");
		prefix = prefix + day;
	}
	var count = process.getNextValue(prefix, $WEB.getApplication(), $WEB.getDomainid());
	var val = "";
	if (count < 10) {
		for (var temp = 1; temp <= num - count.toString().length; temp++) {
			val += "0";
		}
		val += count;
	} else if (count < 100) {
		for (var temp = 1; temp <= num - count.toString().length; temp++) {
			val += "0";
		}
		val += count;
	} else if (count < 1000) {
		for (var temp = 1; temp <= num - count.toString().length; temp++) {
			val += "0";
		}
		val += count;
	} else if (count < 10000) {
		for (var temp = 1; temp <= num - count.toString().length; temp++) {
			val += "0";
		}
		val += count;
	} else if (count < 100000) {
		for (var temp = 1; temp <= num - count.toString().length; temp++) {
			val += "0";
		}
		val += count;
	} else if (count < 1000000) {
		for (var temp = 1; temp <= num - count.toString().length; temp++) {
			val += "0";
		}
		val += count;
	} else if (count < 10000000) {
		for (var temp = 1; temp <= num - count.toString().length; temp++) {
			val += "0";
		}
		val += count;
	} else val += count;

	if(isDay){
		val = day + val;
	}
	if(isMonth){
		val = month + val;
	}
	if(isYear){
		val = year + val;
	}
	return val;
}

/**ȡ̽ڵû*/
function getApproveUsers(processName){
	var docId = getId();
	var userProcess = getUserProcess();
	var domainid = getDomainid();
	var sql ="select '"+domainid+"' as domainid, AUDITOR as ITEM_AUDITOR,PROCESSTIME as ITEM_PROCESSTIME from t_relationhis  where ENDNODENAME='"+processName+"' and DOCID='"+docId+"' and FLOWOPERATION in (1,80,7)";
	var users = "";
	var datas = queryBySQL(sql);
	for(var iter = datas.iterator();iter.hasNext();){
	    var data = iter.next();
	    var userid = data.getItemValueAsString("AUDITOR");
	    var user = userProcess.doView(userid);
	    if(user != null){
		var date = data.getItemValueAsDate("PROCESSTIME");
		users += user.getName() + "[" + format(date,"yyyy-MM-dd HH:mm:ss") +"]" + "</br>";
	    }
	}
	return users;
}

/**ȡϸ*/
function getDetailSeq(fieldName, detailForm) {
	var seq = getItemValue(fieldName);
	var doc = getCurrentDocument();
	if(doc.getIstmp()){
//	if (seq == null || seq.trim().length() <= 0) {
		var parent = getParentDocument();
		var details = parent.getChilds(detailForm);
		if (details != null) {
			seq = details.size() + 1 + "";
		} else {
			seq = "1";
		}
	}
	return seq;
}

/**ȡǰûȨ޲ĵĲ*/
function getUserMappingDeptIds(){
   var user = getWebUser();
   var underDepts = user.getLowerDepartmentList();
   var currDepts = user.getDeptlist();
   var depts = "";
   if(underDepts != null && underDepts.length()>0){
	if(currDepts != null && currDepts.length()>0){
		depts = underDepts + "," + currDepts;
	} else {
		depts = underDepts;
	}
   } else {
	depts = currDepts;
   }

   var deptProcess = getDepartmentProcess();

   var departments = user.getDepartments();
   for(var it = departments.iterator(); it.hasNext();){
	var department = it.next();
	var dql = "$formname='deptmapping' and department='"+department.getId()+"'";
	var datas = queryByDQL(dql);
	for(var dt = datas.iterator(); dt.hasNext();){
		var deptmapping = dt.next();
		var mapDept = deptProcess.doView(deptmapping.getItemValueAsString("mappingdept"));
		if(mapDept != null){
			if(depts != ""){
				depts = depts + ",'" + mapDept.getId()+"'";
			} else {
				depts = "'"+mapDept.getId()+"'";
			}
			var underMapDepts = deptProcess.getUnderDeptList(mapDept.getId());
			for(var ut = underMapDepts.iterator(); ut.hasNext();){
				var underMapDept = ut.next();
				depts = depts + ",'" + underMapDept.getId() + "'";
			}
		}
	}
   }
   
   return depts;
}

/** ȡǰûXXɫûб
* level Ų㼶
* roleid ɫid
*/
function getUserListByDeptLevel(level,roleid){
	var userList = createObject("java.util.ArrayList");
	var users = getUsersByRoleId(roleid);
	var department = getLevelDepartmentByUser(level);
	if(department != null){
		for(var i = 0; i < users.size(); i++){
			var user = users.get(i);
			var depts = user.getDepartments();
			for(var it = depts.iterator(); it.hasNext();){
				var dept = it.next();
				while(dept.getLevel() > level){
					dept = dept.getSuperior();
				}
				if(department.getId().equals(dept.getId())){
					userList.add(user);
					break;
				}
			}
		}
	}
	return userList;
}

/**ȡûXŶ*/
function getLevelDepartmentByUser(level){
	var user = getWebUser();
	var depts = user.getDepartments();
	var department = null;
	for(var it = depts.iterator(); it.hasNext();){
		department = it.next();
		if(department.getLevel() <= level) return department;
	}
	for(var it = depts.iterator(); it.hasNext();){
		department = it.next();
		if (department.getLevel() > level) break;
	}
	if(department != null ){
		while(department.getLevel() > level){
			department = department.getSuperior();
		}
	}
	if(department != null){
		return department;
	}
	return null;
}


//get department name in terms of dept id
function getDeptNameById(id) {
var process = new Packages.cn.myapps.core.department.ejb.DepartmentProcessBean();
var dept = process.doView(id);
return dept.getName();
}


//ȡ
function getItemRegionName(regionid) {
	var dql = "$formname='region' and regionid='"+regionid+"'";
	var datas = findByDQL(dql);
	var regionname = datas.getItemValueAsString("region");
	return regionname;
}