/**ִнű*/

/*̱ǩ±״̬*/
function updateStatus(flowStat,statField,statValue) {
	var application = getApplication();
	var process = new Packages.cn.myapps.core.dynaform.document.ejb.DocumentProcessBean(application);
	var doc = getCurrentDocument();
	var stateLabel = doc.getStateLabel();
	for(var i = 0; i < flowStat.length; i++){
		if(flowStat[i] == stateLabel){
			doc.removeItem(statField);
			doc.addStringItem(statField,statValue[i]);
			process.doUpdate(doc);
		}
	}
}

/*ɾǰжϽű*/
function deleteValidate(items,itemValues,description){
	var returnStr = "";
	var isTrue = false;
	var selectStr = getParameter("_selects");
	var selects = selectStr.split(";");
	for(var i = 0; i < selects.length; i++){
		var doc = findDocument(selects[i]);
		isTrue = true;
		for(var j = 0; j < itemValues.length; j++){
				isTrue = isTrue && itemValues[j].equals(doc.getItemValueAsString(items[j]));
		}
		if(isTrue) break;
	}
	if (isTrue) {
		returnStr = description;
	}
	return returnStr;
}

/** ύɾ
* tableName 
* delStateLabel ɾ״̬
*/
function deleteValidateByStatus(tableName,delStateLabel) {
	var renStr = "";
	var array = createObject("java.util.ArrayList");
	array = getParameterAsArray("_selects");
	for (var i = 0; i < array.length; i++) {
		var sql = "select statelabel as item_statelabel,domainid,id from tlk_"+tableName+" where id ='" + array[i] + "'";
		var docs = queryBySQL(sql);
		for (var it = docs.iterator(); it.hasNext();) {
			var detailData = it.next();
			var statelabel = detailData.getItemValueAsString("statelabel");
			if (!delStateLabel.equals(statelabel)) {
				renStr = "лɵĵݲܱɾ";
			}
		}
	}
 	return renStr;
}


/**¶󣬰ݲһű
*formName 
*formId id
*fieldNames ֶ,ַ
*fieldValues ֵֶ,ַ
*parentDoc ĵ,ɲ
*isDateNames date͵ֶɲstringͣ
*isDateValues date ͵ֵ ɲdateͣ
*/
function InsertDataOnOtherDoc(formName, formId, fieldNames, fieldValues, parentDoc,isDateNames,isDateValues) {
	var doc = getCurrentDocument();
	var domain = getDomainid();
	var application = getApplication();
	var process = getDocProcess($WEB.getApplication());
	var uuid = new Packages.cn.myapps.util.sequence.Sequence();
	var child = new Packages.cn.myapps.core.dynaform.document.ejb.Document(); 
	child.setId(uuid.getSequence());
	if(parentDoc) child.setParent(parentDoc);
	child.setFormname(formName);
	child.setAuthor(getWebUser());
	child.setFormid(formId);
	child.setIstmp(false);
	child.setApplicationid(application);
	child.setLastmodifier(getWebUser().getId());
	child.setDomainid(domain);
	child.setMappingId(child.getId());
	var count = 1;
	var fieldName = "";
	var fieldValue = "";
	if (fieldNames.constructor == Array) {
		count = fieldNames.length;
	} else {
		fieldName = fieldNames;
	}
	if (fieldValues.constructor != Array) {
		fieldValue = fieldValues;
		child.addStringItem(fieldName, fieldValue);
	} else {
		for (var i = 0; i < count; i++) {
			child.addStringItem(fieldNames[i], fieldValues[i]);
		}
	}
	if(isDateNames && isDateValues){
		var datecount = 1;
        var dateName = "";
		var dateValue = "";
		if (isDateNames.constructor == Array) {
			datecount = isDateNames.length;
		} else {
			dateName = isDateNames;
		}
		if (isDateValues.constructor != Array) {
			dateValue = isDateValues;
			child.addDateItem(dateName, dateValue);
		} else {
			for (var i = 0; i < datecount; i++) {
				child.addDateItem(isDateNames[i], isDateValues[i]);
			}
		}
	}
	process.doCreate(child);
}




function releaseOperation(field1, field2) {
	var temp = "";
	var conn = getDataSourceObject().getConnection();
	var cs = null;
	try {
		//var statement = conn.createStatement();
		cs = conn.prepareCall("{call release_holds(?,?,?)}"); 
		cs.setString(1, field1);
		cs.setString(2, field2);
		cs.registerOutParameter(3, Packages.java.sql.Types.VARCHAR);
		cs.execute();
		temp = cs.getString(3);
	} catch(e) {
		$PRINTER.println("#####################################---------------" + e);
		return temp;
	} finally {
		try {
			if (cs != null) {
				cs.close();
			}
			if (conn != null) {
				conn.close();
			}
		} catch(ex) {}
	}
	return temp;
}


