277 lines
13 KiB
Plaintext
277 lines
13 KiB
Plaintext
@model YLErp.Configuration.SettlementConfig
|
|
@{
|
|
ViewBag.Title = "收盘操作";
|
|
Layout = "~/Views/Shared/_MainLayout.cshtml";
|
|
var pageObj = new
|
|
{
|
|
valueDate = valuedateBLL.ValueDate.ToString("yyyy-MM-dd"),
|
|
minValueDate = valuedateBLL.ValueDate.AddYears(-5).ToString("yyyy-MM-dd"),
|
|
checkResult = new YLErp.Modules.EodModule.EodCurrencyCheckResult(),
|
|
isAutoDelaySettlement = PS.Config.IsAutoDelaySettlement,
|
|
};
|
|
var allVolTypes = SettlementViewModel.GetVolTypes();
|
|
var checkedVolTypes = Model.VolTypes.Split(',').Where(n => !string.IsNullOrWhiteSpace(n)).ToArray();
|
|
var dispaly = PS.Config.Is浙商 ? "display:none" : "";
|
|
}
|
|
@section CSS {
|
|
<link href="~/Style/Css/eodExecV2.css?v=@HtmlUtil.JsVersion" rel="stylesheet" />
|
|
}
|
|
|
|
@section JS {
|
|
<script>
|
|
const page = @Json.Serialize(pageObj);
|
|
</script>
|
|
<script src="~/Scripts/app/eod/eodExecV2.js?v=@(HtmlUtil.JsVersion)"></script>
|
|
}
|
|
<div class="yc-panel">
|
|
<div class="row">
|
|
<h6 class="float-left">异常标的预警: </h6>
|
|
<div class="underlycss" id="underlycss" style="">
|
|
<span id="tradeUnderly"></span>
|
|
</div>
|
|
<div class="float-right">
|
|
|
|
<a href="javascript:;" onclick="checkExerciseTradeUnderly(true)"><i class="fa fa-refresh"></i></a>
|
|
上次刷新时间:<span id="updateTradeUnderlyDate"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="yc-panel">
|
|
<h3 class="card-title">收盘操作</h3>
|
|
<p style="color:red">(注:执行历史收盘时请务必按照顺序,连续执行到最近收盘日期,否则报表中数据可能会产生误差!)</p>
|
|
<hr />
|
|
|
|
<form id="form1" onsubmit="return false" autocomplete="off">
|
|
<div>
|
|
<span class="mr-1"> 开始日期:</span>
|
|
<input type="text" class="datepicker" id="startDate" value="@(pageObj.valueDate)" name="StartDate" placeholder="请输入开始日期" autocomplete="off">
|
|
<span class="ml-3 mr-1">结束日期:</span>
|
|
<input type="text" class="datepicker" id="endDate" value="@(pageObj.valueDate)" name="EndDate" placeholder="请输入结束日期" autocomplete="off">
|
|
</div>
|
|
|
|
<div class="mt-4">
|
|
<span class="mr-1"> 价格模式:</span>
|
|
<label class="mr-2"><input type="checkbox" name="PriceType" class="mr-1" value="1" @((Model.PriceType & 1) > 0 ? "checked" : "") />收盘价  </label>
|
|
@* <label class="mr-2" style="@dispaly"><input type="checkbox" name="PriceType" class="mr-1" value="2" @((Model.PriceType & 2) > 0 ? "checked" : "") />结算价  </label> *@
|
|
</div>
|
|
|
|
<div class="mt-4" style="@dispaly">
|
|
<span class="mr-1">波动率类型:</span>
|
|
@foreach (var item in allVolTypes)
|
|
{
|
|
var _checked = checkedVolTypes.Contains(item.Value) ? "checked" : "";
|
|
<label class="mr-2"><input type="checkbox" name="VolTypes" class="mr-1" value="@(item.Value)" @(_checked) />@(item.Text)</label>
|
|
}
|
|
</div>
|
|
@if (PS.Config.Company == CompanyEnum.国元固收)
|
|
{
|
|
<div class="mt-4">
|
|
<span class="mr-1"> 定价环境:</span>
|
|
<label class="mr-2"><input type="checkbox" name="DividendRateTypes" class="mr-1" value="业务" checked disabled />业务</label>
|
|
<label class="mr-2"><input type="checkbox" name="DividendRateTypes" class="mr-1" value="采集" checked />采集</label>
|
|
</div>
|
|
}
|
|
@if (Model.SubCustomerPart)
|
|
{
|
|
<div class="mt-4">
|
|
@Html.MyAceDropdownInput("ClientIds", "选收盘客户:", ClientDataModel.GetAllOpenClient(isContainClosed: true), appendEmptyAll: false)
|
|
</div>
|
|
}
|
|
@if (Model.SupportPart)
|
|
{
|
|
<div class="mt-4 border">
|
|
<div class="small" style="color:gray"> * 重新结算时适用</div>
|
|
<div class="m-2">
|
|
<span class="mr-1"> 部分结算:</span>
|
|
<select name="PartFlag">
|
|
<option>全部</option>
|
|
<option value="场外">场外交易</option>
|
|
<option value="场内">场内交易</option>
|
|
</select>
|
|
@*<input type="text" id="selClient" name="" class="text-box" placeholder="选择客户单独结算" />*@
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
<div class="mt-4">
|
|
<span style="margin-left:100px;"></span>
|
|
@if (PS.Config.ErpElement.SupportMultiCurrency)
|
|
{
|
|
<button class="btn btn-primary" onclick="vueCheck.show()">汇率检查</button>
|
|
}
|
|
@* <button class="btn btn-primary ml-3" onclick="saveEodKnowInOut()" style="@dispaly">期权自动敲入敲出</button> *@
|
|
@if (System.Diagnostics.Debugger.IsAttached)
|
|
{
|
|
<button class="btn btn-primary ml-3" onclick="saveEodTask(true)">执行调试</button>
|
|
}
|
|
else
|
|
{
|
|
if (CurUser.结算管理_收盘操作)
|
|
{
|
|
<button class="btn btn-primary ml-3" onclick="saveEodTask()">执行</button>
|
|
}
|
|
}
|
|
</div>
|
|
</form>
|
|
|
|
<hr />
|
|
<div>
|
|
<a class="btn btn-link" href="/eod_trade_value/EodHistory" target="_blank">收盘历史</a>
|
|
@if (CurUser.结算管理_日终价格查看)
|
|
{
|
|
<a class="btn btn-link" href="/eodPrice/eodPriceList" target="_blank">日终价格管理</a>
|
|
}
|
|
@if (CurUser.结算管理_债券付息数据查看)
|
|
{
|
|
<a class="btn btn-link" href="/BondPayment/BondPaymentList" target="_blank">债券付息数据</a>
|
|
}
|
|
|
|
@if (CurUser.结算管理_结算汇率查看)
|
|
{
|
|
<a class="btn btn-link" href="/eod_currency_rate/eod_currency_rateList" target="_blank">结算汇率设置</a>
|
|
}
|
|
@if (PS.Config.Company == CompanyEnum.中金)
|
|
{
|
|
<a class="btn btn-link" href="javascript:;" onclick="checkSettlePrice()">日终价格检查</a>
|
|
}
|
|
@if (PS.Config.IsGuoJun)
|
|
{
|
|
<a class="btn btn-link" href="javascript:;" onclick="exportswap()">互换持仓明细导入</a>
|
|
}
|
|
@if (CurUser.结算管理_预付金持仓波动率设置)
|
|
{
|
|
<a class="btn btn-link" href="/trade_vol/TradeVolList" target="_blank">预付金持仓波动率设置</a>
|
|
}
|
|
</div>
|
|
</div>
|
|
|
|
<div class="yc-panel">
|
|
<div class="row">
|
|
<h3 class="col">执行报告</h3>
|
|
<div class="col-auto">
|
|
<a href="javascript:;" onclick="reportMgr.loadReport('refresh')"><i class="fa fa-refresh"></i></a>
|
|
</div>
|
|
</div>
|
|
<hr />
|
|
<div id="eodtaskReportWrap"></div>
|
|
<div class="text-right">
|
|
<a href="javascript:;" class="btn btn-link" onclick="reportMgr.loadReport('modal')">更多</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="yc-panel">
|
|
<div class="row">
|
|
<h3 class="col">收盘历史</h3>
|
|
<div class="col-auto">
|
|
<a href="javascript:;" onclick="reloadEodHistory()"><i class="fa fa-refresh"></i></a>
|
|
</div>
|
|
</div>
|
|
<hr />
|
|
<div id="EodHistoryTableCont">
|
|
@await Html.PartialAsync("_EodHistoryTable", ViewData["EodHistory"])
|
|
</div>
|
|
<div class="text-right">
|
|
<a href="/eod_trade_value/EodHistory" target="_blank" class="btn btn-link">更多</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="modal" tabindex="-1" id="modalEodTaskReport">
|
|
<div class="modal-dialog modal-lg">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title">执行报告</h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body" style="max-height:800px;overflow-y:auto;">
|
|
<div id="eodtaskReportWrap2"></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
@if (PS.Config.ErpElement.SupportMultiCurrency)
|
|
{
|
|
<div class="modal" tabindex="-1" id="modalCheck" data-backdrop="static">
|
|
<div class="modal-dialog">
|
|
<div class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title">汇率检查</h5>
|
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
|
<span aria-hidden="true">×</span>
|
|
</button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<div class="row mb-4 no-gutters">
|
|
<label class="col-auto text-right" style="width:150px;line-height:28px;">日期:</label>
|
|
<div class="col">
|
|
<div class="input-group">
|
|
<input class="datepicker" v-model="checkDate" type="text" autocomplete="off" id="checkDate">
|
|
<div class="input-group-append">
|
|
<button class="btn btn-white yc-btn-white" v-on:click="preDate"><i class="fa fa-arrow-circle-o-left"></i></button>
|
|
<button class="btn btn-white yc-btn-white" v-on:click="nextDate"><i class="fa fa-arrow-circle-o-right"></i></button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="mb-4" v-show="checkFlag>0">
|
|
<div v-if="checkFlag===1">检查中...</div>
|
|
<div v-else-if="checkFlag===2">请求出错,请重新尝试</div>
|
|
<div v-else class="m-auto">
|
|
<table class="table table-bordered yc-table-check">
|
|
<thead>
|
|
<tr>
|
|
<th class="t1">货币对</th>
|
|
<th class="t2" v-bind:class="{t4:!checkResult.HasMissing}">{{checkResult.CurDate}}</th>
|
|
<th class="t2" v-if="checkResult.HasMissing">{{checkResult.PreDate}}</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr v-for="item in checkResult.Items">
|
|
<td class="t1">{{item.CurrencyPair}}</td>
|
|
<td class="t2" v-bind:class="{t4:!checkResult.HasMissing}">{{item.CurRate}}</td>
|
|
<td class="t2" v-if="checkResult.HasMissing">{{item.PreRate}}</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="t1"></td>
|
|
<td class="t4" v-bind:colspan="checkResult.HasMissing?2:1">
|
|
<div v-if="checkResult.HasMissing">
|
|
<span v-if="checkResult.CanCopyPre">
|
|
<button type="button" class="btn btn-link btn-link-copypre" v-on:click="copyPre">点击从上日'{{checkResult.PreDate}}'复制缺失汇率</button>
|
|
</span>
|
|
<div class="text-left" v-else>上日'{{checkResult.PreDate}}'有汇率缺失,补足后可以复制汇率数据到当前日期</div>
|
|
</div>
|
|
<div v-else class="text-success">没有缺失</div>
|
|
<div class="mt-4" v-show="checkFlag>100">
|
|
<span v-show="checkFlag===101">执行复制...</span>
|
|
<span v-show="checkFlag===102">
|
|
<strong>执行复制结果:</strong>
|
|
<span>{{copyResultMsg}}</span>
|
|
</span>
|
|
<span v-show="checkFlag===103">执行复制,请求出错,请重新尝试</span>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<div class="m-auto">
|
|
<button type="button" class="btn btn-primary" v-on:click="executeCheck">执行检查</button>
|
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">关闭</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
|
|
<form target="_blank" method="post" id="exportForm" action="">
|
|
<input type="hidden" name="" value="" />
|
|
</form>
|