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 = "{0}".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 : ''; } }