SOURCE

// mbos('page').bind('afterOnload',function(){
//   if(easContext.userName==="lishuliang"){
//     alert(3)
//     document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false)
//     // $('.mScroller').on('touchmove',function(e){
//     //   e.preventDefault();
//     // })
//   }
// })

var BaseUrl = "https://api-dev.piaozone.com/test";
var STATIC_URL = "https://imgshow-master.piaozone.com";
//密钥

var UserKey = "";
var LinkKey = "";
var TaxNum = "914403000944135503";
var Client_ID = "vZEf1W3Cvb4WAtY8hz9O";
var Client_Secret = "14fdbc08056f45b3b6a892440d28b220";
var Encrypt_Key = "0ZhrySW1zgGhDauV";
/**
 * @ mzsks
 * @ begin
 */
//页面加载事件
mbos('page').bind('afterOnload', function() {
	var editData = mbos("entity").data;
	mbos("isItConsistent").hide();
	mbos("reportTotalAmount").disable();
	mbos("entry").hide();
	mbos("costedDept").hide();

	if (!editData.overAmountDesc) {
		mbos("overAmountDesc").hide();
	}

	setIsOT(null, false);
})

//单据新增事件
mbos('page').bind('onCreateData', function() {
	var data = mbos("entity").data;

})

//单据新增调用
_private.createBill = function() {
	//设置单据费用支付部门/公司
	var data = mbos("entity").data;
	var company = data.company;
	var param = [company.id];
	var fail = function(data) {
		mbos.msgBox.showError(data);
	};
	var success = function(data) {
		if (data) {
			var com = data.Company;
			var costedDept = data.costedDept;
			mbos('company').value(com);
			mbos('costedDept').value(costedDept);
		}
	}
	mbos.eas.invokeScript("getPayOrg", param, success, fail);

	mbos.eas.invokeScript({
		name: "getBuildModel",
		param: [data.id],
		success: function(e) {
			mbos("entity").data = e;
			// console.log(e)
		},
		error: function(e) {}
	});

	//默认新增一条收款信息分录
	mbos("entity").value().collectionEntries.push({});
	_private.setcollectionEntries();
	_private.getCollectionAccount(data.applier.id);
	// _private.setPayerHide();
	var adminOrgUnit = easContext.position.adminOrgUnit;
	mbos('entity').data.orgUnit = adminOrgUnit;




}

_private.setCountersignatoryEntry = function() {
	//初始化会签人显示
	var entry = {};
	var data = mbos("entity").data;
	var countersignatoryEntry = data.entry;
	if (data.isCountersigned == true || data.isCountersigned == "true") {
		mbos('counters').enable();
	}
	if (countersignatoryEntry && mbos("entity").data.isCountersigned) {
		for (var v = 0; v < countersignatoryEntry.length; v++) {
			if (countersignatoryEntry[v].countersignatory) {
				entry.id = (entry.id ? (entry.id + ",") : "") + countersignatoryEntry[v].countersignatory.id;
				entry.name = (entry.name ? (entry.name + ",") : "") + countersignatoryEntry[v].countersignatory.name;
			}
		}
		mbos("entity").data.counters = entry;
		mbos('counters').value(entry);
	}
}

//判断费用支付公司与承担公司是否一致
var setIsItConsistent = function() {
	var checked = true;
	var mode = mbos("entity").data;
	// var app = waf("#applierCompany").wafPromptBox("getValue");
	var app = mode.company;
	var entries = mode.entries;
	for (var v = 0; v < entries.length; v++) {
		var company = entries[v].company;
		if (app.id != company.id) {
			checked = false;
		}
	}

	mbos('isItConsistent').select(checked);
}

//会签人值改变事件
_this.countersignatoryOnChange = function(event) {
	var id = [],
		name = [],
		CountersignatoryEntry = [],
		tory = event.new_value;
	if (tory && tory.id) {
		id = tory.id.split(",");
		name = tory.name.split(",");
	}
	for (var i = 0; i < id.length; i++) {
		var person = {
			id: id[i],
			name: name[i],
			bosType: "80EF7DED"
		};
		var countersignatory = {
			countersignatory: person,
			bosType: "1408E92A"
		};

		CountersignatoryEntry.push(countersignatory);
	}
	mbos('entry').value(CountersignatoryEntry);
	// mbos("entity").data.entryCounter = event.new_value ? event.new_value.id : "";
}
//是否会签值改变事件
_this.isCountersignedOnChange = function(event) {
	if (event.new_value == "true" || event.new_value == true) {
		mbos('counters').enable();
		// mbos('counters').value(null);
		// mbos('entry').value(null);
	} else {
		mbos('counters').disable();
		mbos('counters').value(null);
		mbos('entry').value(null);
	}
}

//OT逻辑判断及字段控制
var setIsOT = function(inde, ind) {
	var isOT;
	var data = mbos('entity').data.entries;

	if (data[0] && data[0].operationType && data[0].operationType.number == "SSCZF") {
		isOT = true;
	} else {
		isOT = false;
	}

	if (inde == 0 || inde && !isOT) {
		mbos("entries.overtimeStartTime", inde).hide();
		mbos("entries.overtimeEndTime", inde).hide();
		mbos("entries.carChargesAmount", inde).hide();
		mbos("overStartTime", inde).hide();
		mbos("overEndTime", inde).hide();
		mbos("entries.mealAmount", inde).hide();
	}

	for (var v = 0; v < data.length; v++) {
		var operationType = data[v].operationType;
		if (ind == false) {

		} else if (operationType) {
			if (isOT && operationType.number != "SSCZF") {
				mbos.msgBox.showError(localeResource.biz001);
				mbos('entity').data.entries[ind].expenseType = null;
				mbos('entity').data.entries[ind].operationType = null;
				return false;
			}

			if (isOT == false && operationType.number == "SSCZF") {
				mbos.msgBox.showError(localeResource.biz001);
				mbos('entity').data.entries[ind].expenseType = null;
				mbos('entity').data.entries[ind].operationType = null;
				return false;
			}
		}
	}

	for (var i = 0; i < data.length; i++) {
		if (isOT) {
			// mbos("entries.overtimeStartTime", i).show();
			// mbos("entries.overtimeEndTime", i).show();
			mbos("overStartTime", i).show();
			mbos("overEndTime", i).show();
			mbos("entries.carChargesAmount", i).show();
			mbos("entries.mealAmount", i).show();
		} else {
			// mbos("entries.overtimeStartTime", i).hide();
			// mbos("entries.overtimeEndTime", i).hide();
			mbos("overStartTime", i).hide();
			mbos("overEndTime", i).hide();
			mbos("entries.carChargesAmount", i).hide();
			mbos("entries.mealAmount", i).hide();
		}
	}
}

//计算OT费用汇总到报销金额
_private.setOtExpense = function(event) {
	var rowData = mbos('entity').data.entries[event.index];
	var mealAmount = rowData.mealAmount || 0;
	var carChargesAmount = rowData.carChargesAmount || 0;
	var num = carChargesAmount + mealAmount;
	mbos('entity').data.entries[event.index].amountOri = num;
}

// 计算折报告币(小计)
_private.calRoundreportCurrency = function(event) {
	/********
	var rowData = mbos('entity').data.entries[event.index];
	var amountOri = rowData.amountOri;
	var reportExchangeRate = 1;
	var currencyType = rowData.currencyType;
	var bizReqDate = mbos('bizReqDate').value(); //申请日期
	var param = [];
	if(currencyType && currencyType.length != 0 && bizReqDate && bizReqDate.length != 0) {
		var paramMap = {};
		param[0] = currencyType.id;
		param[1] = bizReqDate;

		var fail = function(data) {
			mbos.msgBox.showError(data);
		};
		var success = function(data) {
			reportExchangeRate = data;
			var reportCurrency = amountOri * reportExchangeRate;
			mbos('entity').data.entries[event.index].reportCurrency = reportCurrency;
			_private.setReportTotalAmount();
		}
		mbos.eas.invokeScript("getReportExchangeRate", param, success, fail);
	}*******/

	//start--------------------------------------------------------------------------------------------------------------   
	//本位币折报告币(小计)= 【折本位币(含税)】*【本位币与报告币的汇率】(amount*localCurrencyRate)
	var rowData = mbos('entity').data.entries[event.index];
	var amountOri = 0.0;
	if (rowData.amount) {
		amountOri = rowData.amount;
	}
	var company = mbos('entity').data.applierCompany;
	if (company) {
		var param = [];
		param[0] = company.id;
		mbos.eas.invokeScript({
			name: "getLocalCurrency",
			param: param,
			success: function(redata) {
				var currencyType = redata.fbasecurrencyid;
				var reportExchangeRate = 1;
				var bizReqDate = mbos('bizReqDate').value(); //申请日期		                  
				if (currencyType && currencyType.length != 0 && bizReqDate && bizReqDate.length != 0) {
					var paramMap = [];
					paramMap[0] = currencyType;
					paramMap[1] = bizReqDate;
					mbos.eas.invokeScript({
						name: "getReportExchangeRate",
						param: paramMap,
						success: function(data) {
							//console.log(data);
							var reportExchangeRate = 1.00 * data;
							var reportCurrency = Number((amountOri * reportExchangeRate).toFixed(4));
							mbos('entity').data.entries[event.index].reportCurrency = reportCurrency;
							_private.setReportTotalAmount();
						}
					});
				}
			}
		});
	}
	//end---------------------------------------------------------------------------------------------------------------------   
}

//计算报告币总金额
_private.setReportTotalAmount = function() {
	var num = 0;
	var entries = mbos('entity').data.entries
	for (var v = 0; v < entries.length; v++) {
		var reportCurrency = entries[v].reportCurrency;
		num = num + reportCurrency;
	}

	mbos('reportTotalAmount').value(num);
	if (mbos('entity').data.collectionEntries && mbos('entity').data.collectionEntries.length == 1) {
		mbos('collectionEntries.amountOri', 0).value(num);
		//mbos('collectionEntries.amount', 0).value(num);
		/***20220301Jack**重新根据分录本位币金额计算收款币别本位币金额***start**/
		var applierCompany = mbos('entity').data.company;
		var targetCurrency = mbos('entity').data.collectionEntries[0].currencyType;
		var bizReqDate = mbos('bizReqDate').value(); //申请日期	
		var company = mbos('entity').data.applierCompany;
		if (company && targetCurrency && bizReqDate) {
			var paramMap = [];
			paramMap[0] = applierCompany.id;
			paramMap[1] = targetCurrency.id;
			paramMap[2] = bizReqDate;
			var fail = function(data) {
				mbos.msgBox.showError(data);
			};
			var success = function(data) {
				var exRate = data || 1.00;
				mbos('collectionEntries.exchangeRate', 0).value(exRate);
				var amt = mbos('collectionEntries.amountOri', 0).value() || 0.00;
				var amtSum = exRate * amt;
				mbos('collectionEntries.amount', 0).value(amtSum);
			}
			mbos.eas.invokeScript("getExchangeRate", paramMap, success, fail);
		}

		/***20220301Jack**重新根据分录本位币金额计算收款币别本位币金额***end**/

	}
}

//车资费金额值改变事件
_this.carChargesAmountOnChange = function(event) {
	_private.setOtExpense(event);
	// _private.calRoundreportCurrency(event);
	// _private.setReportTotalAmount();
	_this.amountOnChange(event);
}

//膳食费值改变事件
_this.mealAmountOnChange = function(event) {
	_private.setOtExpense(event);
	_this.amountOnChange(event);
}

//新增设置报告币币种
_private.setCurrency = function(e) {
	var applierCompany = mbos('entity').data.applierCompany;
	var companyId = '';
	if (applierCompany) {
		companyId = applierCompany.id;
	};

	if (companyId != '') {
		var param = [];
		param[0] = companyId;
		mbos.eas.invokeScript({
			name: "getCurrency",
			param: param,
			success: function(data) {
				if (data) {
					mbos('entity').data.entries[e.index].reportingCurrenc = {
						id: data.id,
						name: data.name,
						number: data.number
					};
				}
			}
		});
	}
}

//初始设置报告币币种
_private.setCurrency2 = function(applierCompany) {
	var companyId = '';
	if (company) {
		companyId = applierCompany.id;
	};

	if (companyId != '') {
		var param = [];
		param[0] = companyId;
		mbos.eas.invokeScript({
			name: "getCurrency",
			param: param,
			success: function(data) {
				if (data) {
					mbos('entity').data.entries[mbos('entity').value().entries.length - 1].
					reportingCurrency = {
						id: data.id,
						name: data.name,
						number: data.number
					};
				}
			}
		});
	}
}

