511 lines
19 KiB
JavaScript
511 lines
19 KiB
JavaScript
var g_grid = {};
|
|
$(function () {
|
|
var PostData = {};
|
|
var calcDate = page.ValueDate;
|
|
|
|
//控件选择时的触发事件
|
|
main.setTradeDatePicker("", "#ValueDate", calcDate, function (selectedDate) {
|
|
if (selectedDate) {
|
|
$("#ValueDateFrom").datepicker("option", "maxDate", selectedDate);
|
|
}
|
|
});
|
|
main.setTradeDatePicker("", "#ValueDateFrom", calcDate, function (selectedDate) {
|
|
if (selectedDate) {
|
|
$("#ValueDate").datepicker("option", "minDate", selectedDate);
|
|
}
|
|
});
|
|
//手动修改时的触发事件
|
|
$("#ValueDate").change(function () {
|
|
$("#ValueDateFrom").datepicker("option", "maxDate", $("#ValueDate").val());
|
|
});
|
|
$("#ValueDateFrom").change(function () {
|
|
$("#ValueDate").datepicker("option", "minDate", $("#ValueDateFrom").val());
|
|
});
|
|
//默认初始值赋值逻辑
|
|
if (!page.EndTime) {
|
|
$("#ValueDate").val(calcDate);
|
|
} else {
|
|
$("#ValueDate").val(page.EndTime);
|
|
}
|
|
|
|
//admin配置 结算报告配置 开始日期
|
|
if (page.TradeMarketReportCfg == "SYSTEMDATE") {
|
|
$("#ValueDateFrom").val($("#ValueDate").val());
|
|
}
|
|
|
|
if (page.StartTime && page.EndTime) {
|
|
$("#ValueDateFrom").val(page.StartTime);
|
|
}
|
|
|
|
|
|
|
|
if (isRunHe || isGuoTou) {
|
|
|
|
var ValueDateFrom = $("#ValueDateFrom").val();
|
|
if (!ValueDateFrom || ValueDateFrom === 'null') {
|
|
$("#ValueDateFrom").val(calcDate);
|
|
}
|
|
var ValueDate = $("#ValueDate").val();
|
|
if (!ValueDate || ValueDate === 'null') {
|
|
$("#ValueDate").val(calcDate);
|
|
}
|
|
}
|
|
|
|
|
|
$("#ClientId").val(page.ClientId);
|
|
if (page.ParentFlag == "True")
|
|
$("#ParentFlag").attr("checked", true);
|
|
else
|
|
$("#ParentFlag").attr("checked", false);
|
|
|
|
if ($("#ClientId").val()) {
|
|
SearchClientBalance();
|
|
}
|
|
|
|
function keyEnter(event) {
|
|
try {
|
|
var e = event ? event : (window.event ? window.event : null);
|
|
if (e.keyCode === 13) {
|
|
SearchClick(true);
|
|
}
|
|
} catch (e) {
|
|
//
|
|
}
|
|
}
|
|
|
|
document.onkeydown = keyEnter;
|
|
try {
|
|
SetAceDropDown();
|
|
|
|
} catch (e) {
|
|
//
|
|
}
|
|
|
|
function AfterInsertRow(rowid, aData) {
|
|
}
|
|
|
|
function WorstCastClientPayableTrigger(data) {
|
|
var payableMargin = numeral(data).value() > 0 ? numeral(data).value() : 0;
|
|
var totalCredit = numeral($("#TotalCredit").val()).value();
|
|
var marginBalance = numeral($("#MarginBalance").val()).value();
|
|
var closedTradePayableFund = numeral($("#ClosedTradePayableFund").text()).value();
|
|
var positionTradePayableFund = numeral($("#PositionTradePayableFund").text()).value();
|
|
var frozenMarginMoney = numeral($("#FrozenMarginMoney").val()).value();//为负
|
|
var todayRemainFund = numeral($("#ToDayRemainFund").text()).value();
|
|
var todayRemianFundProduct = numeral($("#TodayRemianFundProduct").text()).value();
|
|
var frozenRedeemFunds = numeral($("#FrozenRedeemFunds").val()).value();
|
|
var positionPremiumNetCash = numeral($("#PositionPremiumNetCash").text()).value();
|
|
|
|
var availableAmount = marginBalance - payableMargin + frozenMarginMoney;
|
|
$("#AvailableFund").text(numFormart(availableAmount));
|
|
|
|
|
|
|
|
let margin = Math.max(payableMargin - Math.max(todayRemainFund, 0) - todayRemianFundProduct - totalCredit, 0);
|
|
if (isXiangCai) {
|
|
margin = Math.max((-numFormart(availableAmount)), 0);
|
|
}
|
|
$("#Margin").text(numFormart(margin));
|
|
|
|
|
|
|
|
var payableFund = closedTradePayableFund + positionTradePayableFund + numeral($("#Margin").text()).value();
|
|
$("#PayableFund").val(numFormart(payableFund));
|
|
var desirableFund = isShenWan || isHongYuan ? Math.max(availableAmount + frozenRedeemFunds, 0) : Math.max(availableAmount + frozenRedeemFunds - Math.max(-positionPremiumNetCash, 0), 0);
|
|
$("#DesirableFund").text(numFormart(desirableFund));
|
|
}
|
|
|
|
$("#WorstCastClientPayable").blur(function () {
|
|
var oldData = $("#WorstCastClientPayable").text();
|
|
var dateVal = $(this).val();
|
|
var clientId = parseInt($("#ClientId").val());
|
|
var client = clients.find(y => y.id === clientId);
|
|
if (!(/^(0|[-1-9]\d*)(\.\d*)?$/.test(dateVal) && client && client.MarginOptionType == 1 || /^(0|[1-9]\d*)(\.\d*)?$/.test(dateVal))) {
|
|
$(this).val("");
|
|
return;
|
|
}
|
|
else {
|
|
var clientName = $("#ClientId :selected").text();
|
|
if (!clientName) {
|
|
main.alert("请先选择需要修改预付金占用的客户");
|
|
return;
|
|
}
|
|
|
|
main.confirm("确定修改{0}在{1}的预付金占用吗?".template(clientName, $("#ValueDate").val()),
|
|
function () {
|
|
var pData = {
|
|
ClientId: $("#ClientId").val(),
|
|
ValueDate: $("#ValueDate").val(),
|
|
HoldingDeposit: dateVal
|
|
};
|
|
main.post("/client_span/UpdateWorstCastClientPayable", pData).done(function (res) {
|
|
if (res.success) {
|
|
$("#WorstCastClientPayable").text(dateVal);
|
|
$("#WorstCastClientPayable").css("border-color", "red");
|
|
$("#unlock").show();
|
|
WorstCastClientPayableTrigger(dateVal);
|
|
}
|
|
});
|
|
}, function () {
|
|
$("#WorstCastClientPayable").val(oldData);
|
|
WorstCastClientPayableTrigger(oldData);
|
|
});
|
|
}
|
|
});
|
|
|
|
|
|
$("#FundThreshold").blur(function () {
|
|
var oldData = $("#FundThreshold").text();
|
|
var dateVal = $(this).val();
|
|
if (!/^(0|[1-9]\d*)(\.\d*)?$/.test(dateVal)) {
|
|
$(this).val("");
|
|
return;
|
|
}
|
|
else {
|
|
ClientId = $("#ClientId").val()
|
|
var clientName = $("#ClientId :selected").text();
|
|
if (ClientId == '' || ClientId === 'null') {
|
|
main.alert("请先选择需要填写阈值的客户!");
|
|
return;
|
|
}
|
|
|
|
main.confirm("确定修改{0}阈值吗?".template(clientName),
|
|
function () {
|
|
var pData = {
|
|
Id: $("#ClientId").val(),
|
|
FundThreshold: dateVal
|
|
};
|
|
main.post("/Client/UpdateClientFundThresholdJson", pData).done(function (res) {
|
|
if (res.success) {
|
|
$("#FundThreshold").text(dateVal);
|
|
$("#FundThreshold").css("border-color", "red");
|
|
}
|
|
});
|
|
}, function () {
|
|
$("#FundThreshold").val(oldData);
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
function showTradeNumber(cellValue, options, rowObject) {
|
|
if (cellValue === "合计:") {
|
|
return cellValue;
|
|
}
|
|
|
|
var url = "/trade/tradeFileManagement?tradeNumber=" + cellValue;
|
|
var showNumber = "<a href=\"javascript:void(0)\" title=\"查看客户文件\" onclick='main.open(\"客户文件\",\"{1}\")'>{0}</a>".template(cellValue, url);
|
|
return showNumber;
|
|
}
|
|
|
|
function showExerciseMode(cellValue, options, rowObject) {
|
|
if ("American" === rowObject.ExerciseMode || "American" === rowObject.trade.ExerciseMode) {
|
|
return "美式";
|
|
} else if ("European" === rowObject.ExerciseMode || "European" === rowObject.trade.ExerciseMode) {
|
|
return "欧式";
|
|
}
|
|
}
|
|
|
|
function percentFormat(cellValue, options, rowObject) {
|
|
return cellValue ? (cellValue * 100).toFixed(2) + "%" : "0.00%";
|
|
}
|
|
|
|
function doubleFormat(cellValue, options, rowObject) {
|
|
return cellValue ? cellValue.toFixed(2) : "0.00";
|
|
}
|
|
|
|
function unwindNotionalFormat(cellValue, options, rowObject) {
|
|
return rowObject.trade_cash.Action === "系统操作-行权费" ? rowObject.trade_cash.Notional || 0 : rowObject.trade_cash.UnwindNotional;
|
|
}
|
|
|
|
function tradeStatusFormat(cellValue, options, rowObject) {
|
|
return rowObject.trade_cash.Action === "系统操作-行权费" ? rowObject.trade.TradeStatus : "已平仓";
|
|
}
|
|
|
|
function strikeFormat(cellValue, options, rowObject) {
|
|
return rowObject.trade.IsMoneynessOptionData ? numeral(rowObject.trade.InitialSpotPrice * (rowObject.trade.Strike || 0)).format("0,0.00") : numeral(rowObject.trade.Strike || 0).format("0,0.0");
|
|
}
|
|
|
|
//实现盈亏包含 了结数量的权利金,需要将其计算进去
|
|
function amountFormat(cellValue, options, rowObject) {
|
|
return numeral(rowObject.trade_cash.Action === "系统操作-行权费" ? -rowObject.trade_cash.Amount
|
|
+ rowObject.trade.TradePrice * rowObject.trade_cash.UnwindPercentRate * (rowObject.trade.BuySell === "卖出" ? -1 : 1) : -rowObject.trade_cash.Amount
|
|
+ rowObject.trade.TradePrice * rowObject.trade_cash.UnwindPercentRate * (rowObject.trade.BuySell === "卖出" ? -1 : 1)).format("0,0.00");
|
|
}
|
|
|
|
function rowclick(id) {
|
|
}
|
|
|
|
function reloadTradeMarketReport() {
|
|
//重新加载
|
|
SearchClick(true);
|
|
}
|
|
|
|
function SearchClick(isSearchclick) {
|
|
SearchClientBalance();
|
|
}
|
|
|
|
function SearchClientBalance() {
|
|
var param = {};
|
|
//param.JmsID = g_gmsid;
|
|
param.ClientId = $("#ClientId").val();
|
|
param.ValueDate = $("#ValueDate").val(); //相当于ValueDateEnd
|
|
param.ValueDateStart = $("#ValueDateFrom").val();
|
|
param.ValueDateEnd = param.ValueDate;
|
|
param.IsClientBalanceGap = false;
|
|
param.IsGetOuterMarginGap = false;
|
|
if ($("#ParentFlag").prop("checked"))
|
|
param.ParentFlag = true;
|
|
else
|
|
param.ParentFlag = false;
|
|
|
|
$("#WorstCastClientPayable").prop("disabled", "true");
|
|
$("#PayableFund").prop("disabled", "true");
|
|
if (!param.ValueDateStart) {
|
|
// param.ValueDateStart = param.ValueDate;
|
|
}
|
|
if (!param.ClientId || param.ClientId === 'null') {
|
|
main.message("请选择要查看报告的客户名称!");
|
|
return;
|
|
}
|
|
if (!param.ValueDate || param.ValueDate === 'null') {
|
|
main.message("请选择要查看报告的结束日期!");
|
|
return;
|
|
}
|
|
if ($("#ValueDate").val() > page.ValueDate) {
|
|
main.message("结束日期不能大于当前系统日期!");
|
|
return;
|
|
}
|
|
if ($("#ValueDate").val() < $("#ValueDateFrom").val()) {
|
|
main.message("起始日期不能大于结束日期!");
|
|
return;
|
|
}
|
|
if (isXiangYu) {
|
|
if ($("#ValueDate").val() < page.ValueDate) {
|
|
$("#FundThreshold").prop("disabled", "true");
|
|
} else {
|
|
$("#FundThreshold").prop("disabled", "");
|
|
}
|
|
}
|
|
|
|
main.post("/trade_span/GetClientLatestBalance", { clientId: $("#ClientId").val(), ValueDateFrom: param.ValueDateStart, ValueDateTo: param.ValueDateEnd, IsClientBalanceGap: param.IsClientBalanceGap, IsGetOuterMarginGap: param.IsGetOuterMarginGap, ParentFlag: param.ParentFlag }).done(function (data) {
|
|
$("#LastDayRemainFund").text(numFormart(data.LastDayRemainFund));
|
|
$("#MySideMargin").text(numFormart(data.MySideMargin));
|
|
$("#WinLoss").text(numFormart(data.WinLoss));
|
|
$("#CashInCashOutChange").text(numFormart(data.NetFundAll));
|
|
$("#PositionPnl").text(numFormart(isPvRounded ? data.RoundedPositionPnl : data.PositionPnl));
|
|
$("#MaintenanceMargin").text(numFormart(data.MaintenanceMargin));
|
|
$("#NetFundAll").text(numFormart(data.NetFund));
|
|
$("#SwapMarketAmount").text(numFormart(data.SwapMarketAmount));
|
|
$("#VmFundSum").text(numFormart(data.VmFundSum));
|
|
$("#AvailableFund").text(numFormart(data.AvailableAmount));
|
|
$("#OtherFund").text(numFormart(data.OtherFund));
|
|
$("#MarginByPayableMargin").text(numFormart(data.MarginByPayableMarginTotal));
|
|
$("#ToDayRemainFund").text(numFormart(data.AmountFund));
|
|
$("#DesirableFund").text(numFormart(data.DesirableFundTotal));
|
|
});
|
|
|
|
var data = { clientId: $("#ClientId").val(), ValueDateFrom: $("#ValueDateFrom").val(), ValueDateTo: $("#ValueDate").val() };
|
|
main.post("/trade_span/GetPositionAndHistoryTotalNumber", data, { waitMe: false }).done(function (data) {
|
|
$("#positionTab").attr("title", data.PostionListNumber);
|
|
$("#historyTab").attr("title", data.HistoryListNumber);
|
|
$("#positionSwapTab").attr("title", data.PositionSwapListNumber);
|
|
$("#historySwapTab").attr("title", data.HistorySwapListNumber);
|
|
});
|
|
}
|
|
function numFormart(num) {
|
|
num = num || 0;
|
|
var result = numeral(num).format("0,0.00") === "NaN" ? "0.00" : numeral(num).format("0,0.00");
|
|
if (result === "-0.00") {
|
|
result = "0.00";
|
|
}
|
|
return result;
|
|
}
|
|
|
|
function PopDesc() {
|
|
main.open("配置报告", "/clientbalance/TradeMarketDescSet", { area: ['65%', '75%'] });
|
|
}
|
|
|
|
function SendReport() {
|
|
var param = {};
|
|
var clientName = $("#ClientId :selected").text();
|
|
param.ClientId = $("#ClientId").val();
|
|
param.ValueDate = $("#ValueDate").val();
|
|
if (!param.ClientId || param.ClientId === 'null') {
|
|
main.message("请选择要查看报告的客户名称!");
|
|
return;
|
|
}
|
|
if (!param.ValueDate || param.ValueDate === 'null') {
|
|
main.message("请选择要查看报告的结束日期!");
|
|
return;
|
|
}
|
|
|
|
if ($("#ParentFlag").prop("checked"))
|
|
param.ParentFlag = true;
|
|
else
|
|
param.ParentFlag = false;
|
|
|
|
if ($("#ValueDate").val() > page.ValueDate) {
|
|
main.message("结束日期不能大于当前系统日期!");
|
|
return;
|
|
}
|
|
if ($("#ValueDate").val() < $("#ValueDateFrom").val()) {
|
|
main.message("起始日期不能大于结束日期!");
|
|
return;
|
|
}
|
|
if (isShenWan) {
|
|
main.post("/clientbalance/GenerateTradeMarketBill2", screenData());
|
|
}
|
|
else {
|
|
var payablemargin = numeral($("#WorstCastClientPayable").val()).format("0.00");
|
|
//湘财 追保金额
|
|
if (isXiangCai) {
|
|
payablemargin = numeral($("#Margin").text()).format("0.00");
|
|
}
|
|
main.open("向{0}发送报告".template(clientName), "/clientbalance/TradeMarketClientSend?clientid=" + param.ClientId + "&payablemargin=" + payablemargin + "&payableFund=" + numeral($("#PayableFund").val()).format("0.00") + "&reportType=GetOuterMargin" + "&ParentFlag=" + param.ParentFlag, { area: ['65%', '95%'] });
|
|
}
|
|
}
|
|
|
|
function DownLoadReport() {
|
|
var param = {};
|
|
var clientName = $("#ClientId :selected").text();
|
|
param.ClientId = $("#ClientId").val();
|
|
param.ValueDate = $("#ValueDate").val();
|
|
if (!param.ClientId || param.ClientId === 'null') {
|
|
main.message("请选择要查看报告的客户名称!");
|
|
return;
|
|
}
|
|
if (!param.ValueDate || param.ValueDate === 'null') {
|
|
main.message("请选择要查看报告的结束日期!");
|
|
return;
|
|
}
|
|
|
|
if ($("#ValueDate").val() > page.ValueDate) {
|
|
main.message("结束日期不能大于当前系统日期!");
|
|
return;
|
|
}
|
|
if ($("#ValueDate").val() < $("#ValueDateFrom").val()) {
|
|
main.message("起始日期不能大于结束日期!");
|
|
return;
|
|
}
|
|
|
|
main.post("/clientbalance/ViewTradeMarketFile", screenData()).done(function (res) {
|
|
window.open(res.obj);
|
|
});
|
|
}
|
|
|
|
function screenData() {
|
|
var data = { From: $("#ValueDateFrom").val(), To: $("#ValueDate").val() };
|
|
data.ClientId = $("#ClientId").val();
|
|
if ($("#ParentFlag").prop("checked"))
|
|
data.ParentFlag = true;
|
|
else
|
|
data.ParentFlag = false;
|
|
return data;
|
|
}
|
|
|
|
function locationChange(tab) {
|
|
let val = $("#ClientId").val();
|
|
var ParentFlag = false;
|
|
if (!val || val === 'null') {
|
|
main.message("请选择要查看报告的客户名称!");
|
|
return;
|
|
}
|
|
if ($("#ValueDate").val() > page.ValueDate) {
|
|
main.message("结束日期不能大于当前系统日期!");
|
|
return;
|
|
}
|
|
if ($("#ValueDate").val() < $("#ValueDateFrom").val()) {
|
|
main.message("起始日期不能大于结束日期!");
|
|
return;
|
|
}
|
|
if ($("#ParentFlag").prop("checked"))
|
|
ParentFlag = true;
|
|
else
|
|
ParentFlag = false;
|
|
|
|
window.location.href = tab + "?clientId=" + $("#ClientId").val() + "&startTime=" + $("#ValueDateFrom").val() + "&endTime=" + $("#ValueDate").val() + "&ParentFlag=" + ParentFlag;
|
|
return;
|
|
}
|
|
|
|
function unlockPayableMarginManual() {
|
|
var clientName = $("#ClientId :selected").text();
|
|
if (!clientName) {
|
|
main.alert("请先选择客户信息");
|
|
return;
|
|
}
|
|
main.confirm("确定解锁{0}在{1}的预付金占用吗?".template(clientName, $("#ValueDate").val()),
|
|
function () {
|
|
var pData = {
|
|
ClientId: $("#ClientId").val(),
|
|
ValueDate: $("#ValueDate").val()
|
|
};
|
|
main.post("/client_span/unlockWorstCastClientPayable", pData).done(function (res) {
|
|
$("#unlock").hide();
|
|
});
|
|
});
|
|
}
|
|
|
|
function Upload() {
|
|
$("#modalFileUpload").modal('show');
|
|
$("#Content").width("680px")
|
|
}
|
|
|
|
function uploadOuterData(Ismargin) {
|
|
if (!$("#uploadfile").get(0).value.length) {
|
|
main.alert("请选择要上传的文件!");
|
|
return;
|
|
}
|
|
var fd = new FormData();
|
|
/*上传的文件file*/
|
|
fd.append("file", $("#uploadfile").get(0).files[0]);
|
|
fd.append("IsMargin", Ismargin);
|
|
$.ajax({
|
|
url: "/clientbalance/ImportClientBalanceGap",
|
|
type: "POST",
|
|
processData: false,
|
|
contentType: false,
|
|
data: fd,
|
|
success: function (res) {
|
|
if (!res.success) {
|
|
main.alert(res.msg);
|
|
} else {
|
|
$("#modalFileUpload").modal('hide');
|
|
main.message(res.msg);
|
|
}
|
|
},
|
|
beforeSend(jqXHR) {
|
|
main.waitMe(true);
|
|
},
|
|
complete(jqXHR, textStatus) {
|
|
main.waitMe(false);
|
|
}
|
|
});
|
|
}
|
|
|
|
function downloadOuterDataTemplate() {
|
|
window.open("../App_Docs/导入模板/结算财务账户状况导入模板.xlsx");
|
|
}
|
|
function downloadOuterMarginTemplate() {
|
|
window.open("../App_Docs/导入模板/结算财务外部预付金导入模板.xlsx");
|
|
}
|
|
|
|
function onkeyupMargin(value) {
|
|
var clientId = parseInt($("#ClientId").val());
|
|
var client = clients.find(y => y.id === clientId);
|
|
if (client && client.MarginOptionType == 1) {
|
|
return value.replace(/[^-0-9.]/g, '');
|
|
} else {
|
|
return value.replace(/[^0-9.]/g, '');
|
|
}
|
|
}
|
|
|
|
function onblurMargin(value) {
|
|
var clientId = parseInt($("#ClientId").val());
|
|
var client = clients.find(y => y.id === clientId);
|
|
if (client && client.MarginOptionType == 1) {
|
|
return /^(0|[-1-9]\d*)(\.\d*)?$/.test(dateVal) ? value : '';
|
|
} else {
|
|
return /^(0|[1-9]\d*)(\.\d*)?$/.test(dateVal) ? value : '';
|
|
}
|
|
} |