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

874 lines
43 KiB
Plaintext
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.
@using YLErp
@model YLErp.Modules.TradeModule.ForwardModule.TradeCheckModel
@{
ViewBag.Title = "远期交易信息 | 编辑";
Layout = "~/Views/Shared/_InfoLayout.cshtml";
var tradeModel = Model.Trade;
var UnderlyingModel = Model.UnderlyingInfo;
var UnderlyingModel2 = ViewBag.Underlying2;
var generateAmendDoc = PS.Config.TradeElement.IsGenerateAmendDoc;
var needSendChangeEmail = PS.Config.TradeElement.IsAmendableAfterConfirm && PS.Config.TradeElement.IsGenerateAmendDoc;
var SalesCommission = Model.Trade.SalesCommission;
var type = string.IsNullOrWhiteSpace(tradeModel.StructureType) ? tradeModel.TradeType : tradeModel.StructureType;
var pageObj = new
{
CountRatio = Model.UnderlyingInfo.CountRatio,
ForwardTradePriceModel = PS.Config.ErpElement.ForwardTradePriceModel,
showHuaAn = PS.Config.Company == CompanyEnum.华安,
};
}
@section CSS{
<link rel="stylesheet" href="~/Style/Css/tradeEdit.css" />
<style>
.form-group { width: 400px; }
</style>
}
@section JS
{
<script>
const pageData = @Json.Serialize(pageObj);
</script>
<script src="@HtmlUtil.BasicDataJs("品种")"></script>
<script type="text/javascript">
//otcformat禁止千分位分组
window.otcformat.options.disableGrouping = true;
const consVarieties = ylotc.varieties;
var valuedate = moment("@valuedateBLL.ValueDate").format("YYYY-MM-DD");
var Mardate = "@UnderlyingModel.MaturityDate" == "" ? "" : moment("@UnderlyingModel.MaturityDate").format("YYYY-MM-DD");
var diffList = @(Json.Serialize(Model.diffList));
var salesCommissionCtrl;
var SalesCommission = @Json.Serialize(SalesCommission);
$(function () {
$("#OptionType").val('@tradeModel.OptionType');
$("#BuySell").val('@tradeModel.BuySell');
$("#MaturityDate").val(Mardate);
var Variety = $("#VarietyName").val();
var date = consVarieties.find(x => x.Name === Variety);
$("#TradeUnit").val(date.TradeUnit);
$("#QueteUnit").text(date.QuoteUnit);
main.setTradeDatePicker("", "#TradeDate", null, null, false);
main.setTradeDatePicker("", "#ExerciseDate", null, null, true);
main.setTradeDatePicker("", "#SettlementDate", null, null, true);
main.setTradeDatePicker("", "#ActualExerciseDate", null, null, true);
//$(".form-group").addClass("col-md-6");
changeForwardValue()
var assLiClickFlag = false;
$("#btn_save").on('click',
function () {
if (!assLiClickFlag) {
savetrade();
assLiClickFlag = true;
setTimeout(function () {
assLiClickFlag = false;
},
5000);
}
});
$("#SpotPrice").blur(function () {
});
$("#Lots").blur(function () {
$("#Lots").val(otcformat.trading.notional($("#Lots").val()) || 0);
changeLots();
changeForwardValue()
});
$("#TradeAmount").blur(function () {
var amount = $("#TradeAmount").val();
var lots = otcformat.trading.notional(amount / @UnderlyingModel.ContractSize);
$("#Lots").val(lots);
changeForwardValue()
});
$("#OpenCommission").blur(function () {
changeForwardValue()
});
showDiffWithReviewTrade();
if (SalesCommission && SalesCommission.Commission > 0) {
salesCommissionCtrl = new SalesCommissionCtrl(document.getElementById('salesCommissionCtrl'), SalesCommission);
}
});
function refreshUnderlyingPrice() {
main.post("/underlying_manager/underlyingGetById",
{ id: g_underlyingid, voltype: "交易" })
.done(function (res) {
$("#InitialSpotPrice").val(otcformat.trading.umprice(res.underlying_manager.Price));
changeForwardValue();
});
}
function showDiffWithReviewTrade() {
if (!diffList || !diffList.length) {
return;
}
diffList.forEach(function (curValue) {
$(`[name='${curValue}']`).parent()
.append('<span class="glyphicon glyphicon-remove not-match" style="color: red;"></span>');
});
}
//计算远期价值
//(交割价格- 期初价格) * 成交数量 * CountRatio *(多-1,空1]*(买入1,卖出 - 1)
function changeForwardValue() {
if ($("#InitialSpotPrice").val() == "" || $("#Strike").val() == "" || !$("#OptionType").val()) {
return;
}
var optionType = $("#OptionType").val();
var buySell = $("#BuySell").val();
var initialPrice = numeral($("#InitialSpotPrice").val()).value();
var strikePrice = numeral($("#Strike").val()).value();
var tradeAmount = numeral($("#TradeAmount").val()).value();
var forwardValue = otcformat.trading.umprice((strikePrice - initialPrice) * tradeAmount * pageData.CountRatio * (optionType == "看涨" ? -1 : 1) * (buySell == "买入" ? 1 : -1));
$("#ForwardValue").val(forwardValue);
changeTradePrice();
}
$("#InitialSpotPrice,#Strike").change(function () {
var val = $(this).val();
if (val) {
$(this).val(otcformat.trading.umprice(val));
}
});
$("#TradeAmount,#Lots").change(function () {
var val = $(this).val();
if (val) {
$(this).val(otcformat.trading.notional(val));
}
});
$("#OpenCommission").change(function () {
var val = $(this).val();
if (val) {
$(this).val(otcformat.trading.umprice(val));
changeForwardValue();
}
});
$("#TradePrice").change(function () {
var TradePirce = $("#TradePrice").val();
var ForwardValue = $("#ForwardValue").val();
var Lots = $("#Lots").val();
var isSupplyForwardValue = $("#IsSupplyForwardValue").val();
let supplyPrice = isSupplyForwardValue == "1" ? ForwardValue : isSupplyForwardValue == "-1" ? -ForwardValue : 0;
var OpenCommission = otcformat.trading.TradePrice((parseFloat(TradePirce) - parseFloat(supplyPrice)) / parseFloat(Lots));
$("#OpenCommission").val(OpenCommission);
});
$("#AnnualStoragePrice").change(function () {
var val = $(this).val();
if (val) {
$(this).val(otcformat.trading.tradeSinglePrice(val));
}
});
$("#InitialSpotPrice,#Strike,#OptionType,#BuySell").change(function () {
changeForwardValue();
});
function savetrade() {
var callbackFunc = function () {
if (!checkSubmitData()) {
return false;
}
savetrade_inner();
};
icallbackFunc();
}
function checkSubmitData() {
var pass = $('#forwardTradeEditForm').valid();
var underid = $("#UnderlyingId").val();
//验证输入的日期格式是否正确(包括交易日期、开始日、到期日)
var ExerciseDate = $("#ExerciseDate").val();
var regTime = /^[0-9]{4}-[0-1]?[0-9]{1}-[0-3]?[0-9]{1}$/;
if (!main.isEmpty(ExerciseDate) && !regTime.test(ExerciseDate)) {
main.message("请输入正确的到期日期格式");
return false;
}
//验证输入的日期格式是否正确(包括交易日期、开始日、到期日)
var SettlementDate = $("#SettlementDate").val();
var regTime = /^[0-9]{4}-[0-1]?[0-9]{1}-[0-3]?[0-9]{1}$/;
if (!main.isEmpty(SettlementDate) && !regTime.test(SettlementDate)) {
main.message("请输入正确的结算日期格式");
return false;
}
//验证输入的日期格式是否正确(包括交易日期、开始日、到期日)
var ActualExerciseDate = $("#ActualExerciseDate").val();
var regTime = /^[0-9]{4}-[0-1]?[0-9]{1}-[0-3]?[0-9]{1}$/;
if (!main.isEmpty(ActualExerciseDate) && !regTime.test(ActualExerciseDate)) {
main.message("请输入正确的结算日期格式");
return false;
}
var InitialSpotPrice = $("#InitialSpotPrice").val();
if (main.isEmpty(InitialSpotPrice)) {
main.message("请输入期初标的价格");
return false;
}
var TradeDate = $("#TradeDate").val();
if (main.isEmpty(TradeDate)) {
main.message("请输入交易日期");
return false;
}
var regTime = /^[0-9]{4}-[0-1]?[0-9]{1}-[0-3]?[0-9]{1}$/;
if (!regTime.test(TradeDate)) {
main.message("请输入正确的交易日期格式");
return false;
}
if (!$("#UnderlyingId").parent().is(":hidden") && !underid) {
main.message("请设置标的信息");
return false;
}
if (!$('#AssetId').val()) {
main.message("请设置簿记账户");
return false;
}
if (!$("#TradeAmount").parent().is(":hidden") && $("#TradeAmount").val() <= 0) {
main.message("请填写大于0的数量!");
return false;
}
if (!$("#TradeSinglePrice").parent().is(":hidden") && parseFloat($("#TradeSinglePrice").val()) < 0) {
main.message("权利金不能小于0");
return false;
}
pass = pass && checkExerciseDate();
return pass;
}
function savetrade_inner() {
var postData = getPostData();
var checkTradeFunc = function (additionalProcessing) {
if (!main.isEmpty(additionalProcessing)) {
postData.additionalProcessing = additionalProcessing;
}
$(".not-match").remove();
var doneFunc = function (res) {
if (res.obj && res.obj.proccessType == "AdditionalProcessing") {
if (res.obj.type === "LackOfMoney") {
var htmlContent = `<div style="padding:10px">${res.obj.message}</div>`;
var lackMoneyConfirmLayer = main.open2("提示",
htmlContent,
{
area: ["430px", "175px"],
btn: ['交易特批', '取消'],
yes: function (index, layero) {
var layerIndex = lackMoneyConfirmLayer;
main.confirm("客户资金或授信不足,强制成交会导致本机构产生风险!要继续复核通过?", function () {
layer.close(layerIndex);
checkTradeFunc("LackOfMoney");
});
},
cancel: function (index, layero) {
if (window.parent && window.parent.reloadtrade) {
window.parent.reloadtrade();
}
(parent || window).layer.closeAll();
}
});
console.log("lackMoneyConfirmLayer:" + lackMoneyConfirmLayer);
}
return;
}
(parent || window).main.message(res.msg);
@if (generateAmendDoc)
{
<text>
if (res.obj && res.obj.generateChangeSuccess) {
main.downloadFiles(res.obj);
}
</text>
}
@if (needSendChangeEmail)
{
<text>
if (res.obj && res.obj.generateChangeSuccess) {
main.confirm("确认发送变更确认书?",
function () {
main.post("/trade/SendChangeConfirmEmails", { tradeids: tradeId }).done(
function (res) {
if (res.success) {
main.message("发送成功");
} else {
main.message(res.msg);
}
try {
window.parent.reloadtrade();
} catch (e) {
}
});
});
} else {
try {
window.parent.reloadtrade();
} catch (e) {
}
}
</text>
}
else
{
<text>
try {
$("#btn_check").attr("style", "display:block;float:left");
$("#btn_Reject").attr("style", "display:block;float:left");
window.parent.reloadtrade();
} catch (e) { }
</text>
}
}
var failFunc = function (res) {
if (!res || !res.obj || main.isEmpty(res.obj.diffList)) {
return;
}
res.obj.diffList.forEach(function (curValue) {
$(`[name='${curValue}']`).parent()
.append('<span class="glyphicon glyphicon-remove not-match" style="color: red;"></span>');
});
}
main.post("/forwardtrade/CheckTrade", postData).done(doneFunc).fail(failFunc);
}
checkTradeFunc();
}
function checkExerciseDate() {
var underlyingInstrumentType = $("#UnderlyingInstrumentType").val();
var mar = $("#MaturityDate").val();
if (!mar) return true;
var exe = $("#ExerciseDate").val();
var tradeDate = $("#TradeDate").val();
var isTradeDateShow = !$("#TradeDate").parent().is(":hidden");
if (isTradeDateShow) {
//if (tradeDate > valuedate) {
// main.message("交易日期不能是未来日期");
// $("#TradeDate").val("");
// return false;
//}
var flag = true;
$.ajax({
url: '/calendar/IsHoliday',
type: 'post',
async: false,//使用同步的方式,true为异步方式
data: { 'date': tradeDate },//这里使用json对象
success: function (isHoliday) {
if (isHoliday === true) {
main.message("交易日期不得为假日");
$("#TradeDate").val("");
flag = false;
return false;
}
},
fail: function () {
//code here...
}
});
if (!flag) {
return false;
}
}
if (tradeDate > exe) {
main.message("交易日应该在到期日之前");
$("#ExerciseDate").val("");
return false;
}
if (exe > mar) {
main.message("到期日必需在标的到期日之前");
$("#ExerciseDate").val("");
return false;
}
return true;
}
function changeSupplyForwardValue() {
this.changeTradePrice(true);
}
//计算开仓总费用
//补偿远期价值 + 开仓费用
function changeTradePrice() {
var lots = numeral($("#Lots").val()).value();
var openCommission = numeral($("#OpenCommission").val()).value();
var ForwardValue = numeral($("#ForwardValue").val()).value();
var isSupplyForwardValue = $("#IsSupplyForwardValue").val();
var supplyPrice = isSupplyForwardValue == "1" ? ForwardValue : isSupplyForwardValue == "-1" ? -ForwardValue : 0;
var TradePrice = otcformat.trading.tradePrice((supplyPrice + lots * openCommission));
$("#TradePrice").val(TradePrice);
}
function changeLots() {
try {
var lots = $("#Lots").val();
var amount = otcformat.trading.notional(lots * @UnderlyingModel.ContractSize / @UnderlyingModel.CountRatio);
$("#TradeAmount").val(amount);
} catch (e) { }
}
// -------------------------------Check Method End----------------------------------
jQuery.prototype.serializeObject = function () {
var obj = new Object();
$.each(this.serializeArray(),
function (index, param) {
if (!(param.name in obj)) {
obj[param.name] = param.value;
}
});
return obj;
};
function getPostData() {
var data = $("#forwardTradeEditForm").serializeObject();
if (salesCommissionCtrl) {
data.SalesCommission = salesCommissionCtrl.getValue();
}
return data;
}
function savereject() {
var postData = getPostData();
main.post("/forwardtrade/TradeReject", postData).done(
function (res) {
try {
window.parent.reloadtrade();
} catch (e) { }
}
);
}
function savepass(additionalProcessing) {
if (main.isEmpty(additionalProcessing)) {
additionalProcessing = "";
}
var text = '复核检查通过!';
var status = 'pass';
var tradeId = '@tradeModel.id';
var pop = '';
main.post("/processtradelog/UpdateTradeProcessLog",
{ tradeId: tradeId, status: status, text: text },
{ async: false }).done(
function (data) {
if (!data.success) {
main.message(res.msg);
return;
}
@if (generateAmendDoc)
{
<text>
if (data.obj && data.obj.generateChangeSuccess) {
main.downloadFiles(data.obj.url);
}
</text>
}
@if (needSendChangeEmail)
{
<text>
if (data.obj && data.obj.generateChangeSuccess) {
main.confirm("确认发送变更确认书?",
function () {
main.post("/trade/SendChangeConfirmEmails", { tradeids: tradeId }).done(
function (data) {
if (data.success) {
main.message("发送成功");
} else {
main.message(data.msg);
}
try {
window.parent.reloadtrade();
} catch (e) {
}
});
});
}
</text>
}
else
{
<text>
try { window.parent.reloadtrade(); } catch (e) { }
</text>
}
}
);
}
function savechecktrade() {
if (!checkSubmitData()) {
return false;
}
savetrade_inner();
}
var assLiClickFlag = false;
function btn_check() {
if (!assLiClickFlag) {
savechecktrade();
assLiClickFlag = true;
setTimeout(function () {
assLiClickFlag = false;
},
5000);
}
}
$("#btn_Pass").on('click', function () {
savepass();
});
function btn_Reject() {
//if (!checkSubmitData()) {
// return true;
//}
//var exe = $("#ExerciseDate").val();
//var isExerciseShow = !$("#ExerciseDate").parent().is(":hidden");
//if (isExerciseShow) {
// main.post("/calendar/IsHoliday", { date: exe }).done(function (isHoliday) {
// if (isHoliday === false) {
// savereject();
// } else {
// main.message("到期日不得为假日");
// }
// });
//} else {
// savereject();
//}
savereject();
}
//ESC
$(document).keyup(function (event) {
switch (event.keyCode) {
case 27:
window.parent.layer.closeAll();
}
});
</script>
}
@using (Html.BeginForm("forwardTradeEdit", "forwardTrade", FormMethod.Post, new { id = "forwardTradeEditForm" }))
{
<div class="well" style="margin: 0px auto;">
<div class="well-left">
<fieldset>
<!--目前框架新增和修改同一界面,造成的问题就是输入的字段新增和修改都一样-->
@if (Model != null)
{
<input type="hidden" value="@tradeModel.id" name="id" id="id" />
<input type="hidden" value="@tradeModel.TradeStatus" name="TradeStatus" id="TradeStatus" />
<input type="hidden" value="@tradeModel.GroupId" name="GroupId" id="GroupId" />
<input type="hidden" value="@tradeModel.GroupName" name="GroupName" id="GroupName" />
<input type="hidden" value="@tradeModel.TradeStatus" name="TradeStatus" id="TradeStatus" />
<input type="hidden" value="@tradeModel.CheckTradeUpdate" name="CheckTradeUpdate" id="CheckTradeUpdate" />
<input type="hidden" value="@tradeModel.TradeSource" name="TradeSource" id="TradeSource" />
<input type="hidden" value="@tradeModel.TradeSavedVol" name="TradeSavedVol" id="TradeSavedVol" />
}
<input type="hidden" value="@tradeModel.EncryptId" name="EncryptId" id="EncryptId" />
</fieldset>
<div class="form-group">
<label class="formlabel" for="TradeType">结构类型</label>
<label class="formlabel" style="color:white;letter-spacing:6px;padding:2px;background-color:#09bbbc;border-radius:4px;text-align:center" id="TradeType" name="TradeType">@type</label>
</div>
<input type="hidden" value="@tradeModel.UnderlyingCode" name="UnderlyingCode" id="UnderlyingCode" />
<div class="form-group" style="display:none">
<label class="formlabel" for="UnderlyingInstrumentType">标的资产类型</label>
<label class="formlabel" style="letter-spacing:6px;padding:2px;border-radius:4px;text-align:center" id="UnderlyingInstrumentType" name="UnderlyingInstrumentType">@tradeModel.UnderlyingInstrumentTypeCn</label>
<input type="hidden" value="@tradeModel.UnderlyingInstrumentType" name="UnderlyingInstrumentType" id="UnderlyingInstrumentType" />
</div>
@if (pageObj.ForwardTradePriceModel == YLErp.Configuration.Enums.ForwardTradePriceModel.HOOK_PRICE)
{
<div class="form-group">
<label class="formlabel" for="VarietyId">标的品种</label>
<input id="VarietyName" value="@UnderlyingModel.UnderlyingType" class="text-box" readonly type="text" name="VarietyName">
<input type="hidden" value="@UnderlyingModel.UnderlyingTypeId" id="VarietyId" name="VarietyId">
</div>
@*@Html.MyDropdownFor(model => tradeModel.VarietyId, new List<SelectListItem>
{ }, new { disabled = "disabled" })*@
<div class="form-group">
<label class="formlabel" for="VarietyId">标的代码</label>
<input id="UnderlyingCode" value="@tradeModel.UnderlyingCode" class="text-box" readonly type="text" name="UnderlyingCode" style="color: red; font-weight: bold;">
<input type="hidden" value="@tradeModel.UnderlyingId" id="UnderlyingId" name="UnderlyingId">
</div>
<div class="form-group maturity">
<label class="formlabel" for="MaturityDate">标的到期日</label>
<input id="MaturityDate" class="text-box datepicker" type="datetime" value="" name="MaturityDate" disabled="">
<span class="field-validation-valid" data-valmsg-for="MaturityDate" data-valmsg-replace="true"></span>
</div>
<div class="form-group">
<label class="formlabel" for="VarietyId">交易单位</label>
<input id="TradeUnit" value="" class="text-box" readonly type="text" name="TradeUnit">
<input type="hidden" value="@UnderlyingModel.TradeUnit" id="TradeUnit" name="TradeUnit">
</div>
<div class="form-group">
<label class="formlabel" for="QueteUnit">
报价单位:
</label>
<label class="lblQuoteUnit" id="QueteUnit"> </label>
</div>
}
else
{
<div class="form-group">
<label class="formlabel" for="VarietyId">标的1品种</label>
<input id="VarietyName" value="@UnderlyingModel.UnderlyingType" class="text-box" readonly type="text" name="VarietyName">
<input type="hidden" value="@UnderlyingModel.UnderlyingTypeId" id="VarietyId" name="VarietyId">
</div>
<div class="form-group">
<label class="formlabel" for="VarietyId">标的1代码</label>
<input id="UnderlyingCode" value="@tradeModel.UnderlyingCode" class="text-box" readonly type="text" name="UnderlyingCode" style="color: red; font-weight: bold;">
<input type="hidden" value="@tradeModel.UnderlyingId" id="UnderlyingId" name="UnderlyingId">
</div>
<div class="form-group maturity">
<label class="formlabel" for="MaturityDate">标的1到期日</label>
<input id="MaturityDate" class="text-box datepicker" type="datetime" value="" name="MaturityDate" disabled="">
<span class="field-validation-valid" data-valmsg-for="MaturityDate" data-valmsg-replace="true"></span>
</div>
if (UnderlyingModel2 != null)
{
<div class="form-group">
<label class="formlabel" for="VarietyId">标的2品种</label>
<input id="VarietyName2" value="@(UnderlyingModel2.UnderlyingType ?? "")" class="text-box" readonly type="text" name="VarietyName">
<input type="hidden" value="@(UnderlyingModel2.UnderlyingTypeId ?? 0)" id="VarietyId" name="VarietyId">
</div>
<div class="form-group">
<label class="formlabel" for="VarietyId">标的2代码</label>
<input id="UnderlyingCode2" value="@(UnderlyingModel2.UnderlyingCode ?? "")" class="text-box" readonly type="text" name="UnderlyingCode" style="color: red; font-weight: bold;">
<input type="hidden" value="@(UnderlyingModel2.id ?? 0)" id="UnderlyingId2" name="UnderlyingId">
</div>
<div class="form-group maturity">
<label class="formlabel" for="MaturityDate">标的2到期日</label>
<input id="MaturityDate2" class="text-box datepicker" type="datetime" value="@(UnderlyingModel2.MaturityDate ?? "")" name="MaturityDate" disabled="">
<span class="field-validation-valid" data-valmsg-for="MaturityDate" data-valmsg-replace="true"></span>
</div>
}
}
@if (tradeModel.id < 1)
{
<div class='form-group'>
<label class='formlabel' for='TradeNumber' style="display:block;">交易编号</label>
<input id="TradeNumber" class="text-box" readonly="readonly" style="width:250px!important;" type="text" value="" name="TradeNumber" tabindex="-1" placeholder="留空自动生成">
</div>
}
<div id="salesCommissionCtrl"></div>
</div>
<div class="well-right">
<div class="well-right-content">
<div class="form-group col-md-6">
<label class="formlabel" for="ClientId">客户名称</label>
<input id="ClientName" value="@tradeModel.ClientName" class="text-box" readonly type="text" name="ClientName">
<input type="hidden" value="@tradeModel.ClientId" id="ClientId" name="ClientId">
</div>
<div class="form-group col-md-6">
<label class="formlabel" for="ClientId">交易员</label>
<input id="TraderName" value="@tradeModel.TraderName" class="text-box" readonly type="text" name="TraderName">
<input type="hidden" value="@tradeModel.TraderId" class="text-box" readonly id="TraderId" name="TraderId">
</div>
<div class="form-group col-md-6">
<label class="formlabel" for="ClientId">簿记账户</label>
<input id="AssetBookName" value="@tradeModel.AssetBookName" class="text-box" readonly type="text" name="AssetBookName">
<input type="hidden" value="@tradeModel.AssetId" class="text-box" readonly id="AssetId" name="AssetId">
</div>
<div class="form-group col-md-6">
<label class="formlabel" for="TradeDate">成交日期</label>
<input id="TradeDate" class="text-box datepicker" type="text" value="@(tradeModel.TradeDate?.ToString("yyyy-MM-dd"))" name="TradeDate" data-val="true" data-val-required="成交日期 字段是必需的">
<span style="color:red">*</span><span class="field-validation-valid" data-valmsg-for="TradeDate" data-valmsg-replace="true"></span>
</div>
@if (PS.Config.Is浙期 && tradeModel.ActualExerciseDate != null)
{
<div class="form-group col-md-6">
<label class="formlabel" for="ActualExerciseDate">实际到期日期</label>
<input id="ActualExerciseDate" class="text-box datepicker" type="text" value="@(tradeModel.ActualExerciseDate.OtcFormatDate())" name="ActualExerciseDate" readonly>
@*<span style="color:red">*</span><span class="field-validation-valid" data-valmsg-for="ActualExerciseDate" data-valmsg-replace="true"></span>*@
</div>
}
<div class="form-group col-md-6">
<label class="formlabel" for="ExerciseDate">到期日期</label>
<input id="ExerciseDate" class="text-box datepicker" type="text" value="@(tradeModel.ExerciseDate?.ToString("yyyy-MM-dd"))" name="ExerciseDate" data-val="true" data-val-required="到期日期 字段是必需的">
<span style="color:red">*</span><span class="field-validation-valid" data-valmsg-for="ExerciseDate" data-valmsg-replace="true"></span>
</div>
<div class="form-group col-md-6">
<label class="formlabel" for="SettlementDate">结算日期</label>
<input id="SettlementDate" class="text-box datepicker" type="text" value="@(tradeModel.SettlementDate?.ToString("yyyy-MM-dd"))" name="SettlementDate" readonly>
</div>
<div class="form-group col-md-6">
<label class="formlabel">交易方向</label>
<select id="BuySell" name="BuySell">
<option value="卖出">卖出</option>
<option value="买入">买入</option>
</select><span style="color:red">*</span>
</div>
<div class="form-group col-md-6">
<label class="formlabel">多空方向</label>
<select id="OptionType" name="OptionType" style="border-color: #09bbbd !important;border-radius: 5px;height: 25px;width:120px">
<option value="看涨">多头</option>
<option value="看跌">空头</option>
</select>
<span style="color:red">*</span>
</div>
@*@Html.MyDecimalFor(Model=>Model.Trade.Lots, true)*@
<div class="form-group col-md-12 col-md-6">
<label class="formlabel" for="TradeAmount">手数</label>
<input id="Lots" class="text-box valid"
type="number" value="@tradeModel.Lots" name="Lots" data-val="true" /><span style="color:red">*</span>
<span class="field-validation-valid" data-valmsg-for="TradeAmount" data-valmsg-replace="true"></span>
</div>
<div class="form-group col-md-12 col-md-6">
<label class="formlabel" for="TradeAmount">成交数量</label>
<input id="TradeAmount" class="text-box valid"
type="number" value="@(tradeModel.TradeAmount.OtcFormatNotional())" name="TradeAmount" data-val="true" /><span style="color:red">*</span>
<span class="field-validation-valid" data-valmsg-for="TradeAmount" data-valmsg-replace="true"></span>
</div>
<div class="form-group col-md-12 col-md-6">
<label class="formlabel" for="Strike">交割价格</label>
<input id="Strike" class="text-box"
type="number" value="@(tradeModel.Strike.OtcFormatUmPrice())" name="Strike" data-val="true"> <span style="color:red">*</span>
<span class="field-validation-valid" data-valmsg-for="Strike" data-valmsg-replace="true"></span>
</div>
<div class="form-group col-md-12 col-md-6">
<label class="formlabel" for="Strike">期初标的价格</label>
<input id="InitialSpotPrice" class="text-box"
type="number" value="@(tradeModel.SpotPrice.OtcFormatUmPrice())" name="InitialSpotPrice" data-val="true"> <span style="color:red">*</span>
<span class="field-validation-valid" data-valmsg-for="InitialSpotPrice" data-valmsg-replace="true"></span>
<!--期权交易的复核界面没有刷新,先去掉
<a href="javascript:void(0)" onclick="refreshUnderlyingPrice()">
<span title="使用系统标的价格" class="glyphicon glyphicon-refresh"></span>
</a>
-->
</div>
<div class="form-group col-md-12 col-md-6">
<label class="formlabel" for="TradePrice">@(type)价值</label>
<input id="ForwardValue" class="text-box" readonly
type="text" name="ForwardValue" data-val="true">
</div>
@if (Model.ShowInitialMargin)
{
<div class="form-group col-md-12 col-md-6">
<label class="formlabel" for="InitialMargin">初始预付金</label>
<input name="InitialMargin" type="number" data-val="true" readonly value="@(tradeModel.InitialMargin.OtcFormatMoney())" />
</div>
}
<div class="form-group col-md-12 col-md-6">
<label class="formlabel" for="OpenCommission">开仓费用</label>
<input id="OpenCommission" class="text-box valid"
type="number" value="@(tradeModel.trade_forward.OpenCommission == 0 ? "" : tradeModel.trade_forward.OpenCommission.OtcFormatMoney(grouping: false))" name="trade_forward.OpenCommission" data-val="true" aria-required="true" aria-invalid="false">
<span style="color:red">* </span>
<span class="field-validation-valid" data-valmsg-for="trade_forward.OpenCommission" data-valmsg-replace="true"></span>
</div>
<div class="form-group col-md-12 col-md-6">
<label class="formlabel" for="TradePrice">开仓总费用</label>
<input id="TradePrice" class="text-box"
type="number" name="TradePrice" data-val="true">
</div>
<div class="form-group col-md-12 col-md-6">
<label class="formlabel" for="trade_forward.AnnualMarginRate">年化预付金成本</label>
<input readonly id="AnnualMarginRate" class="text-box"
type="number" value="@(tradeModel.trade_forward.AnnualMarginRate == 0 ? "" : tradeModel.trade_forward.AnnualMarginRate.OtcFormatMoney(grouping: false))" name="trade_forward.AnnualMarginRate">%
</div>
<div class="form-group col-md-12 col-md-6">
<label class="formlabel" for="trade_forward.AnnualStoragePrice">年化仓储成本</label>
<input readonly id="AnnualStoragePrice" class="text-box"
type="number" value="@(tradeModel.trade_forward.AnnualStoragePrice == 0 ? "" : tradeModel.trade_forward.AnnualStoragePrice.OtcFormat(OtcFormatFlag.tradeSinglePrice))" name="trade_forward.AnnualStoragePrice"> <label class="lblQuoteUnit"></label>
</div>
<div class="form-group col-md-12 col-md-6">
<label class="formlabel" for="NoRiskRate">无风险利率</label>
<input id="NoRiskRate" class="text-box valid" type="number" value="@tradeModel.NoRiskRate.OtcFormatMoney()" name="NoRiskRate" readonly="readonly" aria-invalid="false">%
<span class="field-validation-valid" data-valmsg-for="NoRiskRate" data-valmsg-replace="true"></span>
</div>
<div class="form-group col-md-12 col-md-6">
<label class="formlabel" for="MetaDic['IsSupplyForwardValue']">是否补充远期价值</label>
<select id="IsSupplyForwardValue" name="IsSupplyForwardValue" disabled onchange="changeSupplyForwardValue()">
@{
tradeModel.MetaDic.TryGetValue("IsSupplyForwardValue", out var isSupplyForwardValue);
<option value="0" @(isSupplyForwardValue == "0" ? "selected" :"")>否</option>
@if (PS.Config.ErpElement.ForwardValueIsSupplyOrPay != YLErp.Configuration.Enums.ForwardValueIsSupplyOrPay.Type2)
{
<option value="1" @(isSupplyForwardValue == "1" ? "selected" :"")>补偿</option>
}
@if (PS.Config.ErpElement.ForwardValueIsSupplyOrPay != YLErp.Configuration.Enums.ForwardValueIsSupplyOrPay.Type1)
{
<option value="-1" @(isSupplyForwardValue == "-1" ? "selected" : "")>支付</option>
}
}
</select>
<span class="field-validation-valid" data-valmsg-for="NoRiskRate" data-valmsg-replace="true"></span>
</div>
<div class="form-group col-md-12 col-md-6">
<label class="formlabel"></label>
<button class="btn btn-sm btn-outline-dark" type="button" disabled>均价结算设置</button>
</div>
</div>
<div class="field-remarks">
<div class="form-group col-md-6">
<label class="formlabel" for="Comments">备注</label>
<textarea id="Comments" class="text-box" rows="3" name="Comments" style="margin-top: 0px; margin-bottom: 0px; height: 47px;"></textarea>
<span class="field-validation-valid" data-valmsg-for="Comments" data-valmsg-replace="true"></span>
</div>
@*@Html.MyTextAreaFor(model => tradeModel.Comments, 3)*@
<div class="btn-wrap" style="margin: 0px auto; padding-top: 23px; text-align: right; float:left;">
@MyControls.Btn("复核", "btn_check()")
@MyControls.Btn("拒绝", "btn_Reject()")
@MyControls.Btn("关闭", "layer.closeMe()")
</div>
</div>
</div>
<div style="clear: both;"></div>
</div>
}
@await Html.PartialAsync("/Views/trade/_part/SalesCommission.cshtml", new SalesCommissionModel() { Disabled = true })