//设置核算部门
_private.setAccountingDepartment = function(i) {
	var accountingDepartmentId = '';
	if (mbos('entity').data.entries[i] != null && mbos('entity').data.entries[i].costCenter) {
		accountingDepartmentId = mbos('entity').data.entries[i].costCenter.id;
	}

	if (accountingDepartmentId != '') {
		var param = [];
		param[0] = accountingDepartmentId;
		mbos.eas.invokeScript({
			name: "getGeneralAsstActType",
			param: param,
			success: function(data) {
				if (data) {
					mbos('entity').data.entries[i].
					accountingDepartment = {
						id: data["id"],
						name: data["name"]
					};
				}
			}
		});
	}
}

_this.overStartTimeOnChange = function(event) {
	var entries = mbos('entity').data.entries[event.index];
	if (event.new_value && event.new_value.length > 10 && event.old_value) {
		mbos('overStartTime', event.index).timeFormat("HH:mm:ss");
	}

	if (event.new_value && event.new_value.length < 10) {
		var happenTime = entries.happenTime;
		var overStartTime = happenTime + " " + event.new_value;
		entries.overtimeStartTime = overStartTime;
	}
}
_this.overEndTimeOnChange = function(event) {
	var entries = mbos('entity').data.entries[event.index];
	if (event.new_value && event.new_value.length > 10 && event.old_value) {
		mbos('overEndTime', event.index).timeFormat("HH:mm:ss");
	}

	if (event.new_value && event.new_value.length < 10) {
		var happenTime = entries.happenTime;
		var overEndTime = happenTime + " " + event.new_value;
		entries.overtimeEndTime = overEndTime;
	}
}

_this.overtimeStartTimeOnChange = function(event) {

}

_this.overtimeEndTimeOnChange = function(event) {

}

//初始化超时工作开始/结束时间
_private.setOvertime = function(index) {
	var entries = mbos('entity').data.entries[index];
	if (entries.overtimeStartTime) {
		mbos('overStartTime', index).value(entries.overtimeStartTime);
	}

	if (entries.overtimeEndTime) {
		mbos('overEndTime', index).value(entries.overtimeEndTime);
	}
}

//首页 
_this.homePageOnChange = function(event) {
	mbos.ui.open({
		path: "mcpbc/cpbcPlatform",
		name: "cmbi_index.navui"
	});
}

//新增分录事件
mbos('page').bind('onCreateDetailData', function(e) {
	if (e.data.bosType == "88A4EDD5") {
		_private.setcollectionEntries();
		// _private.setPayerHide();
	}
})

//实际报销人值改变事件
_this.applierOnChange = function(event) {
	mbos("entity").value().collectionEntries = [];

	mbos("entity").value().collectionEntries.push({});
	_private.setcollectionEntries();
	_private.getCollectionAccount(event.new_value.id);

	//var personid = easContext.person ? easContext.person.id : event.new_value.id;
	// mbos("payee", 0).attr('dynamicFilter', "applier.id = '"+mbos("applier").value().id+"' or applier.id = '"+personid+"'");

	//根据实际报销人带出部门逻辑 
	// var applier = mbos('entity').data.applier;
	// var param = [""];
	// if(applier) {
	// 	param[0] = applier.id;
	// } else {
	// 	return;
	// }
	// var fail = function(data) {
	// 	mbos.msgBox.showError(data);
	// };
	// var success = function(data) {
	// 	if(data) {
	// 		mbos('entity').data.orgUnit = data.mainOrg;
	// 	}
	// }
	// mbos.eas.invokeScript("getDepartment", param, success, fail);
}

//新增收款信息分录赋值
_private.setcollectionEntries = function() {
	var model = mbos('entity').data;
	//20220302Jack:默认新增收款信息币别为港币
	var applierCompany = mbos('entity').data.company;
	if (applierCompany && applierCompany.number.endsWith("NEO")) {
		model.currencyType = {
			id: "e0c5c474-00fd-1000-e000-3d59c0a8100dDEB58FDC",
			name: "港币",
			number: "H"
		};
		model.entries[0].currencyType = {
			id: "e0c5c474-00fd-1000-e000-3d59c0a8100dDEB58FDC",
			name: "港币",
			number: "H"
		};
	}
	var entryInitData = {
		amountOri: 0.00,
		amount: 0.00,
		currencyType: model.currencyType,
		payMode: model.payMode,
		exchangeRate: 1.0000,
		convertMode: 0,
		exchangeRatePrecision: 4
	};

	var hasMoreCurrency = false;
	for (var i = 0, il = model.entries.length - 1; i < il; i++) {
		if (!model.entries[i].currencyType || !model.entries[i + 1].currencyType ||
			model.entries[i].currencyType.id != model.entries[i + 1].currencyType.id) {
			hasMoreCurrency = true;
			break;
		}
	}

	if (!model.entries[0].currencyType) hasMoreCurrency = true;

	if (!hasMoreCurrency) {
		var rowData = model.entries[0];
		entryInitData.currencyType = rowData.currencyType;
		entryInitData.exchangeRate = rowData.exchangeRate;
		entryInitData.convertMode = rowData.convertMode;
		entryInitData.exchangeRatePrecision = rowData.exchangeRatePrecision;
	}

	if (model.collectionEntries.length == 1) {
		var reportTotalAmount = model.reportTotalAmount || 0;
		var exchangeRate = model.exchangeRate || 1.0000;
		entryInitData.amount = reportTotalAmount;
		entryInitData.amountOri = reportTotalAmount / exchangeRate;
	}

	mbos('entity').data.collectionEntries[mbos('entity').value().collectionEntries.length - 1] = entryInitData;
	_private.setPayerHide(mbos('entity').value().collectionEntries.length - 1);
}

//设置收款人及信息
_private.getCollectionAccount = function(payid) {
	var ind = mbos('entity').value().collectionEntries.length - 1;
	var datas = mbos('entity').data;
	var param = [payid];
	var fail = function(data) {
		mbos.msgBox.showError(data);
	};
	var success = function(data) {
		if (data) {
			var payee = {
				// bosType: "A62F9111",
				payee: data.payee
			}
			var bankAccount = data.bankAccount;
			var openArea = {
				name: data.openArea
			}
			var bebankStr = {
				name: data.bebankStr
			}
			mbos('collectionEntries.payerName', ind).value(data.payee);
			mbos('payee', ind).value(payee);
			mbos('collectionEntries.payerBank', ind).value(data.bebankStr);
			mbos('entryPayerBankF7', ind).value(bebankStr);
			mbos('collectionEntries.openArea', ind).value(openArea);
			mbos('collectionEntries.payerAccount', ind).value(bankAccount);
		}
	}
	mbos.eas.invokeScript("getCollectionAccount", param, success, fail);




}

//收款人F7值改变事件
_this.payeeOnChange = function(event) {
	if (event.new_value == event.old_value || !event.new_value.id) {
		return false;
	}
	_private.getCollectionAccount(event.new_value.id);
	// mbos('collectionEntries.payerName',event.index).value(event.new_value.payee);
}

//开户银行F7值改变事件
_this.entryPayerBankF7OnChange = function(event) {
	mbos('collectionEntries.payerBank', event.index).value(event.new_value.name);
}

//隐藏收款人、开户银行
_private.setPayerHide = function(index) {
	// mbos("collectionEntries.payerName", index).hide();
	// mbos("collectionEntries.payerBank", index).hide();
}

//收款信息分录添加绑定事件  分录展开功能
mbos('collectionEntries').bind('afterRendered', function(e) {
	mbos("collectionEntries.payerName", e.index).hide();
	mbos("collectionEntries.payerBank", e.index).hide();
	mbos("collectionEntries.exchangeRate", e.index).disable();
	mbos("collectionEntries.amount", e.index).disable();

	// mbos("collectionEntries.payee", 0).attr('dynamicFilter', "applier.id = '2twAAAAFHKmA733t'");
	var personid = easContext.person.id;
	mbos("payee", e.index).attr('dynamicFilter', "APPLIER.ID in('" + mbos("applier").value().id + "','" + personid + "')");
	_private.setCollectionCurrencyType();

	//初始化加载收款人、开户银行F7值
	var collectionEntries = mbos('entity').data.collectionEntries;
	for (var v = 0; v < collectionEntries.length; v++) {
		var payee = {
			payee: collectionEntries[v].payerName
		}
		var bebankStr = {
			name: collectionEntries[v].payerBank
		}
		mbos('payee', v).value(payee);
		mbos('entryPayerBankF7', v).value(bebankStr);
	}
})

//设置收款信息分录币别过滤条件
_private.setCollectionCurrencyType = function() {
	// 	var entries = mbos('entity').data.entries;
	// 	var ids = "'" + mbos("entity").data.currencyType.id + "'";
	// 	for(var v = 0;v<entries.length ; v++){
	// 		if(entries[v].currencyType){
	// 			ids = ids + ",'" + entries[v].currencyType.id + "'";
	// 		}
	// 	}

	var applierCompany = mbos('entity').data.applierCompany;
	if (applierCompany && applierCompany.number.endsWith("NEO")) {
		var colLen = mbos('entity').data.collectionEntries.length;
		if (colLen > 0) {
			for (var i = 0; i < colLen; i++) {
				var rowData = mbos('entity').data.collectionEntries[i];
				rowData.currencyType = {
					id: "e0c5c474-00fd-1000-e000-3d59c0a8100dDEB58FDC",
					name: "港币",
					number: "H"
				};
			}
		}
	}
}

//收款信息分录币别值改变事件
_this.currencyTypeOnChange = function(event) {
	var currencyType = mbos('entity').data.collectionEntries[event.index].currencyType;
	var param = [];
	if (currencyType != "") {
		param[0] = currencyType.id;
	}
	var fail = function(data) {
		mbos.msgBox.showError(data);
	};
	var success = function(data) {
		mbos('entity').data.collectionEntries[event.index].exchangeRate = data;
	}
	mbos.eas.invokeScript("currencyOnChange", param, success, fail);

	_private.calculateAmountOri(event.index);
}

//根据折本位币金额及汇率计算收款金额
_private.calculateAmountOri = function(index) {
	var collectionEntries = mbos('entity').data.collectionEntries;
	var amount = collectionEntries[index].amount || 0;
	var exchangeRate = collectionEntries[index].exchangeRate || 1.0000;
	var amountOri = amount / exchangeRate;
	mbos('entity').data.collectionEntries[index].amountOri = amountOri;

	/******20220301Jack:Neo公司的差旅报销单和费用报销单的收款信息【原币金额】取明细行的【折报告币小计】的合计金额****/
	/****************************************************start*******************************************************/

	var applierCompany = mbos('entity').data.applierCompany;
	if (index == 0 && applierCompany && applierCompany.number.endsWith("NEO")) {
		mbos('entity').data.collectionEntries[0].amountOri = mbos('entity').data.reportTotalAmount || 0.00;
	}
	/***************************************************end********************************************************/

}

//收款信息分录收款金额值改变事件
_this.collectionAmountOriOnChange = function(event) {
	var collectionEntries = mbos('entity').data.collectionEntries;
	var amountOri = collectionEntries[event.index].amountOri || 0;
	var exchangeRate = collectionEntries[event.index].exchangeRate || 1.0000;
	var amount = amountOri * exchangeRate;
	mbos('entity').data.collectionEntries[event.index].amount = amount;
}

_this.deleteOnChange = function(event) {
	var data = mbos('entity').data;
	mbos.eas.invokeScript({
		name: "delete",
		param: [data.id],
		success: function(e) {
			_this.back();
			// mbos("entity").data = e;
			// console.log(e)
		},
		error: function(e) {
			mbos.msgBox.showError(e);
		}
	});
}

_this.orgUnitOnChange = function(event) {
	//部门改变后清空实际报销人
	var orgUnit = mbos('entity').data.orgUnit;
	mbos('entity').data.applier = null;
	if (!orgUnit) {
		//不存在
		mbos("applier").attr('dynamicFilter', "number = 'LJC'");
	} else {
		_private.setApplierFilter();
	}
	var entries = mbos('entity').data.entries;
	for (var v = 0; v < entries.length; v++) {
		mbos('entries.costCenter', v).value(event.new_value);
	}

}
_this.applierCompanyOnChange = function(event) {
	var entity = mbos('entity').data;
	var applierCompany = entity.applierCompany;
	var entries = mbos('entity').data.entries;
	var oldValue = event.old_value;
	var newValue = event.new_value;

	if (oldValue == "" || newValue == "" || (oldValue != "" && newValue != "" && oldValue.id != newValue.id)) {
		entity.orgUnit = null;
	}

	for (var v = 0; v < entries.length; v++) {
		mbos('entries.company', v).value(applierCompany);
	}

	if (!applierCompany) {
		//不存在
		mbos("orgUnit").attr('dynamicFilter', "longNumber ='LJC'");
		mbos("applier").attr('dynamicFilter', "number = 'LJC'");
		entity.applier = null;
	} else {
		_private.setOrgUnitFilter(); //公司过滤部门
	}

	_private.setCostedDeptAanCompany(applierCompany); //HK





}
//根据所选公司过滤部门
_private.setOrgUnitFilter = function() {
	var applierCompany = mbos('entity').data.applierCompany;
	if (applierCompany) {
		var new_value = applierCompany;
		var param = [""];
		if (new_value) {
			param[0] = new_value.id;
		}
		var fail = function(data) {
			mbos.msgBox.showError(data);
		};
		var success = function(data) {
			mbos("orgUnit").attr('dynamicFilter', "longNumber like '" + data + "%'");
			//_private.setApplierFilter();
		}

		mbos.eas.invokeScript("getUnitLongNumber", param, success, fail);
	}
}

