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

422 lines
19 KiB
Plaintext

@model TradeViewModel
@{
Layout = null;
var tradeModel = Model.Trade;
var isPremiumRate = tradeModel.IsUsePremiumRate == true;
var salesNames = String.Join(",", Model.SalesCommission.Select(n => n.SalesmanName).ToArray());
}
<div id="optionVueDiv">
<div class="tabbable">
<ul id="myTab" class="nav nav-tabs nav-main">
<li class="nav-item">
<a class="nav-link active" href="#baseInfo" data-toggle="tab">成交</a>
</li>
@if (Model.unWindTradeCashList != null && Model.unWindTradeCashList.Any())
{
<li class="nav-item">
<a class="nav-link" href="#terminationInfo" data-toggle="tab">提前终止</a>
</li>
}
@if (Model.maturityTradeCash != null)
{
<li class="nav-item">
<a class="nav-link" href="#maturityInfo" data-toggle="tab">到期</a>
</li>
}
@if (ConsTrade.TradeStatusAfterConfirmed.Contains(Model.Trade.TradeStatus))
{
<li class="nav-item">
<a class="nav-link" href="#ClientCashinCashout" data-toggle="tab">资金记录</a>
</li>
}
</ul>
</div>
<div class="tab-content">
<div id="baseInfo" class="tab-pane in active">
<table class="table table-bordered">
<tr>
<td class="tdRight">簿记账户</td>
<td>@(tradeModel.AssetBookName)</td>
<td class="tdRight">交易员</td>
<td>@(tradeModel.TraderName)</td>
</tr>
<tr>
<td class="tdRight">交易对手方</td>
<td>@(tradeModel.ClientName)</td>
<td class="tdRight">交易编号</td>
<td>@(tradeModel.TradeNumber)</td>
</tr>
<tr>
<td class="tdRight">交易方向</td>
<td>@(tradeModel.BuySell)</td>
<td class="tdRight">期权类型</td>
<td>@(tradeModel.TradeType)</td>
</tr>
<tr>
<td class="tdRight">交易状态</td>
<td>@(tradeModel.TradeStatus)</td>
<td class="tdRight">名义本金</td>
<td>@(tradeModel.OriginalStockEqvNotionalV2.OtcFormat(OtcFormatFlag.StockEqvNotional))</td>
</tr>
@if (!string.IsNullOrEmpty(Model.OriginalStockEqvNotionalV2MultipleExchangeRate))
{
<tr>
<td class="tdRight">名义本金(结算币种)</td>
<td>@Model.OriginalStockEqvNotionalV2MultipleExchangeRate</td>
<td class="tdRight"></td>
<td></td>
</tr>
}
<tr>
<td class="tdRight">交易总额</td>
<td>@(tradeModel.TradePrice)</td>
<td class="tdRight">无风险利率</td>
<td>@(tradeModel.NoRiskRate.OtcFormatPercent())</td>
</tr>
<tr>
<td class="tdRight">成交日期</td>
<td>@(tradeModel.TradeDate.OtcFormatDate())</td>
<td class="tdRight">到期日期</td>
<td>@(tradeModel.ExerciseDate.OtcFormatDate())</td>
</tr>
<tr>
<td class="tdRight">资金类型</td>
<td>@(tradeModel.trade_cashflow.DepositType)</td>
<td class="tdRight">利率类型</td>
<td>@(tradeModel.trade_cashflow.RateType)</td>
</tr>
<tr>
<td class="tdRight">利率</td>
<td>@(tradeModel.trade_cashflow.ProfitRate.OtcFormatPercent())</td>
<td class="tdRight">计息日历规则</td>
<td>@(tradeModel.trade_cashflow.ProfitDayCount)</td>
</tr>
<tr>
<td class="tdRight">返还比例</td>
<td>@(tradeModel.trade_cashflow.DepositType == CashflowDepositTypeEnum.资金收益 ? tradeModel.trade_cashflow.PrepayRatio.OtcFormatPercent() : "")</td>
@if (!PS.Config.Is润和)
{
<td class="tdRight">交易对手方</td>
<td>@(tradeModel.OpponentRole ?? "乙方")</td>
}
else
{
<td class="tdRight"></td>
<td></td>
}
</tr>
@{
tradeModel.MetaDic.TryGetValue(YLErp.DBModels.Consts.ConsTradeMetaKey.ClearingAgency, out var clearingAgency);
tradeModel.MetaDic.TryGetValue(YLErp.DBModels.Consts.ConsTradeMetaKey.TradingPlace, out var tradingPlace);
tradeModel.MetaDic.TryGetValue(YLErp.DBModels.Consts.ConsTradeMetaKey.MainProtocolCode, out var mainProtocolCode);
tradeModel.MetaDic.TryGetValue(YLErp.DBModels.Consts.ConsTradeMetaKey.SupProtocolCode, out var supProtocolCode);
}
@if (PS.Config.ErpElement.SecuritiesEnvironment)
{
if (!PS.Config.Is润和)
{
<tr>
<td class="tdRight">交易场所</td>
<td>@(tradingPlace)</td>
<td class="tdRight">清算机构</td>
<td>@(clearingAgency)</td>
</tr>
}
<tr>
<td class="tdRight">主协议编号</td>
<td>@(mainProtocolCode)</td>
<td class="tdRight">补充协议编号</td>
<td>@(supProtocolCode)</td>
</tr>
}
@if (AppHelper.UseFutureVersion("销售提成", "V2"))
{
<tr>
<td class="tdRight">
@(PS.Config.ErpElement.SaleMode == YLErp.Configuration.Enums.SaleMode.SaleMen ? "销售员" : "客户经理")
</td>
<td>@(salesNames)</td>
<td class="tdRight">销售提成</td>
<td>@(Model.SalesCommission.FirstOrDefault()?.CommissionString())</td>
</tr>
}
<tr>
<td class="tdRight">备注</td>
<td colspan="3">@(tradeModel.RemarkInfo)</td>
</tr>
@if (CurUser.交易管理_交易标签查看权限)
{
<tr>
<td class="tdRight">标签</td>
<td colspan="3">
<div class="tag-context" style="width:100%;display:inline-block;line-height:36px;text-align:left;">
@if (Model.Tags != null && Model.Tags.Any())
{
foreach (var tag in Model.Tags)
{
<span class="tag-item" data-id="@tag.Id" data-name="@tag.Name">
<span class="tag-text" data-value="@tag.Id">@tag.Name</span>
@if (CurUser.交易管理_交易标签调整权限)
{
<span class="tag-remove" onclick="DeleteTag('@tag.Name')">x</span>
}
</span>
}
}
@if (CurUser.交易管理_交易标签调整权限)
{
<span class="tag-add">+</span>
}
</div>
</td>
</tr>
}
</table>
@if (tradeModel.Propertys != null)
{
var i = 0;
var length = tradeModel.Propertys.Count;
var preProperty = new ExtendInfoModel();
<table class="table table-bordered table-exotic">
@foreach (var property in tradeModel.Propertys)
{
i++;
if (i % 2 == 1)
{
preProperty = property;
if (i == length)
{
<tr>
<td class="tdRight">@property.name</td>
<td>@property.value</td>
<td class="tdRight"></td>
<td></td>
</tr>
}
}
else
{
<tr>
<td class="tdRight">@preProperty.name</td>
<td>@preProperty.value</td>
<td class="tdRight">@property.name</td>
<td>@property.value</td>
</tr>
}
}
</table>
}
</div>
@if (Model.unWindTradeCashList != null)
{
var index = 1;
<div id="terminationInfo" class="tab-pane">
@foreach (var tradeCash in Model.unWindTradeCashList)
{
if (tradeCash.Action == "系统操作-行权费")
{
<table class="table table-bordered">
<tr>
<td class="tdRight">提前终止序号</td>
<td>@(index++)</td>
@if (isPremiumRate)
{
<td class="tdRight">行权比例</td>
<td>@(tradeCash.NotionalPercent.OtcFormatPercent())</td>
}
else
{
<td class="tdRight">行权数量</td>
<td>@(tradeCash.TradeAmount.OtcFormatNotional(tradeModel.CountRatio, PS.Config.IsUseDisplayNotional))</td>
}
</tr>
<tr>
<td class="tdRight">行权日期</td>
<td>@(tradeCash.ValueDate.OtcFormatDate())</td>
<td class="tdRight">收益总额</td>
<td>@(tradeCash.Amount.OtcFormatMoney())</td>
</tr>
<tr>
<td class="tdRight">行权标的价格</td>
<td>@(tradeCash.FinalPrice.OtcFormat(OtcFormatFlag.umprice))</td>
<td class="tdRight">实现盈亏</td>
<td>@(tradeCash.WinLoss)</td>
</tr>
<tr>
@if (isPremiumRate)
{
<td class="tdRight">行权收益</td>
<td>@(tradeCash.SingleWinPricePercent.OtcFormat(OtcFormatFlag.premiumRateP))</td>
}
else
{
<td class="tdRight">行权收益</td>
<td>@(tradeCash.SingleWinPrice.OtcFormat(OtcFormatFlag.tradeSinglePrice))</td>
}
<td></td>
<td></td>
</tr>
</table>
}
else
{
<table class="table table-bordered">
<tr>
<td class="tdRight">提前终止序号</td>
<td>@(index++)</td>
@if (isPremiumRate)
{
<td class="tdRight">平仓单价</td>
<td>@(tradeCash.UnwindPricePercentRate.OtcFormatPercent())</td>
}
else
{
<td class="tdRight">平仓单价</td>
<td>@(tradeCash.UnwindPrice.OtcFormat(OtcFormatFlag.umprice))</td>
}
</tr>
<tr>
<td class="tdRight">平仓日期</td>
<td>@(tradeCash.ValueDate.OtcFormatDate())</td>
@if (isPremiumRate)
{
<td class="tdRight">平仓比例</td>
<td>@(tradeCash.UnwindPercentRate.OtcFormatPercent())</td>
}
else
{
<td class="tdRight">平仓数量</td>
<td>@(tradeCash.UnwindTradeAmount.OtcFormatNotional(tradeModel.CountRatio, PS.Config.IsUseDisplayNotional))</td>
}
</tr>
<tr>
<td class="tdRight">平仓标的价格</td>
<td>@(tradeCash.FinalPrice.OtcFormat(OtcFormatFlag.umprice))</td>
<td class="tdRight">平仓总额</td>
<td>@(tradeCash.Amount.OtcFormatMoney())</td>
</tr>
<tr>
<td class="tdRight">实现盈亏</td>
<td>@(tradeCash.WinLoss)</td>
<td></td>
<td></td>
</tr>
</table>
}
}
</div>
}
@if (Model.maturityTradeCash != null)
{
var mtc = Model.maturityTradeCash;
<div id="maturityInfo" class="tab-pane">
<table class="table table-bordered">
<tr>
<td class="tdRight">到期日期</td>
<td>@(mtc.ValueDateString)</td>
@if (isPremiumRate)
{
<td class="tdRight">到期比例</td>
<td>@(mtc.NotionalPercent.OtcFormatPercent())</td>
}
else
{
<td class="tdRight">到期数量</td>
<td>@(mtc.TradeAmount.OtcFormatNotional(tradeModel.CountRatio, PS.Config.IsUseDisplayNotional))</td>
}
</tr>
<tr>
@if (isPremiumRate && mtc.Action != "系统操作-行权费")
{
<td class="tdRight">到期收益</td>
<td>@(mtc.SingleWinPricePercent.OtcFormat(OtcFormatFlag.premiumRateP))</td>
}
else
{
<td class="tdRight">到期收益</td>
<td>@(mtc.SingleWinPrice.OtcFormat(OtcFormatFlag.tradeSinglePrice))</td>
}
<td class="tdRight">实现盈亏</td>
<td>@(mtc.WinLoss)</td>
</tr>
<tr>
@if (tradeModel.TradeType == "亚式期权")
{
<td class="tdRight">到期标的价格</td>
<td>@(mtc.SpotPrice.OtcFormat(OtcFormatFlag.umprice))</td>
}
else
{
<td class="tdRight">到期标的价格</td>
<td>@(mtc.FinalPrice.OtcFormat(OtcFormatFlag.umprice))</td>
}
<td class="tdRight">收益总额</td>
<td>@(mtc.Amount.OtcFormatMoney())</td>
</tr>
@if (tradeModel.TradeType == "亚式期权")
{
<tr>
<td class="tdRight">到期标的均价</td>
<td colspan="3">@(mtc.FinalPrice.OtcFormat(OtcFormatFlag.umprice))</td>
</tr>
}
</table>
</div>
}
@if (ConsTrade.TradeStatusAfterConfirmed.Contains(Model.Trade.TradeStatus))
{
<div id="ClientCashinCashout" class="tab-pane">
<div style="display:inline;right:100px;">
@if (CurUser.交易管理_交易资金维护)
{
<button id="" class="btn btn-primary " type="button" onclick="Addentryexit(0,@Model.Trade.id);return false;">
新增
</button>
<button id="" class="btn btn-primary " type="button" onclick="setExcute();return false;">
确认
</button>
<button id="" class="btn btn-primary " type="button" onclick="setReject();return false;">
拒绝
</button>
}
</div>
<div style="min-width: 1000px;" id="entryexitEditPopInner"></div>
</div>
}
</div>
</div>
<div class="modal fade" id="myCommentsModal" data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content">
<!-- 模态框头部 -->
<div class="modal-header">
<h4 class="modal-title">修改备注</h4>
<button type="button" class="close" v-on:click="closeModal()">&times;</button>
</div>
<!-- 模态框主体 -->
<div class="modal-body">
<lable>备注</lable>
<input v-model="Comments" />
<input hidden v-model="EncryptId" />
</div>
<!-- 模态框底部 -->
<div class="modal-footer">
<button type="button" class="btn" v-on:click="saveModal()">保存</button>
</div>
</div>
</div>
</div>