// get datasource Object 
function getDataSourceObject(datasoursename) {
	var applicationid = getApplication();
	if (datasoursename != null) {
		var process = createProcess("cn.myapps.core.dynaform.dts.datasource.ejb.DataSourceProcess");
		return process.doViewByName(datasoursename,applicationid);
	} else {
		var process = createProcess("cn.myapps.core.deploy.application.ejb.ApplicationProcess");
		var appvo = process.doView(applicationid);
		if (appvo != null) return appvo.getDataSourceDefine();
	}
	return null;
}

//ϸֶָ
function updateDateil(statField,statValue) {
	var application = getApplication();
	var process = new Packages.cn.myapps.core.dynaform.document.ejb.DocumentProcessBean(application);
	var doc = getCurrentDocument();
    //var sample = doc.getChilds("tm_pendingrelease_period_detail");
		chis.removeItem(statField);
		chis.addStringItem(statField,statValue);
		process.doUpdate(chis);
}

//ô洢̣õ
function releaseSamplequote(field1,field2) {
	var temp = "";
	var conn = getDataSourceObject().getConnection();
	var cs = null;
	try {
		//var statement = conn.createStatement();
		cs = conn.prepareCall("{call sample_quota(?,?,?)}"); 
		cs.setString(1, field1);
                                cs.setString(2, field2);
		cs.registerOutParameter(3, Packages.java.sql.Types.VARCHAR);
		cs.execute();
		temp = cs.getString(3);	
               } catch(e) {
		$PRINTER.println("#########catch########---------------" + e);
		return temp;
	} finally {
		try {
			if (cs != null) {
				cs.close();
			}
			if (conn != null) {
				conn.close();
			}
		} catch(ex) {}
	}
	return temp;
}



//ô洢̣õ
function releaseDiscount(field1,field2) {
	var temp = "";
	var conn = getDataSourceObject().getConnection();
	var cs = null;
	try {
		//var statement = conn.createStatement();
		cs = conn.prepareCall("{call discount_quota(?,?,?)}"); 
		cs.setString(1, field1);
                                cs.setString(2, field2);
		cs.registerOutParameter(3, Packages.java.sql.Types.VARCHAR);
		cs.execute();
		temp = cs.getString(3);	
               } catch(e) {
		$PRINTER.println("#########catch########---------------" + e);
		return temp;
	} finally {
		try {
			if (cs != null) {
				cs.close();
			}
			if (conn != null) {
				conn.close();
			}
		} catch(ex) {}
	}
	return temp;
}


//ô洢̣õӦУ鱨
function releaseTrxAll(field1) {
	var temp = "";
	var conn = getDataSourceObject().getConnection();
	var cs = null;
	try {
		//var statement = conn.createStatement();
		cs = conn.prepareCall("{call ra_customer_trx_all(?,?)}"); 
		cs.setString(1, field1);
		cs.registerOutParameter(2, Packages.java.sql.Types.VARCHAR);
		cs.execute();
		temp = cs.getString(2);	
               } catch(e) {
		$PRINTER.println("#########catch########---------------" + e);
		return temp;
	} finally {
		try {
			if (cs != null) {
				cs.close();
			}
			if (conn != null) {
				conn.close();
			}
		} catch(ex) {}
	}
	return temp;
}

//ô洢̣õº۵У鱨
function releaseTrxAllDiscount(field1) {
	var temp = "";
	var conn = getDataSourceObject().getConnection();
	var cs = null;
	try {
		//var statement = conn.createStatement();
                                $PRINTER.println("#########start debug 1########---------------" );
		cs = conn.prepareCall("{call ra_customer_trx_all_2(?,?)}"); 
	               $PRINTER.println("#########debug 2########---------------"  + cs+ "!!!!");
		cs.setString(1, field1);
	               $PRINTER.println("#########debug3########---------------"  + cs+ "!!!!");
		cs.registerOutParameter(2, Packages.java.sql.Types.VARCHAR);
	               $PRINTER.println("#########debug 4########---------------"  + cs+ "!!!!");
		cs.execute();
	               $PRINTER.println("#########debug 5########---------------"  + "!!!!");
		temp = cs.getString(2);
	               $PRINTER.println("#########debug 6########---------------"  + temp + "!!!!");

               } catch(e) {
		$PRINTER.println("#########catch########---------------" + e);
                               $PRINTER.println("#########temp########---------------" + temp);

		return temp;
                                
	} finally {
		try {
			if (cs != null) {
				cs.close();
			}
			if (conn != null) {
				conn.close();
			}
		} catch(ex) {}
	}
	return temp;
}