_private.setCostedDeptAanCompany = function(applierCompany) {
	var param = [""];
	if (applierCompany) {
		param[0] = applierCompany.id;
	}

	var fail = function(data) {
		mbos.msgBox.showError(data);
	};
	var success = function(data) {
		var isHK = data.isHK;
		var entity = mbos("entity").data;
		if (isHK) {
			entity.costedDept = data.costedDept;
			entity.company = data.company;
		} else {
			entity.costedDept = entity.orgUnit;
			entity.company = entity.applierCompany;
		}
	}
	mbos.eas.invokeScript("getCompanyOnChangeData", param, success, fail);

}

_private.setApplierFilter = function() {
	var applierCompany = mbos('entity').data.applierCompany;
	var orgUnit = mbos('entity').data.orgUnit;
	var param = ["", ""];

	if (applierCompany) {
		param[0] = applierCompany.id;
	}
	if (orgUnit) {
		param[1] = orgUnit.id;
	}
	mbos.eas.invokeScript({
		name: "getPersonSqlByOrgId",
		param: param,
		success: function(e) {
			mbos("applier").attr('dynamicFilter', "id in(" + e + ")");
		},
		error: function(e) {
			mbos.msgBox.showError(e);
		}
	});
}

/**
 * @ mzsks
 * @ end
 */

_this.edit = function(event) {
	return page.edit && page.edit(event);
}

_this.addnew = function(event) {
	return page.addnew && page.addnew(event);
}

_this.back = function(event) {
	mbos.ui.open({
		path: "mcpbc/bizAccount",
		name: "bizAccountList.listui",
		params: {
			showGridIndex: 3
		}
	});
}

_self.pageinit = function(event) {
	_private.init();
	return page.pageinit && page.pageinit(event);
}

_private.init = function() {
	mbos('btnBillimage').hide();
	if (requestParam.operateState == 'VIEW') {
		// mbos("amountEncashed").show();
		mbos('attachment1').disable();
	}

	if (requestParam.operateState == 'ADDNEW') {
		mbos('tab2').remove();
		mbos('tab1').remove();
		mbos('btnBillimage').hide();
	}
}

//初始化按钮
_private.initButtonStatus = function(event) {
	var info = mbos("entity").data;
	mbos('btnAddnew').hide();

	if (info.reqCheckEntries.length == 0) {
		mbos('tab2').remove();
	}
	if (info.loanCheckEntries.length == 0) {
		mbos('tab1').remove();
	}
	if (info.state.value != null && info.state.value != 20 && info.state.value != 25) {
		mbos('btnEdit').hide();
		mbos('attachment1').disable();
		//console.log($);

	}
	if (info.state.value == 25) {
		mbos('btnSave').hide();
	}
	if (info.state.value >= 25) {
		//提交之后,都可以上传影像
		// mbos('btnBillimage').show();
	}
}

_this.save = function(event) {
	//mzsks
	setIsItConsistent();

	if (requestParam.operateState == 'EDIT') {
		mbos('entity').data.updateEnd = 'mobile';
	} else {
		mbos('entity').data.createEnd = 'mobile';
	}

	var entries = mbos('entity').data.entries;
	for (var i = 0; i < entries.length; i++) {
		if (mbos('entity').data.entries[i].amountOri <= 0) {
			mbos.msgBox.showError("分录金额不能小于等于0");
			return;
		}
		if (mbos('entity').data.entries[i].exchangeRate <= 0) {
			mbos.msgBox.showError("分录汇率不能小于等于0");
			return;
		}
		if (mbos('entity').data.entries[i].currencyType == undefined) {
			mbos.msgBox.showError("币别不能为空");
			return;
		}
	}
	mbos('entity').data.state.value = 20;

    //add by Smart 20230301
    _this.saveInvToCloud();
	return page.save && page.save(event);
}
_this.submit = function(event) {

	if (requestParam.operateState == 'EDIT') {
		mbos('entity').data.updateEnd = 'mobile';
	} else {
		mbos('entity').data.createEnd = 'mobile';
	}
	//mzsks
	setIsItConsistent();

	var data = mbos('entity').data;
	var entries = data.entries;
	mbos('entity').data.fromMbos = true;
	for (var i = 0; i < entries.length; i++) {
		if (mbos('entity').data.entries[i].amountOri <= 0) {
			mbos.msgBox.showError("分录金额不能小于等于0");
			return;
		}
		if (mbos('entity').data.entries[i].exchangeRate <= 0) {
			mbos.msgBox.showError("分录汇率不能小于等于0");
			return;
		}
		if (mbos('entity').data.entries[i].currencyType == undefined) {
			mbos.msgBox.showError("币别不能为空");
			return;
		}
	}
	mbos('entity').data.state.value = 25;
	if (CP027 == "true") {
		accountStandardValidate(data, event);
	} else {
		return page.submit && page.submit(event);
	}

    _this.saveInvToCloud();
    _this.submitInvToCloud();
}

_this.taxOnChange = function(event) {
	var amountOriWithoutTax = mbos('entity').data.entries[event.index].amountOriWithoutTax;
	var tax = mbos('entity').data.entries[event.index].tax;
	mbos('entity').data.entries[event.index].amountOri = Number((amountOriWithoutTax + tax).toFixed(2));

}

_this.taxRateOnChange = function(event) {
	//mzsks
	var amountOri = mbos('entity').data.entries[event.index].amountOri;
	var taxRate = mbos('entity').data.entries[event.index].taxRate;
	var amountOriWithoutTax = amountOri / (1 + taxRate / 100);
	mbos('entity').data.entries[event.index].amountOriWithoutTax = amountOriWithoutTax;

	var amountOriWithoutTax = mbos('entity').data.entries[event.index].amountOriWithoutTax;
	var taxRate = mbos('entity').data.entries[event.index].taxRate;
	var tax = amountOriWithoutTax * taxRate / 100;
	mbos('entity').data.entries[event.index].tax = Number(tax.toFixed(2));;
	mbos('entity').data.entries[event.index].amountOri = Number((amountOriWithoutTax + tax).toFixed(2));
}

_this.amountOriWithoutTaxOnChange = function(event) {
	var amountOriWithoutTax = mbos('entity').data.entries[event.index].amountOriWithoutTax;
	var taxRate = mbos('entity').data.entries[event.index].taxRate;
	var tax = amountOriWithoutTax * taxRate / 100;
	var exchangeRate = mbos('entity').data.entries[event.index].exchangeRate;
	mbos('entity').data.entries[event.index].tax = Number(tax.toFixed(2));
	mbos('entity').data.entries[event.index].amountOri = Number((amountOriWithoutTax + tax).toFixed(2));
	mbos('entity').data.entries[event.index].amountWithoutTax = Number((amountOriWithoutTax * exchangeRate).toFixed(2));
}

//原币金额改变事件
_this.amountOnChange = function(event) {
	var exchangeRate = mbos('entity').data.entries[event.index].exchangeRate;
	if (exchangeRate == null || exchangeRate < 0) {
		mbos('entity').data.entries[event.index].exchangeRate = 1.0000;
	}
	_private.amountOriByAmount(event);

	var amountOri = mbos('entity').data.entries[event.index].amountOri;
	var taxRate = mbos('entity').data.entries[event.index].taxRate;
	var amountOriWithoutTax = amountOri / (1 + taxRate / 100);
	mbos('entity').data.entries[event.index].amountOriWithoutTax = amountOriWithoutTax;
	// amountOriWithoutTaxOnChange(event);
	//mzsks	计算折报告币及汇总
	_private.calRoundreportCurrency(event);
	_private.setReportTotalAmount();
}

_private.amountOriByAmount = function(event) {

	// mbos.msgBox.showInfo(data); 
	//由本位币金额、汇率 计算出原币金额
	var exchangeRate = mbos('entity').data.entries[event.index].exchangeRate;
	var amountOri = mbos('entity').data.entries[event.index].amountOri;
	var amountWithoutTax = mbos('entity').data.entries[event.index].amountWithoutTax || 0;
	var amountOriWithoutTax = mbos('entity').data.entries[event.index].amountOriWithoutTax;
	var tax = mbos('entity').data.entries[event.index].tax;

	var amount = amountOri * exchangeRate
	mbos('entity').data.entries[event.index].amount = Number(amount.toFixed(2));

	//根据参数CP016来判断核定金额是否联动

	if ("true" == CP016) {

		mbos('entity').data.entries[event.index].amountApproved = Number(amount.toFixed(2));
		mbos('entity').data.entries[event.index].amountApprovedOri = Number(amountOri.toFixed(2));
		mbos('entity').data.entries[event.index].amountApprovedWithoutTax = Number(amountWithoutTax.toFixed(2));
		mbos('entity').data.entries[event.index].amountApprovedOriWithoutTax = Number(amountOriWithoutTax.toFixed(2));
		mbos('entity').data.entries[event.index].taxApproved = Number(tax.toFixed(2));
	}
	//计算合计金额、付现金额、核定金额
	// _private.calAmountAndAmountEncashed();
	//计算合计金额、付现金额、核定金额
	var entries = mbos('entity').data.entries;
	var totalAmount = 0;
	var totalAmountApproved = 0;
	for (var i = 0; i < entries.length; i++) {
		totalAmount += entries[i].amount;
		totalAmountApproved += entries[i].amountApproved;
	}
	mbos('entity').data.amount = totalAmount;
	mbos('entity').data.amountEncashed = totalAmount;
	mbos('entity').data.amountApproved = totalAmountApproved;

	//申请核销 本位币冲销金额、冲销金额联动计算
	var loanCheckEntries = mbos('entity').data.loanCheckEntries;

	if (loanCheckEntries != null && loanCheckEntries.length == 1) {
		if (CP032 == "true") {
			//冲销金额赋值
			if (totalAmount <= loanCheckEntries[0].sourceBillAmountBalance) {
				loanCheckEntries[0].checkAmount = totalAmount;
				var exchangeRate = loanCheckEntries[0].exchangeRate;
				var totalAmountOri = totalAmount / exchangeRate;
				loanCheckEntries[0].checkAmountOri = Number(totalAmountOri.toFixed(2));
			} else {
				loanCheckEntries[0].checkAmount = loanCheckEntries[0].sourceBillAmountBalance;
				loanCheckEntries[0].checkAmountOri = loanCheckEntries[0].sourceBillAmountBalanceOri;
			}
			//表头付现金额重新计算
			mbos('entity').data.amountEncashed = Number((totalAmount - loanCheckEntries[0].checkAmount).toFixed(2));

		} else {
			//冲销金额赋值         
			if (totalAmount <= loanCheckEntries[0].sourceBillAmountBalance) {
				loanCheckEntries[0].checkAmount = totalAmount;
				var exchangeRate = loanCheckEntries[0].exchangeRate;
				var totalAmountOri = totalAmount / exchangeRate;
				loanCheckEntries[0].checkAmountOri = Number(totalAmountOri.toFixed(2));
			} else {
				loanCheckEntries[0].checkAmount = loanCheckEntries[0].sourceBillAmountBalance;
				loanCheckEntries[0].checkAmountOri = loanCheckEntries[0].sourceBillAmountBalanceOri;
			}
			//表头付现金额重新计算
			mbos('entity').data.amountEncashed = Number((totalAmount - loanCheckEntries[0].checkAmount).toFixed(2));

		}

	} else {
		if (CP032 == "true") {
			//表头付现金额重新计算
			for (var i = 0; i < loanCheckEntries.length; i++) {
				totalAmount -= loanCheckEntries[i].checkAmount;
			}
			mbos('entity').data.amountEncashed = Number(totalAmount.toFixed(2));

		} else {
			//表头付现金额重新计算
			for (var i = 0; i < loanCheckEntries.length; i++) {
				totalAmount -= loanCheckEntries[i].checkAmount;
			}
			mbos('entity').data.amountEncashed = Number(totalAmount.toFixed(2));

		}
	}

}

