1003 lines
41 KiB
Plaintext
1003 lines
41 KiB
Plaintext
@{
|
|
ViewBag.Title = "结算报告";
|
|
ViewBag.Menu = "结算财务-结算报告";
|
|
|
|
Layout = "~/Views/Shared/_MainLayout.cshtml";
|
|
bool isBroker = YLErp.PS.Config.ComponentVersion == YLErp.Configuration.ComponentVersion.Broker;
|
|
var pageObj = new
|
|
{
|
|
isHongYuan = YLErp.PS.Config.Is宏源,
|
|
IsUseDisplayNotional = PS.Config.IsUseDisplayNotional
|
|
};
|
|
}
|
|
@section CSS{
|
|
<link href="~/Style/Css/TradeMarketReport.css" rel="stylesheet" />
|
|
<style>
|
|
.no-skin { position: static !important; }
|
|
.layui-layer { width: 1080px !important; height: 667px !important; }
|
|
.chosen-container { width: 250px !important; }
|
|
.chosen-container .chosen-drop { width: 250px !important; }
|
|
#ValueDateFrom, #ValueDate { width: 152px !important; font-size: 1rem !important; }
|
|
</style>
|
|
}
|
|
@section JS{
|
|
<script src="~/Scripts/app/tradeHelper.js?v=@HtmlUtil.JsVersion"></script>
|
|
<script type="text/javascript">
|
|
var isBroker = "@isBroker" == "True";
|
|
var isShenWan = "@YLErp.PS.Config.Is申万" == "True";
|
|
var g_volMoreAccurate = "@YLErp.PS.Config.ErpElement.VolMoreAccurate" == "True";
|
|
var isContainMultiplier = "@YLErp.PS.Config.ErpElement.IsSettlementReportAccOptionContainMultiplier" == "True";
|
|
var calcDate = "@valuedateBLL.ValueDate.ToString("yyyy-MM-dd")";
|
|
var g_grid = {};
|
|
var page = @Json.Serialize(pageObj);
|
|
$(function () {
|
|
var PostData = {};
|
|
|
|
//控件选择时的触发事件
|
|
main.setTradeDatePicker("", "#ValueDate", calcDate, function (selectedDate) {
|
|
if (selectedDate != null && selectedDate != undefined) {
|
|
$("#ValueDateFrom").datepicker("option", "maxDate", selectedDate);
|
|
}
|
|
});
|
|
main.setTradeDatePicker("", "#ValueDateFrom", calcDate, function (selectedDate) {
|
|
if (selectedDate != null && selectedDate != undefined) {
|
|
$("#ValueDate").datepicker("option", "minDate", selectedDate);
|
|
}
|
|
});
|
|
//手动修改时的触发事件
|
|
$("#ValueDate").change(function () {
|
|
$("#ValueDateFrom").datepicker("option", "maxDate", $("#ValueDate").val());
|
|
});
|
|
$("#ValueDateFrom").change(function () {
|
|
$("#ValueDate").datepicker("option", "minDate", $("#ValueDateFrom").val());
|
|
});
|
|
|
|
//默认初始值赋值逻辑
|
|
if ("@ViewBag.EndTime" == "" || "@ViewBag.EndTime" == "undefined") {
|
|
$("#ValueDate").val(calcDate);
|
|
} else {
|
|
$("#ValueDate").val("@ViewBag.EndTime");
|
|
}
|
|
if (("@ViewBag.StartTime" == "" || "@ViewBag.StartTime" == "undefined") && ("@ViewBag.EndTime" == "" || "@ViewBag.EndTime" == "undefined")) {
|
|
} else {
|
|
$("#ValueDateFrom").val("@ViewBag.StartTime");
|
|
}
|
|
if ("@ViewBag.ParentFlag" == "True")
|
|
$("#ParentFlag").attr("checked", true);
|
|
else
|
|
$("#ParentFlag").attr("checked", false);
|
|
|
|
PostData.ValueDateStart = $("#ValueDateFrom").val();
|
|
PostData.ValueDateEnd = $("#ValueDate").val();
|
|
PostData.ClientId = $("#ClientId").val();
|
|
PostData.IsHistoryWithUnconfirmed = false;
|
|
if ($("#ParentFlag").prop("checked"))
|
|
PostData.ParentFlag = true;
|
|
else
|
|
PostData.ParentFlag = false;
|
|
var grid = jQuery('#listGrid').jqGrid({
|
|
url: '/clientbalance/tradeHistoryQuery',
|
|
datatype: 'json',
|
|
height: 'auto',
|
|
width: '96%',
|
|
autowidth: false,
|
|
shrinkToFit: false,
|
|
viewrecords: true,
|
|
jsonReader: { repeatitems: false },
|
|
caption: '',
|
|
mtype: 'POST',
|
|
postData: PostData,
|
|
afterInsertRow: AfterInsertRow,
|
|
onSelectRow: rowclick,
|
|
ondblClickRow: rowdblclick,
|
|
colModel: colModelGrid,
|
|
pager: jQuery('#pagerGrid'),
|
|
pagerpos: 'left',
|
|
rowNum: 20,
|
|
rowList: [20, 30, 50, 200, 10000],
|
|
footerrow: true,
|
|
loadComplete: gridComplete,
|
|
onPaging: onJqgridPaging,
|
|
grouping: true,
|
|
sortname: !page.isHongYuan ? '' : 'UserGroup'
|
|
});
|
|
g_grid = jQuery('#listGrid');
|
|
|
|
main.post("/trade_span/GetPositionAndHistoryTotalNumber", { clientId: $("#ClientId").val(), ValueDateFrom: $("#ValueDateFrom").val(), ValueDateTo: $("#ValueDate").val() }).done(function (data) {
|
|
$("#positionTab").attr("title", data.PostionListNumber);
|
|
$("#historyTab").attr("title", data.HistoryListNumber);
|
|
$("#positionSwapTab").attr("title", data.PositionSwapListNumber);
|
|
$("#historySwapTab").attr("title", data.HistorySwapListNumber);
|
|
});
|
|
|
|
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 showTradeNumber(cellValue, options, rowObject) {
|
|
if (cellValue == "合计:") {
|
|
return cellValue;
|
|
}
|
|
//console.log(cellValue+";");
|
|
//var url = "/trade/tradeContractManagement?tradeNumber=" + cellValue;
|
|
//var showNumber = "<a href=\"javascript:void(0)\" title=\"查看客户文件\" onclick='main.open(\"【{1}】文件管理\",\"{0}\")'>{1}</a>".template(url,cellValue);
|
|
|
|
return cellValue == undefined || cellValue == "undefined" || cellValue == null ? "--" : cellValue;
|
|
}
|
|
|
|
var i = 0;
|
|
var colModelGrid = [
|
|
{ name: 'trade.EncryptId', hidden: true, optionHide: true },
|
|
{
|
|
name: 'UserGroupStr',
|
|
label: '所属团队',
|
|
index: 'UserGroup',
|
|
width: 100,
|
|
align: 'center',
|
|
sortIndex: i++,
|
|
hidden: !page.isHongYuan,
|
|
optionHide: !page.isHongYuan
|
|
},
|
|
{
|
|
name: 'trade.TradeNumber',
|
|
label: '交易编号',
|
|
index: 'trade.TradeNumber',
|
|
width: 150,
|
|
sortIndex: i++,
|
|
align: 'center', formatter: showTradeNumber
|
|
}, {
|
|
name: 'BuySell',
|
|
label: '交易方向',
|
|
index: 'BuySell',
|
|
width: 90,
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
align: 'center'
|
|
}, {
|
|
name: 'trade.TradeDate',
|
|
label: '交易日期',
|
|
index: 'trade.TradeDate',
|
|
width: 90,
|
|
align: 'center',
|
|
sortable: true,
|
|
sortIndex: i++,
|
|
formatter: 'date'
|
|
}, {
|
|
name: 'trade.ExerciseDate',
|
|
label: '到期日期',
|
|
index: 'trade.ExerciseDate',
|
|
width: 100,
|
|
align: 'center',
|
|
sortable: true,
|
|
sortIndex: i++,
|
|
formatter: 'date'
|
|
}, {
|
|
name: 'TradeMultipleType',
|
|
label: '结构类型',
|
|
index: 'TradeMultipleType',
|
|
width: 100,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++
|
|
}, {
|
|
name: 'trade.UnderlyingCode',
|
|
label: '标的代码',
|
|
index: 'trade.UnderlyingCode',
|
|
width: 80,
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
align: 'center',
|
|
formatter: ShowStructFormater
|
|
}, {
|
|
name: 'trade.UnderlyingAssetName',
|
|
label: '标的名称',
|
|
index: 'trade.UnderlyingAssetName',
|
|
width: 80,
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
align: 'center'
|
|
}, {
|
|
name: 'trade.InitialSpotPrice',
|
|
label: '期初标的价格',
|
|
index: 'trade.InitialSpotPrice',
|
|
width: 100,
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
align: 'center',
|
|
formatter: otcformat.trading.umprice
|
|
}, {
|
|
name: 'trade.Strike',
|
|
label: '执行价格',
|
|
index: 'trade.Strike',
|
|
width: 100,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: strikeFormat
|
|
}, {
|
|
name: 'trade.TradeOpenVolatility',
|
|
label: '成交波动率',
|
|
index: 'trade.TradeOpenVolatility',
|
|
width: 100,
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
align: 'center',
|
|
formatter: volPercentFormat
|
|
}, {
|
|
name: 'trade.TradeSinglePrice',
|
|
label: '权利金',
|
|
index: 'trade.TradeSinglePrice',
|
|
width: 100,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: TradeSinglePriceFormat
|
|
}, {
|
|
name: 'TradeOriginalAmountV',
|
|
label: '交易数量',
|
|
width: 70,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: function (cellvalue, options, rowObject) {
|
|
return otcformat.trading.notional(page.IsUseDisplayNotional ? tradeHelper.getTradeAmountV(rowObject.trade) * (rowObject.CountRatio || 1) : tradeHelper.getTradeAmountV(rowObject.trade, rowObject.trade.OriginalNotional, (rowObject.CountRatio || 1)));
|
|
}
|
|
}, {
|
|
name: 'trade.TradeOriginalAmount',
|
|
label: '有效交易数量',
|
|
index: 'trade.TradeOriginalAmount',
|
|
width: 100,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: TradeAmountFormat
|
|
}, {
|
|
name: 'TradePrice',
|
|
label: '交易总额',
|
|
index: 'TradePrice',
|
|
width: 120,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: otcformat.trading.tradePrice,
|
|
summaryType: 'sum'
|
|
}, {
|
|
name: 'trade.OriginalStockEqvNotional',
|
|
label: '名义本金',
|
|
index: 'trade.OriginalStockEqvNotional',
|
|
width: 120,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: otcformat.trading.StockEqvNotional,
|
|
summaryType: 'sum'
|
|
}, {
|
|
name: 'trade.TradeStatus',
|
|
label: '交易状态',
|
|
index: 'trade.TradeStatus',
|
|
width: 80,
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
align: 'center',
|
|
formatter: tradeStatusFormat
|
|
}, {
|
|
name: 'trade_cash.ValueDateString',
|
|
label: '了结日期',
|
|
index: 'trade_cash.ValueDateString',
|
|
width: 100,
|
|
align: 'center',
|
|
sortIndex: i++
|
|
}, {
|
|
name: 'trade_cash.FinalPrice',
|
|
label: '终止/到期标的价格',
|
|
index: 'trade_cash.FinalPrice',
|
|
width: 120,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: otcformat.trading.umprice
|
|
}, {
|
|
name: 'UnwindVol',
|
|
label: '平仓波动率',
|
|
index: 'UnwindVol',
|
|
width: 100,
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
align: 'center',
|
|
formatter: unwindVolFormat
|
|
}, {
|
|
name: 'trade_cash.UnwindPrice',
|
|
label: '期权平仓价格/行权收益',
|
|
index: 'trade_cash.UnwindPrice',
|
|
width: 150,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: unwindPriceFormat
|
|
}, {
|
|
name: 'trade_cash.UnwindTradeAmountV',
|
|
label: '了结数量',
|
|
width: 70,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: function (cellvalue, options, rowObject) {
|
|
var tradeAmountVal = page.IsUseDisplayNotional ? tradeHelper.getTradeAmountV(rowObject.trade, rowObject.trade_cash.UnwindTradeAmount, 1) * (rowObject.CountRatio || 1) : tradeHelper.getTradeAmountV(rowObject.trade, rowObject.trade_cash.UnwindTradeAmount, (rowObject.CountRatio || 1))
|
|
return showAccOptionContainMultiplier(tradeAmountVal, rowObject);
|
|
}
|
|
}, {
|
|
name: 'trade_cash.UnwindTradeAmount',
|
|
label: '了结有效数量',
|
|
index: 'trade_cash.UnwindTradeAmount',
|
|
width: 100,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: unwindTradeAmountFormat
|
|
}, {
|
|
name: 'trade_cash.MinusAmount',
|
|
label: '了结总额',
|
|
index: 'trade_cash.MinusAmount',
|
|
width: 120,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: otcformat.trading.tradePrice,
|
|
summaryType: 'sum'
|
|
}, {
|
|
name: 'WinLoss',
|
|
label: '实现盈亏',
|
|
index: 'WinLoss',
|
|
width: 120,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: otcformat.trading.tradePrice,
|
|
summaryType: 'sum'
|
|
}
|
|
];
|
|
|
|
if (isBroker) {
|
|
i = 0;
|
|
colModelGrid = [
|
|
{
|
|
name: 'trade.EncryptId',
|
|
label: 'trade.EncryptId',
|
|
index: 'trade.EncryptId',
|
|
sortIndex: i++,
|
|
width: 70,
|
|
align: 'center',
|
|
hidden: true,
|
|
optionHide: true
|
|
}, {
|
|
name: 'UserGroupStr',
|
|
label: '所属团队',
|
|
index: 'UserGroup',
|
|
width: 100,
|
|
align: 'center',
|
|
sortIndex: i++,
|
|
hidden: !page.isHongYuan,
|
|
optionHide: !page.isHongYuan
|
|
}, {
|
|
name: 'ClientName',
|
|
label: '客户名称',
|
|
index: 'ClientName',
|
|
width: 180,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++
|
|
}, {
|
|
name: 'trade.TradeNumber',
|
|
label: '交易编号',
|
|
index: 'trade.TradeNumber',
|
|
width: 150,
|
|
sortIndex: i++,
|
|
align: 'center', formatter: showTradeNumber
|
|
}, {
|
|
name: 'BuySell',
|
|
label: '交易方向',
|
|
index: 'BuySell',
|
|
width: 90,
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
align: 'center'
|
|
}, {
|
|
name: 'trade.TradeDate',
|
|
label: '交易日期',
|
|
index: 'trade.TradeDate',
|
|
width: 90,
|
|
align: 'center',
|
|
sortIndex: i++,
|
|
formatter: 'date'
|
|
}, {
|
|
name: 'trade.ExerciseDate',
|
|
label: '到期日期',
|
|
index: 'trade.ExerciseDate',
|
|
width: 100,
|
|
align: 'center',
|
|
sortIndex: i++,
|
|
formatter: 'date'
|
|
}, {
|
|
name: 'TradeMultipleType',
|
|
label: '期权类型',
|
|
index: 'TradeMultipleType',
|
|
width: 100,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++
|
|
}, {
|
|
name: 'trade.UnderlyingCode',
|
|
label: '标的代码',
|
|
index: 'trade.UnderlyingCode',
|
|
width: 80,
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
align: 'center',
|
|
formatter: ShowStructFormater
|
|
}, {
|
|
name: 'trade.UnderlyingAssetName',
|
|
label: '标的名称',
|
|
index: 'trade.UnderlyingAssetName',
|
|
width: 80,
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
align: 'center'
|
|
}, {
|
|
name: 'trade.InitialSpotPrice',
|
|
label: '期初标的价格',
|
|
index: 'trade.InitialSpotPrice',
|
|
width: 100,
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
align: 'center',
|
|
formatter: otcformat.trading.umprice
|
|
}, {
|
|
name: 'trade.Strike',
|
|
label: '执行价格',
|
|
index: 'trade.Strike',
|
|
width: 100,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: strikeFormat
|
|
}, {
|
|
name: 'trade.TradeOpenVolatility',
|
|
label: '成交波动率',
|
|
index: 'trade.TradeOpenVolatility',
|
|
width: 100,
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
align: 'center',
|
|
formatter: volPercentFormat
|
|
}, {
|
|
name: 'trade.TradeSinglePrice',
|
|
label: '权利金',
|
|
index: 'trade.TradeSinglePrice',
|
|
width: 100,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: TradeSinglePriceFormat
|
|
}, {
|
|
name: 'TradeOriginalAmount',
|
|
label: '交易数量',
|
|
index: 'TradeOriginalAmount',
|
|
width: 100,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: otcformat.trading.notional
|
|
}, {
|
|
name: 'TradePrice',
|
|
label: '交易总额',
|
|
index: 'TradePrice',
|
|
width: 120,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: otcformat.trading.tradePrice,
|
|
summaryType: 'sum'
|
|
}, {
|
|
name: 'trade.OriginalStockEqvNotional',
|
|
label: '名义本金',
|
|
index: 'trade.OriginalStockEqvNotional',
|
|
width: 120,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: otcformat.trading.StockEqvNotional,
|
|
summaryType: 'sum'
|
|
}, {
|
|
name: 'trade.TradeStatus',
|
|
label: '交易状态',
|
|
index: 'trade.TradeStatus',
|
|
width: 80,
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
align: 'center',
|
|
formatter: tradeStatusFormat
|
|
}, {
|
|
name: 'trade_cash.ValueDate',
|
|
label: '了结日期',
|
|
index: 'trade_cash.ValueDate',
|
|
width: 100,
|
|
align: 'center',
|
|
sortIndex: i++,
|
|
formatter: 'date'
|
|
}, {
|
|
name: 'trade_cash.FinalPrice',
|
|
label: '终止/到期标的价格',
|
|
index: 'trade_cash.FinalPrice',
|
|
width: 120,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: otcformat.trading.umprice
|
|
}, {
|
|
name: 'UnwindVol',
|
|
label: '平仓波动率',
|
|
index: 'UnwindVol',
|
|
width: 100,
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
align: 'center',
|
|
formatter: unwindVolFormat
|
|
}, {
|
|
name: 'trade_cash.UnwindPrice',
|
|
label: '期权平仓价格/行权收益',
|
|
index: 'trade_cash.UnwindPrice',
|
|
width: 150,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: unwindPriceFormat
|
|
}, {
|
|
name: 'trade_cash.UnwindTradeAmount',
|
|
label: '了结数量',
|
|
index: 'trade_cash.UnwindTradeAmount',
|
|
width: 100,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: unwindTradeAmountFormat
|
|
}, {
|
|
name: 'trade_cash.MinusAmount',
|
|
label: '了结总额',
|
|
index: 'trade_cash.MinusAmount',
|
|
width: 120,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: otcformat.trading.tradePrice,
|
|
summaryType: 'sum'
|
|
}, {
|
|
name: 'WinLoss',
|
|
label: '实现盈亏',
|
|
index: 'WinLoss',
|
|
width: 120,
|
|
align: 'center',
|
|
sortable: false,
|
|
sortIndex: i++,
|
|
formatter: function (cellValue, options, rowObject) {
|
|
return cellValue == null || cellValue == undefined || cellValue == "" ? "0.000" : numeral(cellValue).format("0.000");
|
|
},
|
|
summaryType: 'sum'
|
|
}
|
|
];
|
|
}
|
|
|
|
function gridComplete() {
|
|
var jgrid = $(this);
|
|
var rowNum = parseInt(jgrid.getGridParam('records'), 10);
|
|
if (rowNum > 0) {
|
|
$(".ui-jqgrid-sdiv").show();
|
|
var totalTradePrice = arguments[0].Sum == null ? "" : arguments[0].Sum.TradePriceSum;
|
|
var totalStockEqvNotional = arguments[0].Sum == null ? "" : arguments[0].Sum.StockEqvNotionalSum;
|
|
var totalMinusAmount = arguments[0].Sum == null ? "" : arguments[0].Sum.MinusAmountSum;
|
|
var totalWinLoss = arguments[0].Sum == null ? "" : arguments[0].Sum.WinLossSum;
|
|
|
|
jgrid.footerData("set", { TradePrice: totalTradePrice, 'trade.OriginalStockEqvNotional': totalStockEqvNotional, 'trade_cash.MinusAmount': totalMinusAmount, WinLoss: totalWinLoss });
|
|
$(".ui-jqgrid-sortable").css("text-align", "center");
|
|
|
|
var newHeight = $(window).height() - 370;
|
|
$(".ui-jqgrid .ui-jqgrid-bdiv").css("cssText", "height: " + newHeight + "px!important;");
|
|
$('.ui-jqgrid-bdiv', '#gbox_listGrid').floatingScroll();
|
|
} else {
|
|
$(".ui-jqgrid-sdiv").hide();
|
|
}
|
|
main.setcolumnChooser(jgrid, "@configcolumn_data.历史交易");
|
|
$(".selftooltip").tooltip({ html: true, show: 50000, trigger: "hover" });
|
|
}
|
|
|
|
function rowdblclick(rowid) {
|
|
var rowData = $(this).getRowData(rowid);
|
|
if (rowData["trade.EncryptId"] != undefined) {
|
|
starttradeView(rowData["TradeMultipleType"], rowData["trade.EncryptId"]);
|
|
}
|
|
}
|
|
|
|
function starttradeView(tradetype, id) {
|
|
if (tradetype.indexOf("远期") >= 0) {
|
|
var srcurl = "/forwardtrade/tradeView/?enid=" + id + "&isFromPositionReport=true";
|
|
main.open("查看远期交易", srcurl, { area: ['1260px', '800px'] });
|
|
}
|
|
else {
|
|
var srcurl = "/trade/tradeView/?enid=" + id + "&isFromPositionReport=true";
|
|
main.open("查看交易", srcurl, { area: ['1260px', '800px'] });
|
|
}
|
|
}
|
|
|
|
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 ShowStructFormater(cellValue, options, rowObject) {
|
|
var html;
|
|
if (rowObject.trade.TradeType == "合成价差期权") {
|
|
html =
|
|
"<a href=\"#\" class=\"selftooltip\" style=\"z-index:10000000\" data-toggle=\"tooltip\" title=\"{1}\">{0}</a>"
|
|
.template(cellValue, rowObject.trade.SyntheticUnderlyingTipsInfo);
|
|
return html;
|
|
}
|
|
return cellValue;
|
|
}
|
|
|
|
function volPercentFormat(cellValue, options, rowObject) {
|
|
if (rowObject.trade.TradeType == "自定义交易") {
|
|
return "";
|
|
}
|
|
if (g_volMoreAccurate) {
|
|
return cellValue == null || cellValue == undefined ? "0.0000%" : numeral(cellValue).format("0.0000%") == "NaN" ? "0.0000%" : numeral(cellValue).format("0.0000%");
|
|
}
|
|
else {
|
|
return cellValue == null || cellValue == undefined ? "0.00%" : numeral(cellValue).format("0.00%") == "NaN" ? "0.00%" : numeral(cellValue).format("0.00%");
|
|
}
|
|
}
|
|
|
|
function unwindTradeAmountFormat(cellValue, options, rowObject) {
|
|
if (rowObject.trade.TradeType == "现金流交易") {
|
|
return "";
|
|
}
|
|
var amount = rowObject.trade_cash.IsLastAction ? (rowObject.trade_cash.TradeAmount == null || rowObject.trade_cash.TradeAmount == undefined ? 0 : rowObject.trade_cash.TradeAmount) : (rowObject.trade_cash.UnwindTradeAmount == null || rowObject.trade_cash.UnwindTradeAmount == undefined ? 0 : rowObject.trade_cash.UnwindTradeAmount);
|
|
var unwindTradeAmountVal = page.IsUseDisplayNotional ? amount * (rowObject.CountRatio || 1) : amount;
|
|
return showAccOptionContainMultiplier(unwindTradeAmountVal, rowObject);
|
|
}
|
|
|
|
function tradeStatusFormat(cellValue, options, rowObject) {
|
|
return tradeHelper.GetTradeStatus(rowObject.trade, rowObject.trade_cash);
|
|
}
|
|
|
|
function strikeFormat(cellValue, options, rowObject) {
|
|
if (rowObject.trade.TradeType == "自定义交易") {
|
|
return rowObject.trade.StrikeToShow;
|
|
}
|
|
else if (rowObject.trade.TradeType === "收益互换") {
|
|
return "--";
|
|
}
|
|
|
|
if (rowObject.trade.Strike) {
|
|
if (rowObject.trade.IsMoneynessOption === "是") {
|
|
return otcformat.trading.umprice(rowObject.trade.InitialSpotPrice * rowObject.trade.Strike);
|
|
} else {
|
|
return otcformat.trading.umprice(rowObject.trade.Strike);
|
|
}
|
|
} else {
|
|
if (rowObject.trade.Strike === 0) {
|
|
return otcformat.trading.umprice(0);
|
|
}
|
|
else {
|
|
return "";
|
|
}
|
|
}
|
|
}
|
|
function showAccOptionContainMultiplier(value, rowObject) {
|
|
if (isContainMultiplier && rowObject.trade.TradeType == "累计期权" && rowObject.ACCMultiplier !== 0) {
|
|
return otcformat.trading.notional(value * rowObject.ACCMultiplier);
|
|
} else {
|
|
return otcformat.trading.notional(value);
|
|
}
|
|
}
|
|
function unwindPriceFormat(cellValue, options, rowObject) {
|
|
if (isContainMultiplier && rowObject.trade.TradeType == "累计期权" && rowObject.ACCMultiplier !== 0) {
|
|
var tradeAmountV = page.IsUseDisplayNotional ? tradeHelper.getTradeAmountV(rowObject.trade, rowObject.trade_cash.UnwindTradeAmount, 1) * (rowObject.CountRatio || 1) : tradeHelper.getTradeAmountV(rowObject.trade, rowObject.trade_cash.UnwindTradeAmount, (rowObject.CountRatio || 1))
|
|
return otcformat.trading.tradeSinglePrice(rowObject.trade_cash.MinusAmount / (tradeAmountV * rowObject.ACCMultiplier));
|
|
} else {
|
|
if (rowObject.trade.IsUsePremiumRate) {
|
|
return rowObject.trade_cash.Action == "系统操作-行权费" ?
|
|
otcformat.trading.tradeSinglePrice(rowObject.trade_cash.UnwindPrice)
|
|
: otcformat.trading.premiumRateP(rowObject.trade_cash.UnwindPricePercentRate);
|
|
}
|
|
else {
|
|
return otcformat.trading.tradeSinglePrice(rowObject.trade_cash.UnwindPrice);
|
|
}
|
|
}
|
|
}
|
|
|
|
function TradeSinglePriceFormat(cellValue, options, rowObject) {
|
|
if (rowObject.trade.IsUsePremiumRate) {
|
|
return otcformat.trading.premiumRateP(rowObject.trade.PremiumRate);
|
|
}
|
|
else {
|
|
return otcformat.trading.tradeSinglePrice(cellValue);
|
|
}
|
|
}
|
|
|
|
function unwindVolFormat(cellValue, options, rowObject) {
|
|
if (rowObject.trade.TradeType == "远期") {
|
|
return "N/A";
|
|
}
|
|
|
|
if (rowObject.trade_cash.Action == "系统操作-行权费") {
|
|
return "----";
|
|
}
|
|
return cellValue == null || cellValue == undefined ? "0.00%" : numeral(cellValue).format("0.00%") == "NaN" ? "0.00%" : numeral(cellValue).format("0.00%");
|
|
}
|
|
|
|
function TradeAmountFormat(cellValue, options, rowObject) {
|
|
if (rowObject.trade.TradeType == "现金流交易") {
|
|
return "";
|
|
}
|
|
else {
|
|
return otcformat.trading.notional(page.IsUseDisplayNotional ? cellValue * (rowObject.CountRatio || 1) : cellValue);
|
|
}
|
|
}
|
|
|
|
function rowclick(id) {
|
|
}
|
|
|
|
function reloadTradeMarketReport() {
|
|
//重新加载
|
|
SearchClick(true);
|
|
}
|
|
|
|
function SearchTable(isSearchclick) {
|
|
//搜索历史交易
|
|
searchTradeHistory(isSearchclick);
|
|
}
|
|
|
|
//搜索历史交易
|
|
function searchTradeHistory(isSearchclick) {
|
|
var listGrid = $('#listGrid');
|
|
listGrid.appendPostData({ ClientId: $("#ClientId").val() });
|
|
listGrid.appendPostData({ ValueDateStart: $("#ValueDateFrom").val() });
|
|
listGrid.appendPostData({ ValueDateEnd: $("#ValueDate").val() });
|
|
if ($("#ParentFlag").prop("checked"))
|
|
listGrid.appendPostData({ ParentFlag: true });
|
|
else
|
|
listGrid.appendPostData({ ParentFlag: false });
|
|
|
|
if ($("#ValueDate").val() == "" ||
|
|
$("#ValueDate").val() == undefined ||
|
|
$("#ValueDate").val() == null) {
|
|
main.message("请选择要查看报告的结束日期!");
|
|
return;
|
|
}
|
|
|
|
if ($("#ValueDate").val() > "@valuedateBLL.ValueDate.ToString("yyyy-MM-dd")") {
|
|
main.message("结束日期不能大于当前系统日期!");
|
|
return;
|
|
}
|
|
if ($("#ValueDate").val() < $("#ValueDateFrom").val()) {
|
|
main.message("起始日期不能大于结束日期!");
|
|
return;
|
|
}
|
|
|
|
if (typeof (isSearchclick) != "undefined" && isSearchclick) {
|
|
//点击搜索时默认第一页
|
|
listGrid.jqGrid('setGridParam',
|
|
{
|
|
page: 1
|
|
});
|
|
}
|
|
listGrid.trigger('reloadGrid');
|
|
|
|
main.post("/trade_span/GetPositionAndHistoryTotalNumber", { clientId: $("#ClientId").val(), ValueDateFrom: $("#ValueDateFrom").val(), ValueDateTo: $("#ValueDate").val() }).done(function (data) {
|
|
$("#positionTab").attr("title", data.PostionListNumber);
|
|
$("#historyTab").attr("title", data.HistoryListNumber);
|
|
$("#positionSwapTab").attr("title", data.PositionSwapListNumber);
|
|
$("#historySwapTab").attr("title", data.HistorySwapListNumber);
|
|
});
|
|
}
|
|
|
|
function SearchClick(isSearchclick) {
|
|
SearchTable(isSearchclick);
|
|
}
|
|
function numFormart(num) {
|
|
if (num == undefined || num == null) {
|
|
num = "0.00"
|
|
}
|
|
return numeral(num).format("0,0.00");
|
|
}
|
|
|
|
function PopDesc() {
|
|
main.open("配置报告", "/clientbalance/TradeMarketDescSet");
|
|
}
|
|
|
|
function SendReport() {
|
|
var param = {};
|
|
var clientName = $("#ClientId :selected").text();
|
|
param.ClientId = $("#ClientId").val();
|
|
param.ValueDate = $("#ValueDate").val();
|
|
if (param.ClientId === "" ||
|
|
param.ClientId == undefined ||
|
|
param.ClientId == null ||
|
|
param.ClientId === 'null') {
|
|
main.message("请选择要查看报告的客户名称!");
|
|
return;
|
|
}
|
|
if (param.ValueDate === "" ||
|
|
param.ValueDate == undefined ||
|
|
param.ValueDate == null ||
|
|
param.ValueDate === 'null') {
|
|
main.message("请选择要查看报告的结束日期!");
|
|
return;
|
|
}
|
|
|
|
if ($("#ParentFlag").prop("checked"))
|
|
param.ParentFlag = true;
|
|
else
|
|
param.ParentFlag = false;
|
|
|
|
if ($("#ValueDate").val() > "@valuedateBLL.ValueDate.ToString("yyyy-MM-dd")") {
|
|
main.message("结束日期不能大于当前系统日期!");
|
|
return;
|
|
}
|
|
if ($("#ValueDate").val() < $("#ValueDateFrom").val()) {
|
|
main.message("起始日期不能大于结束日期!");
|
|
return;
|
|
}
|
|
|
|
if (isShenWan) {
|
|
main.post("/clientbalance/GenerateTradeMarketBill2", screenData());
|
|
}
|
|
else {
|
|
main.open("向{0}发送报告".template(clientName), "/clientbalance/TradeMarketClientSend?clientid=" + param.ClientId + "&ParentFlag=" + param.ParentFlag);
|
|
}
|
|
}
|
|
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() > calcDate) {
|
|
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 showLiShi() {
|
|
main.showcolumnChooser(jQuery('#listGrid'), "@configcolumn_data.历史交易");
|
|
}
|
|
function locationChange(tab) {
|
|
if ($("#ValueDate").val() > "@valuedateBLL.ValueDate.ToString("yyyy-MM-dd")") {
|
|
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;
|
|
}
|
|
</script>
|
|
}
|
|
|
|
<div class="searchdiv">
|
|
@Html.MyAceDropdownInput("ClientId", "客户名称", ClientDataModel.GetAllClient(), false, true, null, false)
|
|
@Html.CheckBox("ParentFlag", false) @Html.Label(null,"包含子级", new { @style = "font-size:12px;" })
|
|
@Html.ShortInput("ValueDateFrom", "起始日期:")
|
|
@Html.ShortInput("ValueDate", "结束日期:")
|
|
@MyControls.SearchBtn()
|
|
@MyControls.Btn("配置报告", "PopDesc()")
|
|
@if (PS.Config.Is申万)
|
|
{
|
|
@MyControls.Btn("下载报告", "DownLoadReport()")
|
|
}
|
|
@MyControls.Btn("发送报告", "SendReport()")
|
|
</div>
|
|
<br />
|
|
|
|
<div class="tabbable">
|
|
<ul id="myTab" class="nav nav-tabs nav-main">
|
|
<li class="nav-item">
|
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport")'>账户状况</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_PositionDetails")' id="positionTab">持仓明细</a>
|
|
</li>
|
|
@if (PS.Config.IsGuoJun)
|
|
{
|
|
<li class="nav-item">
|
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_PositionSwapFlow")' id="positionSwapTab">互换持仓明细</a>
|
|
</li>
|
|
}
|
|
else
|
|
{
|
|
<li class="nav-item">
|
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_PositionDetailsSwap")' id="positionSwapTab">互换持仓明细</a>
|
|
</li>
|
|
}
|
|
<li class="nav-item">
|
|
<a class="nav-link active" href="#" id="historyTab">历史交易</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPositionSwapFlow")' id="historySwapTab">互换交易流水</a>
|
|
</li>
|
|
<li class="nav-item">
|
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_BalanceStatement")'>资金明细</a>
|
|
</li>
|
|
@if (!PS.Config.Is申万)
|
|
{
|
|
<li class="nav-item">
|
|
<a class="nav-link" onclick='locationChange("/clientbalance/TradeMarketReport_Collateral")'>质押记录</a>
|
|
</li>
|
|
}
|
|
<div style="width:30px;display:inline;margin-left: 20px;" onclick="showLiShi();return false;">
|
|
<img src="~/Images/configure.png" />
|
|
</div>
|
|
</ul>
|
|
</div>
|
|
|
|
<fieldset id="fieldsetgbox_listGrid" style="margin-bottom: 20px;">
|
|
@Html.Raw(JqGridSimple.OutTable())
|
|
</fieldset>
|
|
|
|
<fieldset id="fieldsetgbox_listGrid" class="ml-3">
|
|
<span style="color:gray">
|
|
@Html.Raw(DBCacheManager.Single.GetStr(CacheTable.DingShiDesc))
|
|
</span>
|
|
</fieldset>
|