Files
zszq-trs/YLErpWeb/wwwroot/Scripts/app/client/tradeMarketReport.js
T

516 lines
19 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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));
//R2 阶段三 §3.2 口径(BUG-07 修正,与邮件/Excel 报告 SettlementReportService 同源):
//初始保证金=SwapInitMargin(应付预付金净额+初始预付金授信占用净额)、维持保证金=−MySideMarginclient_span 维持保证金反号聚合)、
//授信额度=OriginalTotalCredit(原始授信值,未经最大可用比例折算;公式计算仍用折算后 TotalCredit
$("#SwapInitMargin").text(numFormart(data.SwapInitMargin));
$("#WinLoss").text(numFormart(data.WinLoss));
$("#CashInCashOutChange").text(numFormart(data.NetFundAll));
$("#PositionPnl").text(numFormart(isPvRounded ? data.RoundedPositionPnl : data.PositionPnl));
$("#MaintenanceMargin").text(numFormart(-data.MySideMargin));
$("#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));
$("#TotalCredit").text(numFormart(data.OriginalTotalCredit));
$("#UsedCredit").text(numFormart(data.UsedCredit));
});
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 : '';
}
}