_this.loanCheckAmount = function(event) {
	if (CP032 == "false") {
		return;
	}
	var checkAmountAll = 0;
	var newValue = event.new_value;
	var data = mbos('entity').data;
	var loanCheckEntries = data.loanCheckEntries;
	for (var i = 0; i < loanCheckEntries.length; i++) {
		var amountBalance = loanCheckEntries[i].sourceBillAmountBalance;
		var exchangeRate = loanCheckEntries[i].exchangeRate;

		loanCheckEntries[i].checkAmount = newValue;
		if (newValue > amountBalance) {
			mbos.msgBox.showError("核销分录中核销金额不能大于源单有效可用余额");
		} else if (newValue <= 0) {
			mbos.msgBox.showError("核销分录中核销金额必须大于0");
		}

		loanCheckEntries[i].checkAmountOri = Number((newValue / exchangeRate).toFixed(2));

		checkAmountAll += loanCheckEntries[i].checkAmount;
	}

	//表头付现金额重新计算
	mbos('entity').data.amountEncashed = Number((mbos('entity').data.amount - checkAmountAll).toFixed(2));
}

_this.loanCheckAmountOri = function(event) {
	if (CP032 == "true") {
		return;
	}
	var checkAmountAll = 0;
	var newValue = event.new_value;
	var data = mbos('entity').data;
	var loanCheckEntries = data.loanCheckEntries;
	for (var i = 0; i < loanCheckEntries.length; i++) {
		var amountBalanceOri = loanCheckEntries[i].sourceBillAmountBalanceOri;
		var exchangeRate = loanCheckEntries[i].exchangeRate;

		loanCheckEntries[i].checkAmountOri = newValue;

		if (newValue > amountBalanceOri) {
			mbos.msgBox.showError("核销分录中核销金额不能大于源单有效可用余额");
		} else if (newValue <= 0) {
			mbos.msgBox.showError("核销分录中核销金额必须大于0");
		}

		loanCheckEntries[i].checkAmount = Number((newValue * exchangeRate).toFixed(2));

		checkAmountAll += loanCheckEntries[i].checkAmount;
	}

	//表头付现金额重新计算
	mbos('entity').data.amountEncashed = Number((mbos('entity').data.amount - checkAmountAll).toFixed(2));
}

_this.reqCheckAmount = function(event) {
	if (CP032 == "false") {
		return;
	}
	var newValue = event.new_value;
	var data = mbos('entity').data;
	var reqCheckEntries = data.reqCheckEntries;
	for (var i = 0; i < reqCheckEntries.length; i++) {
		var amountBalance = reqCheckEntries[i].sourceBillAmountBalance;
		var exchangeRate = reqCheckEntries[i].exchangeRate;

		reqCheckEntries[i].checkAmountOri = newValue / exchangeRate;

		if (newValue > amountBalance) {
			mbos.msgBox.showError("核销分录中核销金额不能大于源单有效可用余额");
		} else if (newValue <= 0) {
			mbos.msgBox.showError("核销分录中核销金额必须大于0");
		}
	}

}

_this.reqCheckAmountOri = function(event) {
	if (CP032 == "true") {
		return;
	}
	var newValue = event.new_value;
	var data = mbos('entity').data;
	var reqCheckEntries = data.reqCheckEntries;

	for (var i = 0; i < reqCheckEntries.length; i++) {
		var amountBalance = reqCheckEntries[i].sourceBillAmountBalance;
		var exchangeRate = reqCheckEntries[i].exchangeRate;

		reqCheckEntries[i].checkAmount = newValue * exchangeRate;

		if (newValue > amountBalance) {
			mbos.msgBox.showError("核销分录中核销金额不能大于源单有效可用余额");
		} else if (newValue <= 0) {
			mbos.msgBox.showError("核销分录中核销金额必须大于0");
		}
	}

}

//币别改变事件
_this.currencyOnChange = function(event) {
	var currencyType = mbos('entity').data.entries[event.index].currencyType;
	var param = [];
	if (currencyType != "") {
		param[0] = currencyType.id;
	}
	var fail = function(data) {
		mbos.msgBox.showError(data);
	};
	var success = function(data) {
		// mbos.msgBox.showInfo(data); 
		mbos('entity').data.entries[event.index].exchangeRate = data;
		_private.amountOriByAmount(event);
		//调用服务端脚本,param为参数,success,fail分别为回调函数
	}
	mbos.eas.invokeScript("currencyOnChange", param, success, fail);

	// debugger;
	var oldValue = event.old_value;
	var newValue = event.new_value;
	//2016-12-28 undefined
	if (newValue == undefined || newValue == "" || (oldValue != undefined && newValue != undefined && oldValue.id ==
		newValue.id)) {
		return;
	} else {
		queryAccountStandard(mbos('entity').data.entries, event.index);
	}

	//mzsks	计算折报告币及汇总
	_private.calRoundreportCurrency(event);
	_private.setReportTotalAmount();
	_private.setCollectionCurrencyType();
}

_this.expenseTypeOnChange = function(event) {
	// debugger;
	var oldValue = event.old_value;
	var newValue = event.new_value;
	//2016-12-28 首次F7 newValue为undefined;第二次清空 newValue为""
	if (newValue == undefined || newValue == "" || (oldValue != undefined && newValue != undefined && oldValue.id ==
		newValue.id)) {
		return;
	} else {
		queryAccountStandard(mbos('entity').data.entries, event.index);
	}
}

_this.happenTimeOnChange = function(event) {
	// debugger;
	var oldValue = event.old_value;
	var newValue = event.new_value;
	if (newValue == undefined || newValue == "" || (oldValue != "" && newValue != "" && oldValue.substring(0, 7) ==
		newValue.substring(0, 7))) {
		return;
	} else {
		queryAccountStandard(mbos('entity').data.entries, event.index);
	}

	//mzsks
	setIsOT(null, event.index)
}

//业务类别改变事件
_this.operationTypeOnChange = function(event) {
	var oldValue = event.old_value;
	var newValue = event.new_value;

	if (newValue == "" || (oldValue && newValue && oldValue.id != newValue.id)) {
		mbos('entity').data.entries[event.index].expenseType = null;
	}
	//mzsks
	setIsOT(null, event.index);
	if (newValue) {
		mbos('entries.expenseType', event.index).attr("dynamicFilter", "operationType.id='" + newValue.id + "'");
	}
}

//分录公司改变事件
_this.companyEntryOnChange = function(event) {
	var oldValue = event.old_value;
	var newValue = event.new_value;

	if (newValue == "" || (oldValue != "" && newValue != "" && oldValue.id != newValue.id)) {
		mbos('entity').data.entries[event.index].costCenter = null;
	}
	setEntryCostedQueryFilter(event);
}
_this.g = function(event) {}

//表头公司改变事件
_this.companyOnChange = function(event) {
	var oldValue = event.old_value;
	var newValue = event.new_value;

	if (newValue == "" || (oldValue != "" && newValue != "" && oldValue.id != newValue.id)) {
		mbos('entity').data.costedDept = null;
	}
	//改变之后立刻调用
	setCostedQueryFilter();
}

_private.delEntry = function(event) {
	var entries = mbos('entity').data.entries;
	var totalAmount = 0;
	for (var i = 0; i < entries.length; i++) {
		totalAmount += entries[i].amount;
	}
	//计算合计金额
	mbos('entity').data.amount = Number(totalAmount.toFixed(2));
}

//分录删除绑定事件
mbos('entries').bind('afterDeleteEntry', function(e) {
	_private.delEntry();
})

var CP032 = "false";
var CP016 = "false";
var CP027 = "false";
var currencyType = "";
var company = "";
var applierCompany = "";
var costCenterOrgUnitInfo = "";
mbos('page').bind('beforeOnload', function() {

	var param = [];
	var success = function(data) {
		// debugger;
		CP032 = data.CP032;
		CP016 = data.CP016;
		CP027 = data.CP027;
		var reqentries = mbos('entity').data.reqCheckEntries;
		var loanentries = mbos('entity').data.loanCheckEntries;
		if (CP032 == "false") {
			for (var i = 0; i < reqentries.length; i++) {
				mbos('ReqCheckEntries.sourceBillAmountBalanceOri', i).show();
				mbos('ReqCheckEntries.checkAmountOri', i).show();
			}
			for (var i = 0; i < loanentries.length; i++) {
				mbos('LoanCheckEntries.sourceBillAmountBalanceOri', i).show();
				mbos('LoanCheckEntries.checkAmountOri', i).show();
			}
		} else {
			for (var i = 0; i < reqentries.length; i++) {
				mbos('ReqCheckEntries.sourceBillAmountBalance', i).show();
				mbos('ReqCheckEntries.checkAmount', i).show();
			}
			for (var i = 0; i < loanentries.length; i++) {
				mbos('LoanCheckEntries.sourceBillAmountBalance', i).show();
				mbos('LoanCheckEntries.checkAmount', i).show();
			}
		}
	};
	var fail = function(data) {
		mbos.msgBox.showError(data);
	};
	//调用服务端脚本,param为参数,success,fail分别为回调函数
	mbos.eas.invokeScript("getBizParamList", param, success, fail);

	//获得初始化数据
	var success = function(data) {
		currencyType = data.currencyType;
		company = data.company;
		applierCompany = data.applierCompany;
		costCenterOrgUnitInfo = data.costCenterOrgUnitInfo;

		var state = mbos('entity').data.state.value;
		if (state == 10) {
			mbos('entity').data.entries[mbos('entity').value().entries.length - 1].currencyType = currencyType;
			mbos('entity').data.currencyType = currencyType;

			mbos('entity').data.entries[mbos('entity').value().entries.length - 1].company = company;
			mbos('entity').data.company = company;

			mbos('entity').data.applierCompany = applierCompany;
			mbos('entity').data.costedDept = costCenterOrgUnitInfo;
			mbos('entity').data.entries[mbos('entity').value().entries.length - 1].costCenter = costCenterOrgUnitInfo;

			setCostedQueryFilter();
			setEntryCostedQueryFilter();
		}
		// alert("3:"+company.name+company.number);

		_private.setOrgUnitFilter(); //公司过滤部门

		var orgUnit = mbos('entity').data.orgUnit;
		if (!orgUnit) {
			mbos("applier").attr('dynamicFilter', "number = 'LJC'");
			mbos('entity').data.applier = null;
		} else {
			_private.setApplierFilter(); //过滤实际报销人
		}
	};

	var fail = function(data) {
		mbos.msgBox.showError(data);
	};
	mbos.eas.invokeScript("initData", param, success, fail);

})

var setCostedQueryFilter = function() {
	var param = [];
	//debugger;
	param[0] = mbos('entity').data.company.id;
	var paramsMap;
	var success = function(data) {
		var strId = data;
		var filter = {
			filteritems: [{
				propertyname: "isBizUnit",
				comparetype: "=",
				comparevalue: "1",
				datatype: "BOOLEAN"
			}, {
				propertyname: "isSealUp",
				comparetype: "=",
				comparevalue: "0",
				datatype: "BOOLEAN"
			}, {
				propertyname: "id",
				comparetype: "in",
				comparevalue: strId,
				datatype: "STRING"
			}],
			maskstring: '#0 and #1 and #2'
		};
		mbos('costedDeptQuery').setParam({
			df: JSON.stringify(filter)
		});
	};

	var fail = function(data) {
		mbos.msgBox.showError(data);
	};
	//调用服务端脚本,param为参数,success,fail分别为回调函数
	mbos.eas.invokeScript("getCostCenterF7", param, success, fail);
};

var setEntryCostedQueryFilter = function(event) {
	var param = [];
	//debugger;
	event = event || {
		index: 0
	};
	param[0] = mbos('entity').data.entries[event.index].company.id;
	var paramsMap;
	var success = function(data) {
		var strId = data;
		var ids = "";
		for (var i = 0; i < strId.length; i++) {
			if (i > 0) {
				ids += ","
			}
			ids += "'" + strId[i] + "'";
		}
		//用组件方式
		mbos('entries.costCenter', event.index).attr("dynamicFilter", "isBizUnit=1 and isSealUp= 0 and id in (" + ids + ")");
		//mbos('entries.costCenterQuery').setParam({df:JSON.stringify(filter)});   
	};

	var fail = function(data) {
		mbos.msgBox.showError(data);
	};
	//调用服务端脚本,param为参数,success,fail分别为回调函数
	mbos.eas.invokeScript("getCostCenterF7", param, success, fail);
};

//移动加载时间去结尾,方便写发票相关代码 add by Smart 20230226



