Files
zszq-trs/YLErpWeb/Views/clientbalance/TradeMarketReport_HistoricalPositionSwapFlow.cshtml
T
2024-05-09 14:06:26 +08:00

599 lines
22 KiB
Plaintext

@{
ViewBag.Title = "结算报告";
ViewBag.Menu = "结算财务-结算报告";
Layout = "~/Views/Shared/_MainLayout.cshtml";
}
@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 g_grid = {};
var calcDate = "@valuedateBLL.ValueDate.ToString("yyyy-MM-dd")";
$(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();
if ($("#ParentFlag").prop("checked"))
PostData.ParentFlag = true;
else
PostData.ParentFlag = false;
var grid = jQuery('#listGrid').jqGrid({
url: '/clientbalance/tradeHistorySwapFlowQuery',
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
});
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) {
}
})
var i = 0;
var colModelGrid = [
{
name: 'EncryptId',
label: 'EncryptId',
index: 'EncryptId',
sortIndex: i++,
width: 70,
align: 'center',
hidden: true,
optionHide: true
}, {
name: 'ClientNumber',
label: '客户编号',
index: 'ClientNumber',
sortIndex: i++,
width: 120,
align: 'center',
sortable: false
}, {
name: 'ClientName',
label: '客户名称',
index: 'ClientName',
sortIndex: i++,
width: 120,
align: 'center',
sortable: false
}, {
name: 'TraderName',
label: '交易员',
index: 'TraderName',
sortIndex: i++,
width: 100,
align: 'center',
sortable: false
}, {
name: 'AssetBookName',
label: '簿记账户',
index: 'AssetBookName',
sortIndex: i++,
width: 120,
align: 'center',
sortable: false
}, {
name: 'LongShort',
label: '多空方向',
index: 'LongShort',
sortIndex: i++,
width: 70,
align: 'center',
sortable: false
}, {
name: 'BuySell',
label: '交易方向',
index: 'BuySell',
sortIndex: i++,
width: 70,
align: 'center',
sortable: false
}, {
name: 'TradeNumber',
label: '交易编号',
index: 'TradeNumber',
sortIndex: i++,
width: 150,
align: 'center',
sortable: false,
formatter: showTradeNumber
}, {
name: 'UnderlyingCode',
label: '标的代码',
index: 'UnderlyingCode',
sortIndex: i++,
width: 90,
align: 'center',
sortable: false
}, {
name: 'UnderlyingName',
label: '标的名称',
index: 'UnderlyingName',
sortIndex: i++,
width: 90,
align: 'center',
sortable: false
}, {
name: 'TradeDate',
label: '交易日期',
index: 'TradeDate',
sortIndex: i++,
width: 90,
align: 'center',
formatter: 'date',
sortable: false
}, {
name: 'ExerciseDate',
label: '到期日',
index: 'ExerciseDate',
sortIndex: i++,
width: 90,
align: 'center',
formatter: 'date',
sortable: false
}, {
name: 'Price',
label: '价格',
index: 'Price',
sortIndex: i++,
width: 90,
align: 'center',
sortable: false,
formatter: formatter6
}, {
name: 'Notional',
label: '份额',
index: 'Notional',
sortIndex: i++,
width: 90,
align: 'center',
sortable: false,
formatter: formatter0
}, {
name: 'AnnualRate',
label: '利率',
index: 'AnnualRate',
sortIndex: i++,
width: 90,
align: 'center',
sortable: false
}, {
name: 'CurrencyRate',
label: '汇率',
index: 'CurrencyRate',
sortIndex: i++,
width: 90,
align: 'center',
sortable: false
}, {
name: 'UnwindDate',
label: '平仓日期',
index: 'UnwindDate',
sortIndex: i++,
width: 90,
align: 'center',
formatter: function (cellvalue, options, rowObject) {
return rowObject.BuySell == "开仓" ? "" : cellvalue.substring(0, 10);
}
}, {
name: 'UnwindPrice',
label: '平仓价格',
index: 'UnwindPrice',
sortIndex: i++,
width: 90,
align: 'center',
sortable: false,
formatter: formatterUn6
}, {
name: 'UnwindNotional',
label: '平仓数量',
index: 'UnwindNotional',
sortIndex: i++,
width: 90,
align: 'center',
sortable: false,
formatter: formatter0
}, {
name: 'TotalFee',
label: '手续费',
index: 'TotalFee',
sortIndex: i++,
width: 90,
align: 'center',
sortable: false,
formatter: formatter2
}, {
name: 'FixedIncome',
label: '固定收益',
index: 'FixedIncome',
sortIndex: i++,
width: 90,
align: 'center',
sortable: false,
formatter: formatterUn2
}, {
name: 'Amount',
label: '实现盈亏(计价币种)',
index: 'Amount',
sortIndex: i++,
width: 150,
align: 'center',
sortable: false,
formatter: formatterUn2
}, {
name: 'QuoteAmount',
label: '实现盈亏(结算币种)',
index: 'QuoteAmount',
sortIndex: i++,
width: 150,
align: 'center',
sortable: false,
formatter: formatterUn2
}
];
function formatter6(cellvalue, options, rowObject) {
return main.formatNumber(cellvalue, 6);
}
function formatter0(cellvalue, options, rowObject) {
return main.formatNumber(cellvalue, 0);
}
function formatterUn6(cellvalue, options, rowObject) {
return rowObject.BuySell == "开仓" ? "" : main.formatNumber(cellvalue, 6);
}
function formatterUn2(cellvalue, options, rowObject) {
return rowObject.BuySell == "开仓" ? "" : main.formatNumber(cellvalue);
}
function formatter2(cellvalue, options, rowObject) {
return cellvalue == null ? "" : main.formatNumber(cellvalue);
}
function showTradeNumber(cellValue, options, rowObject) {
if (cellValue == "合计:") {
return cellValue;
}
return cellValue == undefined || cellValue == "undefined" || cellValue == null ? "--" : cellValue;
}
function gridComplete() {
var jgrid = $(this);
var rowNum = parseInt(jgrid.getGridParam('records'), 10);
if (rowNum > 0) {
$(".ui-jqgrid-sdiv").show();
var totalQuoteAmount = arguments[0].Sum == null ? "" : arguments[0].Sum.QuoteWinLossSum;
jgrid.footerData("set", { QuoteAmount: totalQuoteAmount });
$(".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 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 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;
}
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" onclick='locationChange("/clientbalance/TradeMarketReport_HistoricalPosition")' id="historyTab">历史交易</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="#" 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>