@model TradeViewModel @{ if (Model.IsStructureTrade) { return; } var tradeModel = Model.Trade; var isSubTrade = tradeModel.ParentTradeId > 0; var IsGenerateConfirmDoc = false; if (Model.IsGenerateConfirmDoc) { IsGenerateConfirmDoc = true; } else { IsGenerateConfirmDoc = !isSubTrade && (tradeModel.IsOption() || tradeModel.IsGroup == 1) && tradeModel.TradeType != "场内期权" && !Model.IsFromPositionReport && tradeModel.TradeStatus == ConsTrade.确认成交; } var isHedgingTrade = ConsTrade.TradeTypesForHedge.Contains(Model.Trade.TradeType); var canEdit = tradeModel.CanEdit() && !Model.IsFromPositionReport && CurUser.交易管理_交易编辑; var canEditNotEditPower = ConsTrade.已拒绝 == tradeModel.TradeStatus && !Model.IsFromPositionReport && tradeModel.TraderId == CurUser.UserId; var canBackTrade = CurUser.交易管理_交易回退 && Model.Trade.IsGroup != 2 && !Model.IsStructureTrade && !Model.IsFromPositionReport && new[] { ConsTrade.确认成交, ConsTrade.已平仓, ConsTrade.已执行, ConsTrade.已到期 }.Contains(tradeModel.TradeStatus); var btnName = PS.GetErpConfig().IsAutoSealAndUploadFiles && PS.GetErpConfig().IsAutoSealAfterGeneratedBook ? "生成确认书并用印" : "生成确认书"; }
@if (!Model.IsOnlyCloseButton) { if ((canEdit || canEditNotEditPower) && (Model.Trade.TradeType != "累计期权" || Model.autoCallObsercationList == null || !Model.autoCallObsercationList.Any())) { if (Model.Trade.IsGroup != 1 || Model.Trade.TradeType == "收益互换") { if (Model.Trade.IsGroup == 0) { @MyControls.Btn("修改", string.Format("editTrade('{0}','{1}')", tradeModel.EncryptId, tradeModel.TradeType)) } else { //如果组合交易主交易存在了结记录,则子交易不能修改 if (!Model.Trade.HasUnwindAction()) { @MyControls.Btn("修改", string.Format("editTrade('{0}','{1}')", tradeModel.EncryptId, tradeModel.TradeType)) } } } else { //如果组合交易存在了结记录,则主交易不能修改 if (!Model.Trade.HasUnwindAction()) { @MyControls.Btn("修改", string.Format("editGroupTrade('{0}')", tradeModel.id)) } } } else if (tradeModel.TradeStatus == ConsTrade.已执行 || tradeModel.TradeStatus == ConsTrade.已平仓 || tradeModel.TradeStatus == ConsTrade.已到期 || (tradeModel.TradeStatus == ConsTrade.确认成交 && tradeModel.HasPartialUnWind == 1)) { @MyControls.Btn("修改备注", string.Format("editTradeRemarkInfo('{0}','{1}')", tradeModel.EncryptId, tradeModel.TradeType)) } @* if (Model.canEditMaturityDate == true && !Model.IsFromPositionReport && tradeModel.TradeType != "收益互换" && Model.Trade.IsGroup == 0) { @MyControls.Btn("到期修改", "editTradeMaturityDate('" + tradeModel.EncryptId + "');") }*@ if (tradeModel.CanDelete() && !Model.IsFromPositionReport && CurUser.交易管理_交易删除 && (Model.Trade.IsGroup != 2 || Model.Trade.TradeType == "收益互换")) { @MyControls.Btn("删除", "deletetrade('" + tradeModel.EncryptId + "');") } if (!isHedgingTrade) { if (PS.Config.IsAutoGenerateContracts) { @MyControls.Btn("文件管理", "contractManagement('" + tradeModel.TradeNumber + "')") } else { @MyControls.Btn("文件管理", "fileManagement('" + tradeModel.TradeNumber + "');") } } if (IsGenerateConfirmDoc) { if (YLErp.PS.Config.ComponentVersion == YLErp.Configuration.ComponentVersion.MarketMaker) { @MyControls.Btn(btnName, "gJGenerateConfirmBook('" + tradeModel.id + "','" + tradeModel.HasGeneratedConfirmBook() + "')") } else if (YLErp.PS.Config.Company != YLErp.Configuration.CompanyEnum.渤海) { @MyControls.Btn(btnName, "toPdf('" + tradeModel.EncryptId + "')") } } if (canBackTrade) { @MyControls.Btn("交易回退", "backTrade('" + tradeModel.EncryptId + "')") } if (CurUser.交易管理_交易操作历史 && !isHedgingTrade) {
} if (CurUser.交易管理_分组设置 && tradeModel.IsGroup == 1 && tradeModel.ValidState != "InValid" && (tradeModel.TradeStatus == ConsTrade.确认成交 || tradeModel.TradeStatus == ConsTrade.提前终止拒绝)) { @MyControls.Btn("分组了结", "addGroupTradeCash('"+ tradeModel.id+ "')") } if (Model.Trade.TradeType.EndsWith("期权")) { } } else if (!isSubTrade && !isHedgingTrade && !string.IsNullOrWhiteSpace(Context.Request.Query["fromZiJinMingXi"])) { if (PS.Config.IsAutoGenerateContracts) { @MyControls.Btn("文件管理", "contractManagement('" + tradeModel.TradeNumber + "')") } else { @MyControls.Btn("文件管理", "fileManagement('" + tradeModel.TradeNumber + "');") } if (CurUser.交易管理_交易操作历史 && !isHedgingTrade) {
} } else { if (PS.Config.IsAutoGenerateContracts) { @MyControls.Btn("文件管理", "contractManagement('" + tradeModel.TradeNumber + "')") } else { @MyControls.Btn("文件管理", "fileManagement('" + tradeModel.TradeNumber + "');") } if (CurUser.交易管理_交易操作历史 && !isHedgingTrade) {
} } @if ( tradeModel.IsOption() || tradeModel.TradeType == "结构化产品") { if (tradeModel.TradeType != "雪球期权" || tradeModel.trade_snowball.PrepaymentUsed!=true) { } } @if (tradeModel.TradeStatus == ConsTrade.审批中 && CurUser.交易管理_交易新增 &&((tradeModel.IsGroup==2 &&tradeModel.IsApproval)|| tradeModel.IsGroup!=2)) { @MyControls.Btn("撤回", string.Format("tradewithdraw({0})", tradeModel.id)) } else if (tradeModel.TradeStatus == ConsTrade.平仓待复核 && CurUser.交易管理_交易平仓 && ((tradeModel.IsGroup == 2 && tradeModel.IsApproval) || tradeModel.IsGroup != 2)) { @MyControls.Btn("撤回", string.Format("traderevoke({0},{1})", tradeModel.id, 0)) } else if (tradeModel.TradeStatus == ConsTrade.行权待复核 && CurUser.交易管理_交易行权 && ((tradeModel.IsGroup == 2 && tradeModel.IsApproval) || tradeModel.IsGroup != 2)) { @MyControls.Btn("撤回", string.Format("traderevoke({0},{1})", tradeModel.id, 1)) } else if (tradeModel.TradeStatus == ConsTrade.互换待复核 && CurUser.交易管理_收益互换 && ((tradeModel.IsGroup == 2 && tradeModel.IsApproval) || tradeModel.IsGroup != 2)) { @MyControls.Btn("撤回", string.Format("traderevoke({0},{1})", tradeModel.id, 2)) }
@if (Model.Trade.IsGroup == 1 || (Model.Trade.IsGroup == 2 && Model.Trade.TradeType != "收益互换" && Model.OperationStatus != "待完成")) { if (!string.IsNullOrWhiteSpace(tradeModel.UnderlyingCode) && (tradeModel.TradeType != "结构化交易" || tradeModel.IsGroup == 1) && tradeModel.TradeType != "现金流交易" && valuedateBLL.SystemDate.TradeTrial && (tradeModel.TradeStatus == ConsTrade.新增待确认 || tradeModel.TradeStatus == ConsTrade.修改待确认)) { @MyControls.Btn("限额试算", "quotaTrial('" + (isSubTrade ? tradeModel.ParentTradeId : tradeModel.id) + "')") } if (tradeModel.CanConfirm() && CurUser.交易管理_交易新增) { @MyControls.Btn("确认交易", "confirmTrade('" + (isSubTrade && tradeModel.IsGroup == 0 ? tradeModel.ParentTradeId : tradeModel.id) + "')") } if (tradeModel.TradeStatus == ConsTrade.确认成交 && Model.Trade.IsGroup == 1 && Model.Trade.StructureType == "气囊结构") { @MyControls.Btn("敲入敲出设置", string.Format("setKnockInOutStatus({0})", tradeModel.id)) } if (tradeModel.TradeType == "收益互换") { @MyControls.Btn("多空组合检测", "checkTradeGroup('" + tradeModel.TradeNumber + "')") } } else if (!Model.IsOnlyCloseButton) { if (tradeModel.CanSwapTradeUnwind() && CurUser.交易管理_交易延期结算 && tradeModel.ExerciseDate <= valuedateBLL.ValueDate) { @MyControls.Btn("延期结算", string.Format("delaySettlement('{0}')", tradeModel.id)) } if (!string.IsNullOrWhiteSpace(tradeModel.UnderlyingCode) && tradeModel.TradeType != "结构化交易" && tradeModel.TradeType != "现金流交易" && valuedateBLL.SystemDate.TradeTrial && (tradeModel.TradeStatus == ConsTrade.新增待确认 || tradeModel.TradeStatus == ConsTrade.修改待确认)) { @MyControls.Btn("限额试算", "quotaTrial('" + (isSubTrade ? tradeModel.ParentTradeId : tradeModel.id) + "')") } if (tradeModel.CanConfirm() && CurUser.交易管理_交易新增) { @MyControls.Btn("确认交易", "confirmTrade('" + (isSubTrade && tradeModel.IsGroup == 0 ? tradeModel.ParentTradeId : tradeModel.id) + "')") } if (tradeModel.TradeStatus == ConsTrade.提前终止拒绝 && CurUser.交易管理_交易平仓) { @MyControls.Btn("提前终止放弃", "terminationBackToConfirmed('" + tradeModel.EncryptId + "')") } if (tradeModel.CanUnwind() && CurUser.交易管理_交易平仓) { @MyControls.Btn("平仓", string.Format("unWind('{0}','{1}',{2})", tradeModel.EncryptId, tradeModel.TradeType, Model.IsShowReCheckClose.ToString().ToLower())) } if (tradeModel.CanCustomizedTradeUnwind() && CurUser.交易管理_交易平仓) { @MyControls.Btn("平仓", string.Format("unWindCustomizedTrade('{0}')", tradeModel.EncryptId)) } if (tradeModel.CanSwapTradeUnwind() && CurUser.交易管理_交易平仓) { @MyControls.Btn("平仓", string.Format("unWindSwapTrade('{0}',{1})", tradeModel.EncryptId, 0)) } if (tradeModel.CanSwapTradeUnwind() && CurUser.交易管理_收益互换) { @MyControls.Btn("展期信息", string.Format("extensionTime('{0}','{1}')", tradeModel.EncryptId, tradeModel.TradeNumber)) } if (tradeModel.CanSwapTradeUnwind() && CurUser.交易管理_收益互换) { @MyControls.Btn("收益结算", string.Format("unWindSwapTrade('{0}',{1})", tradeModel.EncryptId, 1)) } var canExercise = false; var canExpire = tradeModel.CanExpire(); switch (tradeModel.TradeType) { case "障碍期权": if (tradeModel.trade_barrier_option.CanExercise()) { canExercise = tradeModel.CanExercise(); } else { canExpire = false; } break; case "雪球期权": //雪球期权敲入转期权后才可以执行到期 canExercise = false; canExpire = canExpire && tradeModel.trade_snowball.KnockInOutStatus == "KnockedIn" && tradeModel.trade_snowball.KIPayoffType > 0; break; case "凤凰期权": canExercise = false; canExpire = canExpire && tradeModel.trade_autocall.KnockInOutStatus == "KnockedIn" && tradeModel.trade_autocall.KIPayoffType > 0; break; default: canExercise = tradeModel.CanExercise(); break; } if (canExercise && CurUser.交易管理_交易行权) { @MyControls.Btn("行权", string.Format("executionTrade('{0}',false,false)", tradeModel.EncryptId)) } if (canExpire && CurUser.交易管理_交易到期) { @MyControls.Btn("执行到期", string.Format("executionTrade('{0}',false,true)", tradeModel.EncryptId)) } if (CurUser.交易管理_交易风险维护) { @MyControls.Btn("风险维护", "RiskHandle('" + tradeModel.EncryptId + "')") } if (CurUser.交易管理_交易观察价格维护) { if ((tradeModel.TradeType == "双鲨期权" || tradeModel.TradeType == "区间累积期权" || tradeModel.TradeType == "雪球期权" || tradeModel.TradeType == "凤凰期权" || tradeModel.TradeType == "气囊结构" || tradeModel.TradeType == "累计期权") && tradeModel.TradeStatus == "确认成交") { @MyControls.Btn("设置观察价格", "SetObservationPrice('" + tradeModel.EncryptId + "')") } else if (tradeModel.TradeType == "障碍期权" && tradeModel.TradeStatus == "确认成交" && (tradeModel.trade_barrier_option.BarrierType == "上升敲出" || tradeModel.trade_barrier_option.BarrierType == "下降敲出" || tradeModel.trade_barrier_option.BarrierType == "双障碍敲出" || ((tradeModel.trade_barrier_option.BarrierType == "上升敲入" || tradeModel.trade_barrier_option.BarrierType == "下降敲入" || tradeModel.trade_barrier_option.BarrierType == "双障碍敲入") && tradeModel.trade_barrier_option.KnockInOutStatus != "KnockedIn"))) { @MyControls.Btn("设置观察价格", "SetObservationPrice('" + tradeModel.EncryptId + "')") } } if (tradeModel.TradeType == "累计期权" && ConsTrade.TradeStatusAfterConfirmed.Contains(tradeModel.TradeStatus)) { @MyControls.Btn("换月调整", "setAccumulatorChange('" + tradeModel.EncryptId + "')") } }
@Html.HiddenFor(model => tradeModel.id)