//分录添加绑定事件  分录展开功能
mbos('entries').bind('afterRendered', function(e) {
	//mzsks
	setIsOT(e.index);
	_private.setCurrency(e);
	_private.setAccountingDepartment(e.index);
	mbos("entries.accountingDepartment", e.index).hide();
	mbos("entries.reportingCurrenc", e.index).hide();
	mbos("entries.exchangeRate", e.index).disable();
	mbos('overStartTime', e.index).timeFormat("HH:mm:ss");
	mbos('overEndTime', e.index).timeFormat("HH:mm:ss");
	_private.setOvertime(e.index);

	//设置费用类型的属性字段
	mbos('entries.expenseType', e.index).attr("dynamicselect", "name,number,id,controlMethod,controlType");

	$('.entryAllShow').on('click', function(event) {
		$(".entryProp").show();
		mbos('label3').value('收缩');
	});
	$('.entryAllHide').on('click', function(event) {
		$(".entryProp").hide();
		mbos('label3').value('展开');
	});
	var showlabel = 1;
	$($('.entrylabel')[e.index]).on('click', function(event) {
		$(this).nextAll(".entryProp").toggle();
		if (1 == showlabel) {
			showlabel = 2;
		} else {
			showlabel = 1;
		}

		if (showlabel == 1) {
			mbos('label3').value('收缩');
		} else if (showlabel == 2) {
			mbos('label3').value('展开');
		}
		if (requestParam.operateState == "ADDNEW" || requestParam.operateState == "EDIT") {
			setEntryCostedQueryFilter(e);
		}
	});

	//编辑页初始化时异步获取报销标准;新增页面因初始化没有费用类型,返回的值为空;
	var entries = [];
	var oriEntries = mbos('entity').data.entries;
	for (var i = 0; i < oriEntries.length; i++) {
		//mzzsks
		/* var expType = oriEntries[i].expenseType;
		var curType = oriEntries[i].currencyType;
		if(expType){
			expType.id = encodeURIComponent(expType.id);
		}
		if(curType){
			curType.id = encodeURIComponent(curType.id);
		} */
		var entry = {
			expenseType: oriEntries[i].expenseType,
			currencyType: oriEntries[i].currencyType,
			// expenseType:expType,
			// currencyType:curType,
			happenTime: oriEntries[i].happenTime
		};
		entries.push(entry);
	}
	var billinfo = {
		bosType: mbos('entity').data.bosType,
		id: mbos('entity').data.id,
		applier: mbos('entity').data.applier,
		applierCompany: mbos('entity').data.applierCompany,
		entries: entries
	};

	// 清空报销标准缓存对象
	publicaccountStandard = {};
	var paramacc = [JSON.stringify(billinfo)];
	var success = function(result) {
		// debugger;
		// TODO 修改获取报销标准后的显示
		if (!result || result.length == 0 || !result[0]) {
			return;
		}
		var state = mbos('entity').data.state.value;
		for (var i = 0; i < result.length; i++) {
			var accountObj = result[i];
			if (!accountObj) continue;
			// 已提交状态的单据编辑时,需要加上本身已经扣减的余额来进行判断
			var happenTime = oriEntries[i].happenTime;
			var currency = oriEntries[i].currencyType;
			var mapKey = buildMapKey(accountObj.expenseType, currency, happenTime);
			var entryAmountOri = oriEntries[i].amountOri
			var accountStandard;
			if (state == 25) {
				// 已提交状态,额度需要加上本身单据分录的额度
				if (publicaccountStandard[mapKey]) {
					accountStandard = publicaccountStandard[mapKey];
					accountStandard.amountbalance = accountStandard.amountbalance + entryAmountOri;
				} else {
					accountStandard = {
						controlType: accountObj.controlType,
						amountbalance: accountObj.amountbalance + entryAmountOri,
						totalAmount: accountObj.totalAmount - entryAmountOri,
						totalMonthLimit: accountObj.totalMonthLimit,
						controlMethod: accountObj.expenseType.controlMethod
					};
					publicaccountStandard[mapKey] = accountStandard;
				}
			} else {
				// 其他编辑状态
				accountStandard = {
					controlType: accountObj.controlType,
					amountbalance: accountObj.amountbalance,
					totalMonthLimit: accountObj.totalMonthLimit,
					controlMethod: accountObj.expenseType.controlMethod,
					totalAmount: accountObj.totalAmount
				};
				publicaccountStandard[mapKey] = accountStandard;
			}
			// TODO 通过索引选取行是否会出现不匹配的情况?
			//var rowid = waf("#entries").wafGrid("getRowId", i + 1);
			/////_private.showAccountStandard(accountStandard, rowid);
		}
		for (var i = 0; i < result.length; i++) {
			var accountObj = result[i];
			if (!accountObj) continue;
			var happenTime = oriEntries[i].happenTime;
			var currency = oriEntries[i].currencyType;
			var mapKey = buildMapKey(accountObj.expenseType, currency, happenTime);
			var accountStandard = publicaccountStandard[mapKey];
			if (!accountStandard) continue;
			///var rowid = waf("#entries").wafGrid("getRowId", i + 1);
			///_private.showAccountStandard(accountStandard, rowid);
		}
	};
	var fail = function(result) {
		// debugger;
		mbos.msgBox.showError(result);
	};

	mbos.eas.invokeScript("fetchAccountStandard", paramacc, success, fail);
})

_this.newBill = function(event) {
	//创建单据加载过滤条件 相当于initUIData    
	if (company === "" && currencyType === "") {
		//获得初始化数据
		var param = [];
		var success = function(data) {
			currencyType = data.currencyType;
			company = data.company;
			applierCompany = data.applierCompany;
			costCenterOrgUnitInfo = data.costCenterOrgUnitInfo;
			//调用服务端脚本,param为参数,success,fail分别为回调函数
			mbos('entity').data.entries[mbos('entity').value().entries.length - 1].currencyType = currencyType;
			mbos('entity').data.currencyType = currencyType;

			mbos('entity').data.entries[mbos('entity').value().entries.length - 1].company = company;
			mbos('entity').data.company = company;

			mbos('entity').data.applierCompany = applierCompany;
			mbos('entity').data.costedDept = costCenterOrgUnitInfo;
			mbos('entity').data.entries[mbos('entity').value().entries.length - 1].costCenter = costCenterOrgUnitInfo;
			//alert("3:"+company.name+company.number);


		};
		var fail = function(data) {
			mbos.msgBox.showError(data);
		};
		mbos.eas.invokeScript("initData", param, success, fail);
	} else {
		mbos('entity').data.entries[mbos('entity').value().entries.length - 1].currencyType = currencyType;
		mbos('entity').data.currencyType = currencyType;

		mbos('entity').data.entries[mbos('entity').value().entries.length - 1].company = company;
		mbos('entity').data.company = company;

		mbos('entity').data.applierCompany = applierCompany;
		mbos('entity').data.costedDept = costCenterOrgUnitInfo;
		mbos('entity').data.entries[mbos('entity').value().entries.length - 1].costCenter = costCenterOrgUnitInfo;
	}
	setCostedQueryFilter();

	//mzsks
	_private.createBill();



}

_this.newEntry = function(event) {
  // if (event.data.bosType == "F2062F13" && mbos('entity').value().entries.length>0) {
  //alter by Smart 20230313
	if (event.data.bosType == "F2062F13" && mbos('entity').value().entries.length>0) {
		mbos('entity').data.entries[mbos('entity').value().entries.length - 1].currencyType = currencyType;
		mbos('entity').data.entries[mbos('entity').value().entries.length - 1].company = company;
	}
}

var queryAccountStandard = function(entries, i) {

	// 查询报销标准
	if (CP027 == "false") {
		return;
	}
	var expenseType = entries[i].expenseType;
	var currencyType = entries[i].currencyType;
	var happenTime = entries[i].happenTime;
	var applier = mbos('entity').data.applier;
	var applierCompany = mbos('entity').data.applierCompany;

	if (applierCompany == "" || applier == "" || happenTime == "" || "" == currencyType || "" == expenseType || (
		expenseType != "" && expenseType.controlType == 0)) {
		// TODO 费用类型的控制方式为无控制时,报销标准如何处理?之前为隐藏报销标准
		///editGridDom.wafGrid("setCell", rowid, "accountStandard", null);
		return;
	}
	// 费用类型number.币别number.控制策略对应年月(按月控制-发生日期的年月,按年控制-发生日期的年月所在年的起始年月,
	// 按季控制-发生日期的年月所在季度的起始年月)			
	var controlMethod = expenseType.controlMethod;
	var mapKey = buildMapKey(expenseType, currencyType, happenTime);
	if (publicaccountStandard.hasOwnProperty(mapKey)) {
		// 如果缓存有对应的标准,不请求后台
		var accountStandard = publicaccountStandard[mapKey];
		///_private.showAccountStandard(accountStandard, rowid);
	} else {
		// 精简model
		///var model = _self.getCurrentModel();
		if (expenseType) {
			// expenseType.id = encodeURIComponent(expenseType.id);
		}
		var billinfo = {
			bosType: mbos('entity').data.bosType,
			applier: mbos('entity').data.applier,
			applierCompany: mbos('entity').data.applierCompany,
			entries: [{
				expenseType: expenseType,
				currencyType: currencyType,
				happenTime: happenTime
			}]
		};
		var param = [billinfo];
		var success = function(result) {
			// debugger;
			// 显示报销额度
			if (typeof result != "object") {
				return;
			}
			// 缓存报销标准
			result = result[0];
			var accountStandard = [];
			if (result == null) {
				accountStandard = null;
			} else {
				accountStandard = {
					controlType: result.controlType,
					amountbalance: result.amountbalance,
					totalMonthLimit: result.totalMonthLimit,
					controlMethod: result.expenseType.controlMethod,
					totalAmount: result.totalAmount
				};
			}
			publicaccountStandard[mapKey] = accountStandard;
			///_private.showAccountStandard(accountStandard, rowid);				
		};
		var fail = function(result) {
			mbos.msgBox.showError(result);
		};
		mbos.eas.invokeScript("fetchAccountStandard", param, success, fail);
	}
}

var publicaccountStandard = {};

var initKeyList = function(keyList, entries) {
	for (var i = 0, il = entries.length; i < il; i++) {
		var entry = entries[i],
			expenseType = entry.expenseType,
			currencyType = entry.currencyType,
			happenTime = entry.happenTime;
		if (!(happenTime instanceof Date)) {
			var dateExp = /^\s*(\d{4})-(\d\d)-(\d\d).*$/,
				tmpDate = new Date(NaN),
				tmpMonth;
			var parts = dateExp.exec(happenTime);
			if (parts) {
				tmpMonth = parts[2];
				tmpDate.setFullYear(parts[1], tmpMonth - 1, parts[3]);
			}
			happenTime = tmpDate;
		}
		///var mapKey = _private.buildMapKey(expenseType, currencyType, happenTime);
		var mapKey = buildMapKey(expenseType, currencyType, happenTime);
		if (!isArrayContainsVal(keyList, mapKey)) {
			keyList.push(mapKey);
		}
	}
}
var isArrayContainsVal = function(array, value) {
	var i = array.length;
	while (i--) {
		if (array[i] == value) {
			return true;
		}
	}
	return false;
}

var buildMapKey = function(expenseType, currency, happenTime) {
	// 根据费用类型/币别/发生日期/控制策略构造报销标准缓存的key值
	// 同一标准中,分录上的发生日期不一样,所判断的总额度也得分开缓存,这里通过构造key值区分
	///var applier = waf("#applier").wafPromptBox("getValue");			
	var applier = mbos('entity').data.applier;
	if (!applier || !applier.id) return;
	if (!(happenTime instanceof Date)) {
		var dateExp = /^\s*(\d{4})-(\d\d)-(\d\d).*$/,
			tmpDate = new Date(NaN),
			tmpMonth;
		var parts = dateExp.exec(happenTime);
		if (parts) {
			tmpMonth = parts[2];
			tmpDate.setFullYear(parts[1], tmpMonth - 1, parts[3]);
		}
		happenTime = tmpDate;
	}
	var mapKey = applier.id + "." + expenseType.number + "." + currency.number;
	var controlMethod = expenseType.controlMethod;
	controlMethod = (typeof(controlMethod) == "string") ? controlMethod : controlMethod.value;
	var month = happenTime.getMonth() + 1;
	if (String(month).length == 1) {
		month = '0' + month;
	}
	if (controlMethod == "0") {
		// 按年
		mapKey += "." + happenTime.getFullYear() + "." + month + "." + "0";
	} else if (controlMethod == "1") {
		// 按月
		mapKey += "." + happenTime.getFullYear() + "." + month + "." + "1";
	} else if (controlMethod == "2") {
		// 按季
		var month = happenTime.getMonth + 1;
		if (month >= 1 && month <= 3) {
			month = 1;
		} else if (month >= 4 && month <= 6) {
			month = 4;
		} else if (month >= 7 && month <= 9) {
			month = 7;
		} else if (month >= 10 && month <= 12) {
			month = 10;
		}
		mapKey += "." + happenTime.getFullYear() + month;
	}
	return mapKey;
}

var accountStandardValidate = function(data, event) {
	// debugger;
	// 费用报销单报销标准的校验
	// infoType1:严格控制标准提示|infoType2:提示且填写超标说明提示|infoType3:仅提示超标说明提示
	// balanceInfo 缓存费用类型-币别 对应的可用余额,方便计算超额总额
	var entries = data.entries,
		ifBreak = false,
		balanceInfo = {}, ///new Object(),
		//按年累计时 记录申请金额的累加,用于同一年不同月份之间的金额比对
		keyTotalAmount = {}, /// new Object(),
		//缓存按月累计控制时,同一年对应的最大额度
		keyLimitAmount = {}, /// new Object(),
		keyMonth = {}, ///new Object(),
		infoType1,
		infoType2,
		infoType3,
		keyList = []; ///new Array();

	///_private.initKeyList(keyList,entries);
	initKeyList(keyList, entries);
	for (var key in publicaccountStandard) {
		if (!publicaccountStandard[key]) continue;
		if (!isArrayContainsVal(keyList, key)) continue;
		if (key.charAt(key.length - 1) == '0') {
			var curMonth = key.substring(key.length - 4, key.length - 2);
			var commonKey = key.substring(0, key.length - 4);
			if (keyLimitAmount[commonKey]) {
				var month = keyLimitAmount[commonKey].curMonth;
				if (Number(curMonth) > Number(month)) {
					keyLimitAmount[commonKey] = publicaccountStandard[key];
				}
			} else {
				publicaccountStandard[key].curMonth = curMonth;
				keyLimitAmount[commonKey] = publicaccountStandard[key];
			}
		}
	}

	for (var i = 0, il = entries.length; i < il; i++) {
		var entry = entries[i],
			expenseType = entry.expenseType,
			expenseTypeName = (typeof(expenseType.name) == "string") ? expenseType.name : expenseType.name,
			currencyType = entry.currencyType,
			currencyTypeName = (typeof(currencyType.name) == "string") ? currencyType.name : currencyType.name,
			happenTime = entry.happenTime,
			controlMethod = expenseType.controlMethod;
		controlMethod = (typeof(controlMethod) == "string") ? controlMethod : controlMethod.value;
		if (!(happenTime instanceof Date)) {
			var dateExp = /^\s*(\d{4})-(\d\d)-(\d\d).*$/,
				tmpDate = new Date(NaN),
				tmpMonth;
			var parts = dateExp.exec(happenTime);
			if (parts) {
				tmpMonth = parts[2];
				tmpDate.setFullYear(parts[1], tmpMonth - 1, parts[3]);
			}
			happenTime = tmpDate;
		}
		var curMonth = happenTime.getMonth() + 1;
		var mapKey = buildMapKey(expenseType, currencyType, happenTime);
		var accountStandard = publicaccountStandard[mapKey];
		if (!accountStandard) {
			continue;
		}
		// 取原币别金额|报销标准可以用额度(费用类型-币别 共用一个额度)
		var amount = entry.amountOri,
			accountBalance;
		if (balanceInfo[mapKey] != undefined) {
			accountBalance = balanceInfo[mapKey];
		} else {
			accountBalance = accountStandard.amountbalance
		}
		var commonKey = null;
		//按年累计的金额累加
		// debugger;
		if (controlMethod == '0') {
			//截掉标示月份以后的字符串
			commonKey = mapKey.substring(0, mapKey.length - 4);
			if (keyTotalAmount[commonKey]) {
				keyTotalAmount[commonKey] = Number(keyTotalAmount[commonKey]) + Number(amount);
				keyTotalAmount[commonKey] = Number(keyTotalAmount[commonKey]).toFixed(2);
				amount = keyTotalAmount[commonKey];
			} else {
				keyTotalAmount[commonKey] = amount;
			}
			//重新构造mapKey,如果不存在同年累计的其他分录,构造前后应该是一样的
			//如果存在同年累计的,那构造后为年份最大的mapKey
			if (keyLimitAmount[commonKey]) {
				accountStandard = keyLimitAmount[commonKey];
				accountBalance = accountStandard.amountbalance;
			}
			if (accountStandard.curMonth) {
				curMonth = accountStandard.curMonth;
			}
			if (curMonth.length == 1) {
				mapKey = commonKey + '0' + curMonth + '.0'
			} else {
				mapKey = commonKey + curMonth + '.0'
			}
		}
		balanceInfo[mapKey] = Number(accountBalance) - Number(amount);
		if (balanceInfo[mapKey] < 0) {
			// 超出额度
			var controlType = accountStandard.controlType.value;
			// debugger;
			if (controlType == undefined) {
				controlType = accountStandard.controlType.iValue;
			}
			// debugger;
			if ("1" == controlType) {
				// 严格控制
				if (!infoType1) {
					infoType1 = new Object();
				}
				if (infoType1[mapKey] == undefined) {
					var obj = {
						overAmount: 0 - balanceInfo[mapKey],
						expenseType: expenseTypeName,
						currencyType: currencyTypeName,
						controlMethod: controlMethod,
						curMonth: curMonth,
						amountbalance: accountStandard.amountbalance,
						totalMonthLimit: accountStandard.totalMonthLimit,
						totalAmount: accountStandard.totalAmount
					};
					infoType1[mapKey] = obj;
				} else {
					infoType1[mapKey].overAmount = 0 - balanceInfo[mapKey];
				}
			} else if ("2" == controlType) {
				// 提示且填写超标说明
				if (!infoType2) {
					infoType2 = new Object();
				}
				if (infoType2[mapKey] == undefined) {
					var obj = {
						overAmount: 0 - balanceInfo[mapKey],
						expenseType: expenseTypeName,
						currencyType: currencyTypeName,
						controlMethod: controlMethod,
						curMonth: curMonth,
						amountbalance: accountStandard.amountbalance,
						totalMonthLimit: accountStandard.totalMonthLimit,
						totalAmount: accountStandard.totalAmount
					};
					infoType2[mapKey] = obj;
				} else {
					infoType2[mapKey].overAmount = 0 - balanceInfo[mapKey];
				}
			} else if ("3" == controlType) {
				// 仅提示(不控制)
				if (!infoType3) {
					infoType3 = new Object();
				}
				if (infoType3[mapKey] == undefined) {
					var obj = {
						overAmount: 0 - balanceInfo[mapKey],
						expenseType: expenseTypeName,
						currencyType: currencyTypeName,
						controlMethod: controlMethod,
						curMonth: curMonth,
						amountbalance: accountStandard.amountbalance,
						totalMonthLimit: accountStandard.totalMonthLimit,
						totalAmount: accountStandard.totalAmount
					};
					infoType3[mapKey] = obj;
				} else {
					infoType3[mapKey].overAmount = 0 - balanceInfo[mapKey];
				}
			}
		}
	}

	// debugger;
	// 构造contentDiv
	var contentDiv = "",
		ifOverAmountDesc = data.overAmountDesc != undefined;
	if (infoType1 != null && keyList != null) {
		for (var i = 0; i < keyList.length; i++) {
			var key = keyList[i];
			if (!infoType1[key]) continue;
			contentDiv += infoType1[key].expenseType + "(" + infoType1[key].currencyType + "):" +
				"累计额度" + bizNumberformat(infoType1[key].totalMonthLimit) + " | ";
			if (infoType1[key].controlMethod == '0') {
				contentDiv += "1-" + infoType1[key].curMonth + "月";
			} else {
				contentDiv += infoType1[key].curMonth + "月";
			}
			contentDiv += " | " + "已报" + bizNumberformat(infoType1[key].totalAmount) + " | " + bizNumberformat(infoType1[key].amountbalance);
		}
	}

	if (!ifOverAmountDesc && infoType2 != null && keyList != null) {
		for (var i = 0; i < keyList.length; i++) {
			var key = keyList[i];
			if (!infoType2[key]) continue;
			contentDiv += infoType2[key].expenseType + "(" + infoType2[key].currencyType + "):" +
				"累计额度" + bizNumberformat(infoType2[key].totalMonthLimit) + " | " + "可报";
			if (infoType2[key].controlMethod == '0') {
				contentDiv += "1-" + infoType2[key].curMonth + "月";
			} else {
				contentDiv += infoType2[key].curMonth + "月";
			}
			contentDiv += " | " + "已报" + bizNumberformat(infoType2[key].totalAmount) + " | " + "可报" + bizNumberformat(infoType2[
				key].amountbalance);
		}
	}
	if (infoType3 != null && keyList != null) {
		for (var i = 0; i < keyList.length; i++) {
			var key = keyList[i];
			if (!infoType3[key]) continue;
			contentDiv += infoType3[key].expenseType + "(" + infoType3[key].currencyType + "):" +
				"累计额度" + bizNumberformat(infoType3[key].totalMonthLimit) + " | ";
			if (infoType3[key].controlMethod == '0') {
				contentDiv += "1-" + infoType3[key].curMonth + "月";
			} else {
				contentDiv += infoType3[key].curMonth + "月";
			}
			contentDiv += " | " + "已报" + bizNumberformat(infoType3[key].totalAmount) + " | " + "可报" + bizNumberformat(infoType3[
				key].amountbalance);
		}
	}
	// debugger;

	// 构造footDiv
	//infoType1 infoType3 infoType2
	// 严格控制	仅提示	提示和填写超标说明	footDiv
	//    1		   0		0				不能提交
	//    1        1		0				不能提交
	//    1		   0		1				不能提交
	//    1		   1		1				不能提交
	// 	  0		   0		0				直接提交
	//    0		   1	    0				是否继续提交?
	//    0		   1		1				是否填写说明 ? 是否继续提交 : 填写说明
	//    0	       0		1				是否填写说明 ? 提交 : 填写说明
	var footDiv = "";
	if (infoType1 != null) {
		footDiv = ";超出可报额度,不能提交,如有疑问请查看个人额度表!";
		contentDiv += footDiv;

		mbos.ui.showInfo("费用报销超标警告", contentDiv, function() {

		});
		// debugger;
		return;
	}
	if (infoType2 != null) {
		if (ifOverAmountDesc) {
			page.submit && page.submit(event);
			return;
		} else {
			// 提示填写说明,并显示说明
			footDiv = ";超出可报额度,如继续,则请填写超标说明后提交,否则取消。";
			contentDiv += footDiv;
			mbos.ui.showConfirm("费用报销超标警告", contentDiv, function(data) {
				//点击取消按钮
				if (data == 1) {

				} else if (data == 0) { //点击确定按钮   
					mbos('overAmountDesc').show();
				}
			});
			// debugger;
			return;
		}
	}
	if (infoType3 != null) {
		footDiv = ";超出可报额度,确定是否提交?";
		contentDiv += footDiv;
		mbos.ui.showConfirm("费用报销超标警告", contentDiv, function() {
			page.submit && page.submit(event);
			// debugger;
			return; // page.submit && page.submit(event); 

		});
		// debugger;
		return;
	}
	page.submit && page.submit(event);
}
var bizNumberformat = function(num) {
	return (Number(num).toFixed(2) + '').replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,');
}

_this.imageOnClick = function(event) {
	var state = mbos('entity').data.state.value;
	if (state < 30) {
		//mbos('billimage1').setItems(2);
		mbos('billimage1').billimage();
	} else {
		mbos('billimage1').setItems(2);
		mbos('billimage1').billimage();
	}
}

_this.pageOnLoadAfter = function(event) {
	_private.setCountersignatoryEntry();
}

/*
	税号:914403000944135503
	企业名称:招银国际资本管理(深圳)有限公司
    发票云授权标识(Client_ID):
    vZEf1W3Cvb4WAtY8hz9O
    授权密钥(Client_Secret):
    14fdbc08056f45b3b6a892440d28b220
    加密密钥(Encrypt_Key):
    0ZhrySW1zgGhDauV


*/

//加载事件完成
mbos('entity').bind('afterLoad', function() {
	_private.initButtonStatus();
	//编辑单据加载过滤条件
	setCostedQueryFilter();
	setEntryCostedQueryFilter();

	//mzsks
	_private.setCountersignatoryEntry();

	_this.initClientID();
	

	//_private.setOrgUnitFilter(); //公司过滤部门



	// var orgUnit = mbos('entity').data.orgUnit;
	//   if(!orgUnit){
	//     mbos("applier").attr('dynamicFilter', "number = 'LJC'");
	//     mbos('entity').data.applier=null;
	//   }else{
	//     _private.setApplierFilter(); //过滤实际报销人
	//   }



});

_this.openInvoiceHandel = function(event) {
	//mbos.msgBox.showError("test");
    if(Client_ID == ""){
        return;
    }
	var model = mbos("entity").data;
	//公司
	var company = model.company;
	//报销单号
	var billNumber = model.number;
	//报销单ID
	var billid = model.id;
	//申请人ID
	var applierId = model.applier.id

	var random = Math.random()
	var timestamp = Date.now();
	var sign = hex_md5(Client_ID + Client_Secret + timestamp);
	var params = {
		"billNumber": billNumber,
		"billType": "",
		"branch_id": "",
		"ghf_mc": TaxNum,
		"bxd_key": billid,
		"client_id": Client_ID,
		"eid": applierId,
		"random": random + "",
		"sign": sign,
		"ticketParam": "1111",
		"timestamp": timestamp + "",
		"tin": TaxNum
	};
	params = [JSON.stringify(params)]


	timestamp = Date.now();
	var isOpenSocket = false; //防止socket突然重连导致闪退重复打开iframe
	var iframe = document.createElement('iframe');
	iframe.width = '100%';
	iframe.height = '100%';
	iframe.style.border = 0;
	iframe.style = "border:0;position:absolute;top:0;z-index:2"
	var pwyWebsocket = new PwyWebSocket({ //参数说明同文档1.0表格,
		env: "test", //正式环境: prod,     测试环境: test
		tin: TaxNum, //${tin}为获取userKey时的税号
		eid: applierId, //eid为获取userKey时的用户${eid}
		client_id: Client_ID, // 发票云授权标识
		sign: hex_md5(Client_ID + Client_Secret + timestamp), // ${sign}签名规则:MD5(client_id + client_secret + timestamp)
		timestamp: timestamp, // 签名时的时间戳${timestamp}
		name: LinkKey, // 连接名称,选择发票前获取的${linkKey} ,接口1.7
		onOpen: function() { // 连接成功的回调
			var socketName = this.name;
			if (socketName != '') {
				window.onhashchange = function() { // 如果碰到页面头部返回,iframe无法关闭,可以在打开的时候给当前地址加上hash,然后通过监听hash的方式关闭iframe
					if (this.location.hash.indexOf('pwy') < 0) {
						var fwy = document.getElementById('fwy');
						if (fwy) {
							fwy.parentNode.removeChild(fwy);
						}
					}
				}
				if (!isOpenSocket) {
					window.location.hash = 'pwy' + new Date().getTime();
					iframe.src = BaseUrl + '/m4-web/dd/wap/index?userKey=' + UserKey + '&socketName=' + socketName + '&app=other' + '&model=no' + '&wechatCard=false';
					document.body.appendChild(iframe);
				}
				isOpenSocket = true;
			} else {
				console.log('未获取到连接名');
			}
		},
		onMessage: function(msg) { //从发票云采集完发票点击首页推送返回到当前页面时,此处会接收发票数据
			// alert('获取到' + msg.data.length + '条数据');
			//分录ID 和 发票流水号 之间的关系
			 var entriesArr = mbos("entity").data.entries;
          	var model = mbos("entity").data;
            var relation = []; var k = 0;
            //原始分录发票信息
            for(var i = 0; i < entriesArr.length; i++){
                if(entriesArr[i].entrySerialNo){
                    relation[k] = {
                    "entryid": entriesArr[i].id,
                    "fid": entriesArr[i].entrySerialNo
                    }
                    k++;
                }
            }
            var invServiceType = "";
            var feeType = "";
             mbos.eas.invokeScript("getExpTypeByInv", [invServiceType,feeType,msg],function(result){
                    // mbos.msgBox.showInfo(result.data);
               	//关闭窗口
                 if (iframe) { // 关闭新增的地址
                    window.history.go(-1);
                    iframe.parentNode.removeChild(iframe);
                    isOpenSocket = false;
                }
               if(result){
                 var entryArray = mbos.$model("entity").data['entries'];
                 	for(var j = 0; j < result.length; j++){
                      
                       $.ajax({
                        async:false,
                        url: "/mbos/editpage/createEntryModel",
                        type: "post",
                        // contentType: 'application/json', 
                        data: {"bostype": model.bosType,
                                "initvalueMap": JSON.stringify(initvalueMap),
                                "uiname": requestParam.name,
                                "entryName": "entries"},
                        success: function(data) {
                                data.expenseType = result[j].expenseType;
                                data.exchangeRate = result[j].exchangeRate;
                                data.tax = result[j].taxAmount;
                                data.amount = result[j].amount;
                                data.amountOri = result[j].amountOri;
                                data.amountWithoutTax = result[j].amountWithoutTax
                                data.amountOriWithoutTax =  result[j].amountOriWithoutTax
                                // data.amountApproved = detailAmount;
                                // data.amountApprovedOri = detailAmount;
                                // data.amountApprovedOriWithoutTax = taxRate;
                                // data.amountApprovedWithoutTax = detailAmount;
                                data.reportCurrency = result[j].reportCurrency;
                                data.entryTicNumber = result[j].entryTicNumber;
                                data.entrySerialNo = result[j].entrySerialNo;
                         		data.currencyType = currencyType;
                                data.company = company;
                                
                                // entryArray.push(data);
                                relation[k] = {
                                    "entryid": data.id,
                                    "fid": data.entrySerialNo
                                };
                                k++;
                          		entryArray.push(data);
                                var event = {};
                                event.data = data;
                                mbos.$eventbus.fire("page", "onCreateDetailData", event);
                            },
                            error: function(data) {
                                if (typeof(data) == "string") {
                                    mbos.msgBox.showError("", data);
                                } else {
                                    mbos.msgBox.showError(data);
                                }
                            }
                        });
                    }
                 
                 	//同步单据与发票关系
                    timestamp = Date.now();
                    var syncParams = {
                        "userKey": UserKey, //打开首页时获取的userKey(可以为空)
                        "eid": applierId, //erp系统的用户id
                        "billTypeId": "UcN+cgExEADgAAAEwKjIWG8A6j8=", //单据类型, 用于区分是哪种单据//SELECT * FROM T_BC_BillType
                        "billnumber": billNumber, //保存时的单据编号
                        "bxd_key": billNumber, //保存时的单据ID全球唯一id,如果没有这个字段,与billnumber一致即可
                        "client_id": Client_ID, //发票云授权标识(client_id)
                        "tin": TaxNum, //企业税号
                        "timestamp": timestamp, //签名的时间戳
                        "sign": hex_md5(Client_ID + Client_Secret + timestamp), //签名规则:MD5(client_id + client_secret + timestamp)
                        "data": []
                    }
                    syncParams.data = relation;


                    var fail = function(data) {
                        mbos.msgBox.showError("同步单据发票关系出错");
                    };
                    var success = function(data) {
                        if (data.errcode == "0000") {
                            console.log("同步单据发票关系成功");
                        }
                    }
                    timestamp = Date.now();
                    //
                    var x = 100,y = 1000;
                    mbos.eas.invokeScript("doPostRequsition", [BaseUrl+"/m4/fpzs/expense/entry/save?reqid="+timestamp+""+Math.round(Math.random()*(y-x)+x),JSON.stringify(syncParams)], success, fail);
                 
                 	//关闭窗口
                  //  if (iframe) { // 关闭新增的地址
                  //     window.history.go(-1);
                  //     iframe.parentNode.removeChild(iframe);
                  //     isOpenSocket = false;
                  // }
               }
            },function(result){
                mbos.msgBox.showInfo(result.detail);
            });

			// for (var i = 0; i < msg.data.length; i++) {
			// 	//往分录中追加分录行,填入发票信息
			// 	// alert(msg.data[0].buyerName); //购方抬头
			// 	// alert(msg.data[0].buyerTaxNo); //购方税号
			// 	// alert('1111');
			// 	// alert(msg.data[0].serialNo); //发票流水号
			// 	// alert(billid);
			// 	var entryTicNumber = msg.data[i].invoiceCode;
			// 	var entrySerialNo = msg.data[i].serialNo
			// 	var items = msg.data[i].items;

			// 	for (var j = 0; j < items.length; j++) {
			// 		var item = items[j];
			// 		/**
			// 		0: {unitPrice: "157.86", taxRate: "免税", unit: "", num: "1", detailAmount: "157.86", …}
			// 		1: {unitPrice: "", taxRate: "免税", unit: "", num: "", detailAmount: "-27.95", …}
			// 	*/
			// 		var detailAmount = Number(item.detailAmount); //报销金额
			// 		var taxRate = 0; //税率
			// 		if (taxRate != "免税" && taxRate != 0 && taxRate != "***") {
			// 			var str = taxRate.replace('%','');
			// 			taxRate = str / 100;
			// 		}
            //         var taxAmount = 0;
            //         taxRate = Number(taxRate);
            //         if(taxRate!=0){
            //             taxAmount = Number(item.taxAmount); //税额
            //         }
					
			// 		var goodsName = item.goodsName;
            //         var invServiceType = goodsName.split('*')[1];
            //         var feeType = goodsName.split('*')[2];
                  
            //         // mbos.eas.invokeScript("getExpTypeByInv", [invServiceType,feeType], 
            //         // function(result){
            //         //     // mbos.msgBox.showError(data.name);
            //         //     var entryArray = mbos.$model("entity").data['entries'];
            //         //     $.ajax({
            //         //     async:false,
            //         //     url: "/mbos/editpage/createEntryModel",
            //         //     type: "post",
            //         //     // contentType: 'application/json', 
            //         //     data: {"bostype": model.bosType,
            //         //             "initvalueMap": JSON.stringify(initvalueMap),
            //         //             "uiname": requestParam.name,
            //         //             "entryName": "entries"},
            //         //     success: function(data) {
            //         //             data.expenseType = result;
            //         //             data.exchangeRate = taxRate;
            //         //             data.tax = taxAmount;
            //         //             data.amount = detailAmount;
            //         //             data.amountOri = detailAmount;
            //         //             data.amountWithoutTax = detailAmount / (1 + taxRate / 100)
            //         //             data.amountOriWithoutTax = detailAmount / (1 + taxRate / 100)
            //         //             // data.amountApproved = detailAmount;
            //         //             // data.amountApprovedOri = detailAmount;
            //         //             // data.amountApprovedOriWithoutTax = taxRate;
            //         //             // data.amountApprovedWithoutTax = detailAmount;
            //         //             data.reportCurrency = detailAmount;
            //         //             data.entryTicNumber = entryTicNumber;
            //         //             data.entrySerialNo = entrySerialNo;
                                
            //         //             entryArray.push(data);
            //         //             relation[k] = {
            //         //                 "entryid": data.id,
            //         //                 "fid": entrySerialNo
            //         //             };
            //         //             k++;
            //         //             var event = {};
            //         //             event.data = data;
            //         //             mbos.$eventbus.fire("page", "onCreateDetailData", event);
            //         //         },
            //         //         error: function(data) {
            //         //             if (typeof(data) == "string") {
            //         //                 mbos.msgBox.showError("", data);
            //         //             } else {
            //         //                 mbos.msgBox.showError(data);
            //         //             }
            //         //         }
            //         //     });
            //         //     //同步单据与发票关系
            //         //     timestamp = Date.now();
            //         //     var syncParams = {
            //         //         "userKey": UserKey, //打开首页时获取的userKey(可以为空)
            //         //         "eid": applierId, //erp系统的用户id
            //         //         "billTypeId": "UcN+cgExEADgAAAEwKjIWG8A6j8=", //单据类型, 用于区分是哪种单据//SELECT * FROM T_BC_BillType
            //         //         "billnumber": billNumber, //保存时的单据编号
            //         //         "bxd_key": billNumber, //保存时的单据ID全球唯一id,如果没有这个字段,与billnumber一致即可
            //         //         "client_id": Client_ID, //发票云授权标识(client_id)
            //         //         "tin": TaxNum, //企业税号
            //         //         "timestamp": timestamp, //签名的时间戳
            //         //         "sign": hex_md5(Client_ID + Client_Secret + timestamp), //签名规则:MD5(client_id + client_secret + timestamp)
            //         //         "data": []
            //         //     }
            //         //     syncParams.data = relation;
                        
                        
            //         //     var fail = function(data) {
            //         //         mbos.msgBox.showError("同步单据发票关系出错");
            //         //     };
            //         //     var success = function(data) {
            //         //         if (data.errcode == "0000") {
            //         //             console.log("同步单据发票关系成功");
            //         //         }
            //         //     }
            //         //     timestamp = Date.now();
            //         //     //
            //         //     var x = 100,y = 1000;
            //         //     mbos.eas.invokeScript("doPostRequsition", [BaseUrl+"/m4/fpzs/expense/entry/save?reqid="+timestamp+""+Math.round(Math.random()*(y-x)+x),JSON.stringify(syncParams)], success, fail);
                        
            //         // }, function(data){
            //         //     mbos.msgBox.showError(data);
            //         // });
					
			// 	}
			// }

			
			// if (iframe) { // 关闭新增的地址
			// 	window.history.go(-1);
			// 	iframe.parentNode.removeChild(iframe);
			// 	isOpenSocket = false;
			// }
		},
		onError: function(errText, errCode) { //失败时的回调
			console.log("与发票云建立连接失败!");
			console.log("errText>>>" + errText);
			isOpenSocket = false;
		}
	})

}

_this.showEntryInv = function(event) {
	var model = mbos("entity").data;
	//报销单ID
	var billid = model.id;
	//获取分录中的发票信息相关字段
	var buyerName = "";
	var buyerTaxNo = "";
	var entrySerialNo = "";
	//时间戳
	var timestamp = Date.now();
	var entries = mbos.$model("entity").data['entries'];
	for (var i = 0; i < entries.length; i++) {
		buyerName = entries[0].buyerName;
		buyerTaxNo = entries[0].buyerTaxNo;
		entrySerialNo = entries[0].entrySerialNo;
	}
	var params = {
		"client_id": Client_ID,
		data: {
			"buyerName": "",
			"buyerTaxNo": "",
			"certifacateSerialNos": [], //附件流水号
			"invoiceSerialNos": [
				entrySerialNo
			],
			"ticketParam": "1111",
			"expenseId": billid
		},
		"sign": hex_md5(Client_ID + Client_Secret + timestamp),
		"timestamp": timestamp,
		"type": "EXPENSE_SERIALNO_QUERY"
	}
	params = [JSON.stringify(params)]
	var fail = function(data) {
		// userkey = "";
		mbos.msgBox.showError("获取EventCode出错");
	};
	var success = function(data) {
		// alert(data);
		// if(data.errcode == "0000"){
		// 	userkey = data.data.userKey;
		// }
		// mbos.msgBox.showError("userkey:"+userkey);
	}
	// mbos.eas.invokeScript("getEventCode", params, success, fail);
	// params = [JSON.stringify(params)]
    mbos.eas.invokeScript("doPostRequsition", [BaseUrl+"base/oauth/eventCode",JSON.stringify(params)], success, fail);

}
_this.showHeadInv = function(event) {
    if(Client_ID == ""){
        return;
    }
	var model = mbos("entity").data;
	//报销单ID
	var billid = model.id;
  	var billNumber = model.number;
	//时间戳
	var timestamp = Date.now();
	/*
  	var Client_ID = "vZEf1W3Cvb4WAtY8hz9O";
	var Client_Secret = "14fdbc08056f45b3b6a892440d28b220";
	var Encrypt_Key = "0ZhrySW1zgGhDauV";
  */
	//获取
	var url = BaseUrl + "/m4/fpzs/bxdInvoices?bxd_key=" + billNumber + "&client_id=" + Client_ID + "&timestamp=" + timestamp + "&sign=" + hex_md5(Client_ID + Client_Secret + timestamp);
	window.location.href = url;
}

//分录修改完成后重新同步发票信息到发票云
_this.syncInvToCloud = function(){
	var model = mbos("entity").data;
	//公司
	var company = model.company;
	if (company.number == "0201-CC") {

	}
	//报销单号
	var billNumber = model.number;
	//申请人ID
	var applierId = model.applier.id
	var entries = model.entries;
  	var relation = []; var k = 0;
    for(var i = 0; i < entries.length; i++){
      if(entries[i].entrySerialNo){
        relation[k] = {
          "entryid": entries[i].id,
          "fid": entries[i].entrySerialNo
      	}
        k++;
      }
    }
    
    
	var random = Math.random()
	var timestamp = Date.now();
	var sign = hex_md5(Client_ID + Client_Secret + timestamp);
  //获取单据头
  //同步单据与发票关系
  timestamp = Date.now();
  var syncParams = {
      "userKey": userkey, //打开首页时获取的userKey(可以为空)
      "eid": applierId, //erp系统的用户id
      "billTypeId": "UcN+cgExEADgAAAEwKjIWG8A6j8=", //单据类型, 用于区分是哪种单据//SELECT * FROM T_BC_BillType
      "billnumber": billNumber, //保存时的单据编号
      "bxd_key": billNumber, //保存时的单据ID全球唯一id,如果没有这个字段,与billnumber一致即可
      "client_id": Client_ID, //发票云授权标识(client_id)
      "tin": TaxNum, //企业税号
      "timestamp": timestamp, //签名的时间戳
      "sign": hex_md5(Client_ID + Client_Secret + timestamp), //签名规则:MD5(client_id + client_secret + timestamp)
      "data": []
  }
  syncParams.data = relation;
  var fail = function(data) {
      mbos.msgBox.showError("同步单据发票信息出错");
  };
  var success = function(data) {
      if (data.errcode == "0000") {
          console.log("同步单据发票信息成功");
      }
  }
  timestamp = Date.now();
  //
  var x = 100,y = 1000;
  mbos.eas.invokeScript("doPostRequsition", [BaseUrl+"/m4/fpzs/expense/entry/save?reqid="+timestamp+""+Math.round(Math.random()*(y-x)+x),JSON.stringify(syncParams)], success, fail);
			
}

//保存单据时保存单据信息到发票云
_this.saveInvToCloud = function(){
    if(Client_ID == ""){
        return;
    }
	var model = mbos("entity").data;
	//公司
	var company = model.company;
	//报销单号
	var billNumber = model.number;
	//申请人ID
	var applierId = model.applier.id
    var cause = model.cause;
  	var creatorId = model.creator.id;
  	var creatorName = model.creator.name;
	var entries = model.entries;
  	var relation = []; var k = 0;
    for(var i = 0; i < entries.length; i++){
      if(entries[i].entrySerialNo){
        relation[k] = {
          "entryid": entries[i].id,
          "fid": entries[i].entrySerialNo
      	}
        k++;
      }
    }
    
    
	var random = Math.random()
	var timestamp = Date.now();
	var sign = hex_md5(Client_ID + Client_Secret + timestamp);
  //获取单据头
  //同步单据与发票关系
  timestamp = Date.now();
  var syncParams = {
        "userKey": userkey,//打开首页时获取的userKey(可以为空)
        "eid": applierId,//eas用户id eas系统用户id
        "billTypeId": "UcN+cgExEADgAAAEwKjIWG8A6j8=", //单据类型, 用于区分是哪种单据
        "billnumber": billNumber, //单据编号
        "bxd_key": billNumber, //单据ID全球唯一id,如果没有这个字段,与billnumber一致即可
        "client_id": Client_ID, //发票云授权标识(client_id)
        "tin": TaxNum, //企业税号
        "timestamp": timestamp, //签名的时间戳
        "sign": hex_md5(Client_ID + Client_Secret + timestamp), //签名规则:MD5(client_id + client_secret + timestamp)
        "coverBase64": "",//封面的base64
        "coverFileType": "",//封面的文件类型:pdf、jpg、png等
        "coverNumber": "",//影像/封面编号
        "data":[],
    	// [{
    	// "entryid": "", //单据的分录id,如果没有分录功能(可以传空)
    	// "fid": [ //发票流水号, 数组格式
    	// "流水号1",
    	// "流水号2"
    	// ],
    	// "costTypeId":"",//费用类型id(如获取不到可以为空)
    	// "costTypeName":"业务招待费",//费用类型名称(如获取不到可以为空)
    	// }],
        "remark":cause,//事由
        "expensePersonId":creatorId,//创建单据人ID
        "expensePersonName":creatorName,//创建单据人昵称
        "realExpenseAmount":"",//实际金额
        "billType":""//单据类型
}
  syncParams.data = relation;
  var fail = function(data) {
      mbos.msgBox.showError("保存单据发票信息出错");
  };
  var success = function(data) {
      if (data.errcode == "0000") {
          console.log("保存单据发票信息成功");
      }
  }
  timestamp = Date.now();
  //
  var x = 100,y = 1000;
  mbos.eas.invokeScript("doPostRequsition", [BaseUrl+"/m4/fpzs/expense/entry/save?reqid="+timestamp+""+Math.round(Math.random()*(y-x)+x),JSON.stringify(syncParams)], success, fail);
			
}

//单据提交时重新同步发票信息到发票云
_this.submitInvToCloud = function(){
    if(Client_ID == ""){
        return;
    }
	var model = mbos("entity").data;
	//公司
	var company = model.company;
	if (company.number == "0201-CC") {

	}
	//报销单号
	var billNumber = model.number;
	//申请人ID
	var applierId = model.applier.id
	var entries = model.entries;
  	var invoiceData = []; var k = 0;
    for(var i = 0; i < entries.length; i++){
      if(entries[i].entrySerialNo){
        invoiceData[k] = {
            "serialNo":entries[i].entrySerialNo,//流水号
            "canBeDeduction":"",//是否可抵扣,0不可 1 可以
            "entryAmount":"",//入账税额
            "outputReason":""//转出原因
      	}
        k++;
      }
    }
    
    
	var random = Math.random()
	var timestamp = Date.now();
	var sign = hex_md5(Client_ID + Client_Secret + timestamp);
  //获取单据头
  //同步单据与发票关系
  timestamp = Date.now();
  var syncParams = {
    "userKey":UserKey, //打开首页时获取的userKey(可以为空)
    "timestamp": "", //签名的时间戳
    "tin": TaxNum, //税号
    "sign": hex_md5(Client_ID + Client_Secret + timestamp), // 签名规则:MD5(client_id + client_secret + timestamp)
    "client_id": Client_ID,//发票云授权标识(client_id)
    "expenseStatus":"30", //单据状态: 1未用、30在用、60已用、65已入账
    "ticketParam":"11011", //过滤规则,默认不允许被多个单据重复占用
    "billnumber": billNumber, //保存时的单据编号
    "bxd_key": billNumber, //保存时的单据ID全球唯一id,如果没有这个字段,与billnumber一致即可
    "eid":applierId,//erp系统的用户id
    "billTypeId":"UcN+cgExEADgAAAEwKjIWG8A6j8=",// 单据类型, 用于区分是哪种单据, 最长80位
    "invoiceData":[{
        "serialNo":"",//流水号
        "canBeDeduction":"",//是否可抵扣,0不可 1 可以
        "entryAmount":"",//入账税额
        "outputReason":""//转出原因
    }]
}
  syncParams.data = invoiceData;
  var fail = function(data) {
      mbos.msgBox.showError("提交单据发票信息出错");
  };
  var success = function(data) {
      if (data.errcode == "0000") {
          console.log("提交单据发票信息成功");
      }
  }
  timestamp = Date.now();
  //
  var x = 100,y = 1000;
  mbos.eas.invokeScript("doPostRequsition", [BaseUrl+"/m4/fpzs/expense/invoice/status/update?reqid="+timestamp+""+Math.round(Math.random()*(y-x)+x),JSON.stringify(syncParams)], success, fail);
			
}

_this.initClientID = function(){
    //add by Smart 20230224
	var model = mbos("entity").data;
	//公司
    //获取当前公司
	var company = model.company;
    //招银国际资本管理(深圳)有限公司
	if (company.number == "S-0210-02-C") {
        TaxNum = "914403000944136659"; 
        Client_ID = "vZEf1W3Cvb4WAtY8hz9O";
        Client_Secret = "14fdbc08056f45b3b6a892440d28b220";
        Encrypt_Key = "0ZhrySW1zgGhDauV";
	}else if(company.number == "S-0210-03-HH"){//招银国际金融控股(深圳)有限公司
        TaxNum = "914403000944135503"; 
        Client_ID = "dfsQcFGA7cf6igThiUmU";
        Client_Secret = "a5a29691746d4dd3969de23816d62e18";
        Encrypt_Key = "K9dHtRcmFzktObeP";
    }else{
        // TaxNum = ""; 
        // Client_ID = "";
        // Client_Secret = "";
        // Encrypt_Key = "";
        // UserKey = "";
        // LinkKey = "";
    }
    if(Client_ID != ""){
        //报销单号
        var billNumber = model.number;
        //报销单ID
        var billid = model.id;
        //申请人ID
        var applierId = model.applier.id;

        var random = Math.random();
        var timestamp = Date.now();
        var sign = hex_md5(Client_ID + Client_Secret + timestamp);
        var params = {
            "billNumber": billNumber,
            "billType": "",
            "branch_id": "",
            "ghf_mc": TaxNum,
            "bxd_key": billid,
            "client_id": Client_ID,
            "eid": applierId,
            "random": random + "",
            "sign": sign,
            "ticketParam": "1111",
            "timestamp": timestamp + "",
            "tin": TaxNum
        };
        //获取userkey
        // params = [JSON.stringify(params)]
        var fail = function(data) {
            UserKey = "";
            mbos.msgBox.showError("获取userkey出错");
        };
        var success = function(data) {
            if (data.errcode == "0000") {
                UserKey = data.data.userKey;
            }
            // mbos.msgBox.showError("userkey:"+userkey);
        }
        // mbos.eas.invokeScript("getUserKey", params, success, fail);
        mbos.eas.invokeScript("doPostRequsition", [BaseUrl+"/m4/fpzs/getUserKey",JSON.stringify(params)], success, fail);


        mbos.eas.invokeScript("doPostRequsition", [BaseUrl+"/m4/fpzs/getLinkKey",""],
            function(data) {
                //success
                if (data.errcode == "0000") {
                    LinkKey = data.data;
                }
                // mbos.msgBox.showError("linkkey:"+linkkey);
            },
            function(data) {
                //调用后台方法出错
                LinkKey = "";
                mbos.msgBox.showError("获取LinkKey出错");
            }
        );
    }
}
	        
console 命令行工具 X clear

                    
>
console