国联下 PS.Config.IsGuoJun 恒为 false,以下分支只走 else 侧: - tradeDayConfirmList.cshtml: IsGuoJun if/else 收敛为 sendReport() 单行 - maturityDateReport.cshtml: 发送结算确认书按钮的 if/else 收敛为 SendEmailSettleBill() - maturityDateReport.cshtml: _chooseContractType 的三元收敛为 "sendReport()" 随之失去全部调用方的死函数一并删除(大小写不敏感全仓检索确认无其它引用, 包括无 window["xxx"] 之类的动态调用): - tradeDayConfirmList.js sendReportGuojun()(713-749) - maturityDateReport.cshtml sendReport_guojun()(913-939) 顺带清掉 percentColumnText.js 注释里对已删除文件 structure_dz.js 的引用。 注:后端 SendEmailSettleBill_Guojun / SendEmailUnwindReportGuojun 两个 Action 前端已无调用方,但属 C# 公开终结点,本次不动,留待单独决策。 净减 78 行。
1156 lines
57 KiB
Plaintext
1156 lines
57 KiB
Plaintext
@{
|
|
ViewBag.Title = "到期结算报告";
|
|
Layout = "~/Views/Shared/_MainLayout.cshtml";
|
|
var IsHongYuan = PS.Config.Is宏源;
|
|
bool isMarketMaker = YLErp.PS.Config.ComponentVersion == YLErp.Configuration.ComponentVersion.MarketMaker ? true : false;
|
|
var OptionTradeTypes = ConsTrade.OptionTradeTypes;
|
|
if (PS.Config.Is渤海||PS.Config.Company==CompanyEnum.广发商贸)
|
|
{
|
|
OptionTradeTypes = new List<string>(ConsTrade.OptionTradeTypes.ToArray().Append("远期"));
|
|
}
|
|
var isAutoSealAndUploadFiles = PS.GetErpConfig().IsAutoSealAndUploadFiles;
|
|
var isAutoSealAfterGenerateBook = PS.GetErpConfig().IsAutoSealAfterGeneratedBook;
|
|
}
|
|
@section CSS{
|
|
}
|
|
<style>
|
|
table input[type=text][disabled] {
|
|
border: none;
|
|
background-color: transparent !important;
|
|
text-align: left;
|
|
}
|
|
|
|
.ui-datepicker td > a.ui-state-active {
|
|
color: #363636 !important;
|
|
}
|
|
|
|
.sealTag {
|
|
float: left;
|
|
width: 50%;
|
|
text-align: left;
|
|
padding: 10px 20px 0;
|
|
}
|
|
</style>
|
|
@section JS{
|
|
<script src="~/Scripts/app/tradeHelper.js?v=@HtmlUtil.JsVersion"></script>
|
|
<script type="text/javascript">
|
|
var settleDocMode = "@valuedateBLL.SystemDate.SettleDocMode";
|
|
var IsHongYuan = "@IsHongYuan" == "True";
|
|
var allTradeCashIds = "";
|
|
var g_grid={};
|
|
var selectConfirmationBookTemplate = "@GlobalConfig.SelectConfirmationBookTemplate" === "True";
|
|
var templateNames = @Json.Serialize(ViewBag.TemplateNames as IEnumerable<string>);
|
|
var ContractTypeCtrl;
|
|
var ReportId;
|
|
var IsZheQi = "@PS.Config.Is浙期" === "True";
|
|
|
|
const page = {
|
|
IsUseDisplayNotional: "@PS.Config.IsUseDisplayNotional" === "True",
|
|
IsAutoSealAndUploadFiles: "@isAutoSealAndUploadFiles" === "True",
|
|
IsAutoSealAfterGenerateBook: "@isAutoSealAfterGenerateBook" === "True"
|
|
}
|
|
$(function () {
|
|
var curDate = "@valuedateBLL.ValueDate.ToString("yyyy-MM-dd")";
|
|
var PostData = { ValidState: $("#ValidState").val(), ExerciseDateStart: curDate, UnWindDateStart: curDate, UnWindDateEnd: curDate, TradeTypes: '@string.Join(",", OptionTradeTypes)' };
|
|
|
|
|
|
|
|
$("#DateFromExerciseDate").datepicker({
|
|
changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true,
|
|
onSelect: function (selectedDate) {//选择日期后执行的操作
|
|
setValidation("DateToExerciseDate", selectedDate, false);
|
|
}
|
|
});
|
|
$("#DateToExerciseDate").datepicker({
|
|
changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true,
|
|
onSelect: function (selectedDate) {//选择日期后执行的操作
|
|
setValidation("DateFromExerciseDate", selectedDate, true);
|
|
}
|
|
});
|
|
|
|
$("#DateFromExerciseDate").val(curDate);
|
|
$("#DateToExerciseDate").val();
|
|
|
|
setValidation("DateFromExerciseDate", $("#DateToExerciseDate").val(), true);
|
|
setValidation("DateToExerciseDate", $("#DateFromExerciseDate").val(), false);
|
|
|
|
$("#DateFromUnWindDate").datepicker({
|
|
changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true,
|
|
onSelect: function (selectedDate) {//选择日期后执行的操作
|
|
setValidation("DateToUnWindDate", selectedDate, false);
|
|
}
|
|
});
|
|
$("#DateToUnWindDate").datepicker({
|
|
changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true,
|
|
onSelect: function (selectedDate) {//选择日期后执行的操作
|
|
setValidation("DateFromUnWindDate", selectedDate, true);
|
|
}
|
|
});
|
|
|
|
$("#DateFromUnWindDate").val(curDate);
|
|
$("#DateToUnWindDate").val(curDate);
|
|
|
|
setValidation("DateFromUnWindDate", $("#DateToUnWindDate").val(), true);
|
|
setValidation("DateToUnWindDate", $("#DateFromUnWindDate").val(), false);
|
|
|
|
|
|
if(page.IsAutoSealAndUploadFiles){
|
|
$("#DateFromSealDate").datepicker({
|
|
changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true,
|
|
onSelect: function (selectedDate) {//选择日期后执行的操作
|
|
setValidation("DateToSealDate", selectedDate, false);
|
|
}
|
|
});
|
|
$("#DateToSealDate").datepicker({
|
|
changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true,
|
|
onSelect: function (selectedDate) {//选择日期后执行的操作
|
|
setValidation("DateFromSealDate", selectedDate, true);
|
|
}
|
|
});
|
|
$("#DateToSealDate").val(curDate);
|
|
$("#DateFromSealDate").val(curDate);
|
|
|
|
setValidation("DateFromSealDate", $("#DateToSealDate").val(), true);
|
|
setValidation("DateToSealDate", $("#DateFromSealDate").val(), false);
|
|
}
|
|
|
|
@Html.Raw(JqGridSimple.OutGrid("/trade/todayMaturityTradeReportQuery", isMultiSelect: true));
|
|
g_grid = jQuery('#listGrid');
|
|
function keyEnter(event) {
|
|
try {
|
|
var e = event ? event : (window.event ? window.event : null);
|
|
if (e.keyCode == 13) {
|
|
SearchClick(true);
|
|
}
|
|
} catch (e) {
|
|
|
|
}
|
|
}
|
|
document.onkeydown = keyEnter;
|
|
let underlyingCtrl = new tradeHelper.UnderlyingSelectCtrl('#UnderlyingId')
|
|
.setFlag(tradeHelper.UnderlyingSelectFlag.OtcTrade);
|
|
|
|
ContractTypeCtrl = new ContractTypeCtrl(document.getElementById('ContractTypeCtrl'));
|
|
});
|
|
|
|
function setValidation(elId,selectedDate,isSetMax) {
|
|
if (isSetMax){
|
|
var time = selectedDate.split("-");
|
|
var year = time[0];
|
|
var month = time[1]-1;
|
|
var day = time[2];
|
|
$("#" + elId).datepicker(
|
|
'option', 'maxDate', new Date(year, month, day)
|
|
);
|
|
} else {
|
|
var time = selectedDate.split("-");
|
|
var year = time[0];
|
|
var month = time[1]-1;
|
|
var day = time[2];
|
|
$("#" + elId).datepicker(
|
|
'option', 'minDate', new Date(year, month, day)
|
|
);
|
|
}
|
|
}
|
|
|
|
var i = 0;
|
|
var colModelGrid = [
|
|
{
|
|
name: '', label: '操作', index: '', sortIndex: i++, width: 200, align: 'left', formatter: showToolName
|
|
}, {
|
|
name: 'id', label: 'id', index: 'id', sortIndex: i++, width: 0, align: 'left', hidden: true, optionHide: true
|
|
}, {
|
|
name: 'trade.id', label: 'tradeId', index: 'trade.id', sortIndex: i++, width: 0, align: 'left', hidden: true, optionHide: true
|
|
}, {
|
|
name: 'trade_cash.id', label: 'tradeCashId', index: 'trade_cash.id', sortIndex: i++, width: 0, align: 'left', hidden: true, optionHide: true
|
|
}, {
|
|
name: 'trade.EncryptId', label: 'EncryptId', index: 'trade.EncryptId', sortIndex: i++, width: 0, align: 'left', hidden: true, optionHide: true
|
|
}, {
|
|
name: 'trade.IsMoneynessOption', label: 'IsMoneynessOption', index: 'trade.IsMoneynessOption', sortIndex: i++, width: 0, align: 'left', hidden: true, optionHide: true
|
|
}, {
|
|
name: 'trade_contract_r.id', label: 'trade_contract_r.id', index: 'trade_contract_r.id', sortIndex: i++, width: 0, align: 'left', hidden: true, optionHide: true
|
|
|
|
},{
|
|
name: 'trade.TradeNumber', label: '交易编号', index: 'trade.TradeNumber', sortIndex: i++, width: 200, align: 'left'
|
|
}, {
|
|
name: 'ConfirmContractR.ContractCode', label: '合约编号', index: 'ConfirmContractR.ContractCode', sortIndex: i++, width: 200, align: 'left', formatter: ShowStructFormater
|
|
}, {
|
|
name: 'trade_contract_r.TradeClearCode', label: '结算确认书编号', index: 'trade_contract_r.TradeClearCode', sortIndex: i++, width: 200, align: 'left',
|
|
formatter: function (cellValue, options, rowObject) {
|
|
var html = "";
|
|
if (cellValue) {
|
|
html += "<a href='javascript:;' title='修改结算确认书编号' id='bt_" + rowObject.trade_contract_document.EncryptId + "' onclick='setControl(\"" + rowObject.trade_contract_document.EncryptId + "\")' ><i class='fa fa-pencil-square-o'></i></a>";
|
|
html += "<input style='width: 100%;' id='ip_" + rowObject.trade_contract_document.EncryptId + "' type='text' value='" + cellValue + "' disabled />";
|
|
} else {
|
|
html = "";
|
|
}
|
|
return html;
|
|
}
|
|
}, {
|
|
name: 'trade.ClientName', label: '客户名称', index: 'trade.ClientName', sortIndex: i++, width: 180, align: 'left'
|
|
}, {
|
|
name: 'underlying_manager.UnderlyingName', label: '标的名称', index: 'underlying_manager.UnderlyingName', sortIndex: i++, width: 80, align: 'left'
|
|
}, {
|
|
name: 'trade.UnderlyingCode', label: '标的代码', index: 'trade.UnderlyingCode', sortIndex: i++, width: 80, align: 'left', formatter: ShowStructFormater
|
|
}, {
|
|
name: 'trade.TradeType', label: '结构类型', index: 'trade.TradeType', sortIndex: i++, width: 70, align: 'left',
|
|
formatter: function (cellvalue, options, rowObject) {
|
|
rowObject = rowObject.trade;
|
|
return rowObject.StructureType && rowObject.IsGroup != 2 ? rowObject.StructureType : rowObject.TradeType;
|
|
}
|
|
}, {
|
|
name: 'TradeType2', label: 'TradeType2', index: 'TradeType2', sortIndex: i++, optionHide: true, hidden: true,
|
|
formatter: function (cellvalue, options, rowObject) {
|
|
rowObject = rowObject.trade;
|
|
return rowObject.TradeType;
|
|
}
|
|
}, {
|
|
name: 'trade.OptionType', label: '看涨看跌', index: 'trade.OptionType', sortable: false, sortIndex: i++, width: 70, align: 'left'
|
|
}, {
|
|
name: 'trade.ExerciseModeCn', label: '行权方式', index: 'trade.ExerciseModeCn', sortable: false, sortIndex: i++, width: 70, align: 'left'
|
|
}, {
|
|
name: 'trade.OriginalStockEqvNotionalV2', label: '交易起始名义本金', index: 'trade.OriginalStockEqvNotionalV2', sortable: false, sortIndex: i++, width: 100, align: 'right', formatter: otcformat.trading.StockEqvNotional
|
|
}, {
|
|
name: 'trade_cash.UnwindTradeAmount', label: '了结数量', index: 'trade_cash.UnwindTradeAmount', width: 90, align: 'right', sortable: false, sortIndex: i++, formatter: unwindTradeAmountFormat
|
|
}, {
|
|
name: 'trade.Strike', label: '执行价格', index: 'trade.Strike', sortable: false, sortIndex: i++, width: 90, align: 'right', formatter: calcActualStrike
|
|
}, {
|
|
name: 'trade.BuySell', label: '交易方向', index: 'trade.BuySell', sortable: false, sortIndex: i++, width: 70, align: 'left'
|
|
}, {
|
|
name: 'trade.TradeDate', label: '开仓起始日', index: 'trade.TradeDate', sortable: false, sortIndex: i++, width: 90, align: 'left', formatter: 'date'
|
|
}, {
|
|
name: 'trade.TradeStatus', label: '交易状态', index: 'trade.TradeStatus', sortable: false, sortIndex: i++, width: 90, align: 'left', formatter: ShowTradeStatusFormater
|
|
}, {
|
|
name: 'trade.ExerciseDate', label: '期权到期日', index: 'trade.ExerciseDate', sortable: false, sortIndex: i++, width: 90, align: 'left', formatter: 'date'
|
|
}, {
|
|
name: 'trade_cash.ValueDate', label: '实际行权日', index: 'trade_cash.ValueDate', sortable: false, sortIndex: i++, width: 90, align: 'left', formatter: 'date'
|
|
}, {
|
|
name: 'trade.InitialSpotPrice', label: '调整后的期初价格', index: 'trade.InitialSpotPrice', sortable: false, sortIndex: i++, width: 80, align: 'right', formatter: otcformat.trading.umprice
|
|
}, {
|
|
name: 'trade_cash.FinalPrice', label: '期末价格', index: 'trade_cash.FinalPrice', sortable: false, sortIndex: i++, width: 80, align: 'right', formatter: otcformat.trading.umprice
|
|
}, {
|
|
name: 'trade_cash.Amount1', label: '结算收益', index: 'trade_cash.Amount1', sortable: false, sortIndex: i++, width: 80, align: 'right', formatter: calcInMoneyPerContract
|
|
}, {
|
|
name: 'trade_cash.Amount', label: '了结总额', index: 'trade_cash.Amount', sortable: false, sortIndex: i++, width: 150, align: 'right', formatter: otcformat.trading.tradePrice
|
|
},{
|
|
name: 'trade.OptName', label: '交易操作者', index: 'trade.OptName', width: 70, align: 'left'
|
|
}, {
|
|
name: 'trade_cash.OptDate', label: '交易操作时间', index: 'trade_cash.OptDate', width: 90, align: 'left', formatter: 'date'
|
|
}, {
|
|
name: 'trade_contract_document.OptName', label: '操作人', index: 'trade_contract_document.OptName', width: 70, align: 'left'
|
|
}, {
|
|
name: 'trade_contract_document.OptDate', label: '操作时间', index: 'trade_contract_document.OptDate', width: 90, align: 'left', formatter: 'date'
|
|
}];
|
|
if ("@PS.Config.ErpElement.ConfirmBookStampStatus".toLowerCase() == "true") {
|
|
var colObj = {
|
|
name: '',
|
|
label: '用印扫描件',
|
|
index: '',
|
|
width: 250,
|
|
align: 'left',
|
|
formatter: function (cellValue, options, rowObject) {
|
|
var encryptId = "";
|
|
var stampDocumentFileName = "";
|
|
var status = "";
|
|
if (rowObject.trade_contract_document) {
|
|
encryptId = rowObject.trade_contract_document.EncryptId;
|
|
stampDocumentFileName = rowObject.trade_contract_document.StampDocumentFileName;
|
|
status = rowObject.trade_contract_document.Status;
|
|
}
|
|
var templateHtml = "";
|
|
if(page.IsAutoSealAndUploadFiles && !page.IsAutoSealAfterGeneratedBook){
|
|
templateHtml += "<input type=\"button\" class=\"wentiEdit\" {2} value=\"用印\" />";
|
|
}
|
|
templateHtml += "<input type=\"button\" class=\"wentiEdit\" {0} value=\"上传\" />" +
|
|
"<input type=\"button\" class=\"wentiEdit\" {1} value=\"下载\" />";
|
|
var html = (templateHtml)
|
|
.template(
|
|
(status ? 'onclick="upload(\'{0}\',\'{1}\')"'.template(encryptId, rowObject.trade_cash.id) : "disabled"),
|
|
(stampDocumentFileName ? 'onclick="main.downloadFiles(\'{0}\')"'.template(stampDocumentFileName) : "disabled"));
|
|
if(page.IsAutoSealAndUploadFiles && !page.IsAutoSealAfterGeneratedBook) {
|
|
html = (templateHtml)
|
|
.template(
|
|
(rowObject.MetaDic.ContractDocUrl ? 'onclick="colModelGrid.upload(\'{0}\',\'{1}\')"'.template(rowObject.MetaDic.ContractEncryptId, rowObject.EncryptId) : "disabled"),
|
|
(rowObject.MetaDic.StampDocumentFileName ? 'onclick="main.downloadFiles(\'{0}\')"'.template(rowObject.MetaDic.StampDocumentFileName) : "disabled"),
|
|
('onclick="SealContract(\'{0}\')"'.template(rowObject.trade_contract_r.id))
|
|
);
|
|
}
|
|
if ("@PS.Config.ErpElement.ConfirmBookStampStatus" == "True" && status) {
|
|
html = html + (status == "草稿" ? "未用印" : status);
|
|
}
|
|
return html;
|
|
}
|
|
};
|
|
colModelGrid.splice(1, 0, colObj)
|
|
|
|
function setControl(encryptId) {
|
|
var button = "#bt_" + encryptId;
|
|
var inputSelect = "#ip_" + encryptId;
|
|
if ($(inputSelect).prop("disabled")) {
|
|
$(inputSelect).prop("disabled", false);
|
|
$(button).prop("title", "保存结算确认书编号");
|
|
$(button).html("<i class='fa fa-floppy-o'></i>");
|
|
} else {
|
|
changeCode(encryptId, $(inputSelect).val(), function () {
|
|
$(button).html("<i class='fa fa-pencil-square-o'></i>");
|
|
$(inputSelect).prop("disabled", true);
|
|
$(button).prop("title", "修改结算确认书编号");
|
|
});
|
|
}
|
|
}
|
|
|
|
function changeCode(encryptId, code, callback) {
|
|
var data = new FormData();
|
|
data.append("encryptId", encryptId);
|
|
data.append("ContractCode", code);
|
|
$.ajax({
|
|
type: "Post",
|
|
//async: false,
|
|
url: "/trade/UploadContractFile",
|
|
contentType: false,
|
|
processData: false,
|
|
data: data,
|
|
success: function (res) {
|
|
main.message(res.msg);
|
|
if (!res.success) {
|
|
} else {
|
|
callback();
|
|
}
|
|
},
|
|
beforeSend(jqXHR) {
|
|
main.waitMe(true);
|
|
},
|
|
complete(jqXHR, textStatus) {
|
|
main.waitMe(false);
|
|
}
|
|
});
|
|
}
|
|
|
|
function upload(encryptId, sendMail) {
|
|
var srcurl = "/TradeConfirmBook/confirmBookUpload/?Id=" + encryptId + "&SendMailId=" + sendMail;
|
|
main.open("上传确认书", srcurl, {
|
|
area: ['500px', '420px'],
|
|
end: SearchClick(true)
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
if (page.IsAutoSealAndUploadFiles) {
|
|
|
|
var colObj1 = {
|
|
name: 'SealResult',
|
|
label: '电子章用印结果',
|
|
index: 'SealResult',
|
|
width: 150,
|
|
align: 'center',
|
|
formatter: function (cellValue, options, rowObject) {
|
|
if (rowObject.SealResult == "失败") {
|
|
var html = ("<span style='color:red;'>失败</span><a href='javascript:;' style='color:blue;' title='查看失败详情' onclick=\"ViewErrInfo('{0}')\" ><详情></a>")
|
|
.template(rowObject.ContractCode);
|
|
return html;
|
|
}
|
|
else {
|
|
return rowObject.SealResult;
|
|
}
|
|
}
|
|
};
|
|
var colObj2 = {
|
|
name: 'SealTime',
|
|
label: '电子章用印时间',
|
|
index: 'SealTime',
|
|
width: 150,
|
|
align: 'left',
|
|
formatter: function (cellValue, options, rowObject) {
|
|
return rowObject.SealTime;
|
|
}
|
|
};
|
|
colModelGrid.push(colObj1, colObj2);
|
|
}
|
|
|
|
function ViewErrInfo(code) {
|
|
main.post("/trade/GetSealErrMsg/", {code:code},
|
|
{
|
|
success: function (resp) {
|
|
main.alert(resp.msg);
|
|
}
|
|
});
|
|
}
|
|
|
|
function ShowTradeStatusFormater(cellValue, options, rowObject) {
|
|
if (rowObject.trade_cash != undefined && rowObject.trade_cash.Action != undefined && rowObject.trade_cash.Action == "系统操作-平仓费") {
|
|
return "@ConsTrade.已平仓";
|
|
}
|
|
else {
|
|
return rowObject.trade.TradeStatus;
|
|
}
|
|
}
|
|
|
|
function gridComplete() {
|
|
var jgrid = $(this);
|
|
var rowNum = parseInt(jgrid.getGridParam('records'), 10);
|
|
if (rowNum > 0) {
|
|
allTradeCashIds = arguments[0].Sum == null ? "" : arguments[0].Sum.AllTradeCashIds;
|
|
$(".ui-jqgrid-sortable").css("text-align", "center");
|
|
} else {
|
|
$(".ui-jqgrid-sdiv").hide();
|
|
}
|
|
main.setcolumnChooser(jQuery('#listGrid'), "@configcolumn_data.已行权报告");
|
|
$(".selftooltip").tooltip({ html: true, show: 50000, trigger: "hover" });
|
|
}
|
|
|
|
function ShowStructFormater(cellValue, options, rowObject) {
|
|
var html;
|
|
//if (rowObject.trade.TradeType == "结构化交易") {
|
|
// html = "<a href=\"#\" class=\"selftooltip\" style=\"z-index:10000000\" data-toggle=\"tooltip\" title=\"{1}\">{0}</a>"
|
|
// .template(cellValue || '', setStructTable(rowObject.trade));
|
|
// return html;
|
|
//}
|
|
if (rowObject.trade.TradeType == "合成价差期权") {
|
|
html =
|
|
"<a href=\"#\" class=\"selftooltip\" style=\"z-index:10000000\" data-toggle=\"tooltip\" title=\"{1}\">{0}</a>"
|
|
.template(cellValue || '', rowObject.trade.SyntheticUnderlyingTipsInfo);
|
|
return html;
|
|
}
|
|
return cellValue || '';
|
|
}
|
|
|
|
function unwindTradeAmountFormat(cellValue, options, rowObject) {
|
|
var amount = rowObject.trade_cash.Action == "系统操作-行权费" ? (rowObject.trade_cash.TradeAmount == null || rowObject.trade_cash.TradeAmount == undefined ? 0 : rowObject.trade_cash.TradeAmount) : (rowObject.trade_cash.UnwindTradeAmount == null || rowObject.trade_cash.UnwindTradeAmount == undefined ? 0 : rowObject.trade_cash.UnwindTradeAmount);
|
|
|
|
return otcformat.trading.notional(page.IsUseDisplayNotional ? amount * (rowObject.CountRatio || 1) : amount);
|
|
}
|
|
|
|
function setStructTable(rowObject) {
|
|
structTrades = rowObject.SubTrades;
|
|
var trhtml = "";
|
|
var trcode = "<td>标的代码</td><td colspan='{0}'>{1}</td>".template(structTrades.length, rowObject.UnderlyingCode);
|
|
var trstrike = "<td>执行价格</td>";
|
|
var trbuysell = "<td>买卖方向</td>";
|
|
var trvarity = "<td>结构类型</td><td colspan='{0}'>{1}</td>".template(structTrades.length, rowObject.StructureType);
|
|
var trstockeqvnotional = "<td>名义本金</td><td colspan='{0}'>{1}</td>".template(structTrades.length, otcformat.trading.StockEqvNotional(new Number(rowObject.StockEqvNotional) / 10000) + "万");
|
|
var trmaturedate = "<td>到期日期</td><td colspan='{0}'>{1}</td>".template(structTrades.length, moment(rowObject.ExerciseDate).format("YYYY-MM-DD"));
|
|
if (structTrades) {
|
|
for (var i = 0; i < structTrades.length; i++) {
|
|
trstrike += "<td>{0}</td>".template(structTrades[i].IsMoneynessOption === "是" ? otcformat.trading.premiumRateP(new Number(structTrades[i].Strike)) : otcformat.trading.umprice(structTrades[i].Strike));
|
|
trbuysell += "<td>{0}</td>".template(structTrades[i].BuySell);
|
|
}
|
|
}
|
|
trhtml = "<tr>{0}</tr>".template(trcode);
|
|
trhtml += "<tr>{0}</tr>".template(trstrike);
|
|
trhtml += "<tr>{0}</tr>".template(trbuysell);
|
|
trhtml += "<tr>{0}</tr>".template(trstockeqvnotional);
|
|
trhtml += "<tr>{0}</tr>".template(trmaturedate);
|
|
trhtml += "<tr>{0}</tr>".template(trvarity);
|
|
|
|
var showTable = "<table class='table'>{0}<table>".template(trhtml);
|
|
|
|
return showTable;
|
|
}
|
|
|
|
function showToolName(cellValue, options, rowObject) {
|
|
var color = "width:auto";
|
|
var title = "查看";
|
|
var html = "";
|
|
|
|
title = page.IsAutoSealAndUploadFiles ? "生成并用印" : "生成结算确认书";
|
|
|
|
var isWait = (rowObject.SealResult == "用印等待中");
|
|
@if (isMarketMaker)
|
|
{
|
|
<text>
|
|
html = html + "<input type=\"button\" class=\"wentiEdit\" title='{2}' onclick=\"GenerateSettleBill('{0}','{4}','{3}',{5})\" value=\"{2}\" />"
|
|
.template(rowObject.trade_cash.id, color, title, rowObject.ContractDocUrl,rowObject.trade.id,isWait);
|
|
</text>
|
|
}
|
|
else
|
|
{
|
|
<text>
|
|
if (settleDocMode == "@valuedate.SettleDocModeSingle") {
|
|
html = html + "<input type=\"button\" class=\"wentiEdit\" title='{2}' onclick=\"GenerateSettleBillForSingle('{0}','{3}',{4})\" value=\"{2}\" />"
|
|
.template(rowObject.trade_cash.id, color, title, rowObject.ContractDocUrl,isWait);
|
|
}
|
|
</text>
|
|
}
|
|
if ("@YLErp.PS.Config.Is光大光子".toLowerCase() == "false") {
|
|
if (rowObject.ContractDocUrl != undefined && rowObject.ContractDocUrl != null && rowObject.ContractDocUrl != "") {
|
|
html +=
|
|
"<input type=\"button\" class=\"wentiEdit\" title='下载结算确认书' onclick=\"DownLoadDoc('{0}')\" value=\"{1}\" />"
|
|
.template(rowObject.ContractDocUrl, "下载");
|
|
} else {
|
|
html +=
|
|
"<input type=\"button\" class=\"wentiEdit\" title='未生成结算确认书' disabled='disabled' value=\"{0}\" />"
|
|
.template("下载");
|
|
}
|
|
}
|
|
return html;
|
|
}
|
|
|
|
//下载清算确认书
|
|
function DownLoadDoc(res) {
|
|
if (IsHongYuan) {
|
|
var len = res.lastIndexOf(".");
|
|
if (len >= 0) {
|
|
res = res.substr(0, len);
|
|
}
|
|
var res2 = res + ".xlsx";
|
|
window.open(res2);
|
|
} else {
|
|
if (isExistFile(res)) {
|
|
window.open(res);
|
|
} else {
|
|
res += "x";
|
|
window.open(res);
|
|
}
|
|
}
|
|
}
|
|
|
|
//判断文件是否存在
|
|
function isExistFile(url) {
|
|
var result = false;
|
|
main.post("/TradeConfirmBook/ExistFile", { filePath: url }, { async: false }).done(function (res) {
|
|
if (res && res.obj) {
|
|
result = true;
|
|
}
|
|
});
|
|
return result;
|
|
}
|
|
|
|
var g_curdate = new moment().format("YYYY-MM-DD");
|
|
|
|
function SetAsExpired() {
|
|
var selectedIds = jQuery('#listGrid').jqGrid('getGridParam', 'selarrrow');
|
|
if (selectedIds.length == 0) {
|
|
main.message("请选择需要标记为到期的交易");
|
|
return;
|
|
}
|
|
|
|
//批量到期
|
|
main.confirm("确认将所有选中交易的标记为到期?",
|
|
function () {
|
|
var ggrid = jQuery('#listGrid');
|
|
var ors = [];
|
|
for (var i = 0; i < selectedIds.length; i++) {
|
|
var or = ggrid.getRowData(selectedIds[i]).id;
|
|
ors.push(or);
|
|
}
|
|
main.post("/trade/MultipleTradeExpireConfirm/", { tradeids: ors }).done(function () {
|
|
reloadMaturityTrade();
|
|
});
|
|
});
|
|
}
|
|
|
|
function reloadMaturityTrade() {
|
|
//重新加载
|
|
SearchClick();
|
|
}
|
|
|
|
function SearchClick(isSearchclick) {
|
|
var listGrid = $('#listGrid');
|
|
listGrid.appendPostData({ TradeNumber: $("#TradeNumber").val() });
|
|
listGrid.appendPostData({ ContractCode: $("#ContractCode").val() });
|
|
listGrid.appendPostData({ AssetIds: $("#AssetId").val() == null ? "" : $("#AssetId").val().join() });
|
|
listGrid.appendPostData({ AssetIdGroupList: $("#GroupId").val() });
|
|
listGrid.appendPostData({ UnderlyingIds: $("#UnderlyingId").val() == null ? "" : $("#UnderlyingId").val().join(",") });
|
|
listGrid.appendPostData({ ClientIds: $("#ClientId").val() == null ? "" : $("#ClientId").val().join(",") });
|
|
listGrid.appendPostData({ TradeType: $("#TradeType").val() });
|
|
listGrid.appendPostData({ ExerciseMode: $("#ExerciseMode").val() });
|
|
|
|
listGrid.appendPostData({ MaturityDateStart: $("#DateFromMaturityDate").val() });
|
|
listGrid.appendPostData({ MaturityDateEnd: $("#DateToMaturityDate").val() });
|
|
listGrid.appendPostData({ ExerciseDate: $("#ExerciseDate").val() });
|
|
listGrid.appendPostData({ ExerciseDateStart: $("#DateFromExerciseDate").val() });
|
|
listGrid.appendPostData({ ExerciseDateEnd: $("#DateToExerciseDate").val() });
|
|
listGrid.appendPostData({ UnWindDateStart: $("#DateFromUnWindDate").val() });
|
|
listGrid.appendPostData({ UnWindDateEnd: $("#DateToUnWindDate").val() });
|
|
|
|
var tradeTypes = $("#TradeTypes").val() == null
|
|
? '@string.Join(",", ConsTrade.OptionTradeTypes)'
|
|
: $("#TradeTypes").val().join(",");
|
|
listGrid.appendPostData({ TradeTypes: tradeTypes });
|
|
|
|
var reqTradeStatus = $("#TradeStatus").val() == null
|
|
? "@ConsTrade.确认成交,@ConsTrade.新增待确认,@ConsTrade.期初价格已确认,@ConsTrade.修改待确认,@ConsTrade.已执行,@ConsTrade.已平仓,@ConsTrade.已到期"
|
|
: $("#TradeStatus").val().join(",");
|
|
if (!reqTradeStatus) {
|
|
reqTradeStatus = "@ConsTrade.确认成交,@ConsTrade.新增待确认,@ConsTrade.期初价格已确认,@ConsTrade.修改待确认,@ConsTrade.已执行,@ConsTrade.已平仓,@ConsTrade.已到期";
|
|
}
|
|
|
|
listGrid.appendPostData({ TradeStatus: reqTradeStatus });
|
|
|
|
if (page.IsAutoSealAndUploadFiles) {
|
|
listGrid.appendPostData({ SealResults: $("#SealResults").val() });
|
|
listGrid.appendPostData({ SealDateStart: $("#DateFromSealDate").val() });
|
|
listGrid.appendPostData({ SealDateEnd: $("#DateToSealDate").val() });
|
|
|
|
}
|
|
if (typeof (isSearchclick) != "undefined" && isSearchclick) {
|
|
//点击搜索时默认第一页
|
|
listGrid.jqGrid('setGridParam', {
|
|
page: 1
|
|
});
|
|
}
|
|
listGrid.trigger('reloadGrid');
|
|
}
|
|
|
|
function showcolumnChooser() {
|
|
var jgrid = jQuery('#listGrid');
|
|
main.showcolumnChooser(jgrid,"@configcolumn_data.已行权报告" );
|
|
}
|
|
|
|
@if (isMarketMaker)
|
|
{
|
|
<text>
|
|
function GenerateSettleBill(id,tradeId, contractDocUrl,isWait) {
|
|
if (page.IsAutoSealAndUploadFiles) {
|
|
//if (isWait) {
|
|
// if (!confirm("用印正在等待中重新生成将中断用印并重新进行自动用印(如有),是否确认操作?")) {
|
|
// return;
|
|
// }
|
|
//}
|
|
if (!confirm("重新生成将覆盖已有的交易确认书并重新进行自动用印(如有),是否确认操作?")) {
|
|
return;
|
|
}
|
|
}
|
|
if (contractDocUrl != "undefined" && contractDocUrl) {
|
|
|
|
if (!page.IsAutoSealAndUploadFiles){
|
|
if (!confirm("确认覆盖已有的结算确认书?")) {
|
|
return;
|
|
}
|
|
}
|
|
|
|
}
|
|
var tradeCashIds = [];
|
|
var tradeIds = [];
|
|
if (id) {
|
|
tradeCashIds.push(id);
|
|
tradeIds.push(tradeId);
|
|
} else {
|
|
var jgrid = jQuery('#listGrid');
|
|
tradeCashIds = main.GetGridIds(jgrid);
|
|
tradeIds = main.GetGridIds(jgrid,"trade.id")
|
|
|
|
// if (page.IsAutoSealAndUploadFiles) {
|
|
// tradeIds.forEach((v, i, arr) => {
|
|
// var tradeId = v;
|
|
// main.post("/trade/IsSealWaiting/", {tradeId: tradeId},
|
|
// {
|
|
// success: function (resp) {
|
|
// if (resp.success) {
|
|
// if (!confirm("用印正在等待中重新生成将中断用印并重新进行自动用印(如有),是否确认操作?")) {
|
|
// return;
|
|
// }
|
|
// }
|
|
|
|
// }
|
|
// });
|
|
// });
|
|
|
|
//}
|
|
|
|
}
|
|
|
|
|
|
if (tradeCashIds.length === 0) {
|
|
main.message("请选择交易");
|
|
return;
|
|
}
|
|
|
|
var templateHtml = "";
|
|
if (selectConfirmationBookTemplate) {
|
|
var currentTemplate = "";
|
|
var postData = {
|
|
key: "结算确认书"
|
|
};
|
|
if (tradeIds.length == 1) {
|
|
postData.tradeId = tradeIds[0];
|
|
main.post("/trade/GetTradeMeta", postData, { waitMe: false, async: false }).done(function (res) {
|
|
currentTemplate = res;
|
|
});
|
|
}
|
|
|
|
templateHtml = '<div class="form-group">' +
|
|
'<label class="col-sm-4 control-label">选择模板</label>' +
|
|
'<select style="width: 145px; margin-left: 14px;" data-placeholder="请选择 确认书模板" name="templateName">' +
|
|
'<option ' +
|
|
(currentTemplate === "" ? "selected" : "") +
|
|
' value="">默认</option>';
|
|
if (templateNames !== null) {
|
|
templateNames.forEach((t, i, arr) => {
|
|
templateHtml += '<option ' +
|
|
(currentTemplate !== "" && currentTemplate === t ? "selected" : "") +
|
|
' value="{0}">{0}</option>'.template(t);
|
|
});
|
|
|
|
}
|
|
templateHtml += '</select>' +
|
|
'</div>';
|
|
}
|
|
var htmlContent = '<form class="form-horizontal" role="form" style="padding:15px 12px 5px">' +
|
|
'<div class="form-group">' +
|
|
'<label class="col-sm-4 control-label">文档类型</label>' +
|
|
'<div class="btn-group col-sm-8" data-toggle="buttons">' +
|
|
'<label class="btn btn-sm btn-primary active" style="border:none"><input type="radio" checked name="docType" value="PDF"> PDF</label>' +
|
|
'<label class="btn btn-sm btn-primary" style="border:none"><input type="radio" name="docType" value="DOC"> DOC</label>' +
|
|
'</div>' +
|
|
'</div>' +
|
|
templateHtml +
|
|
'</form>';
|
|
if (IsHongYuan) {
|
|
var htmlContent = '<form class="form-horizontal" role="form" style="padding:15px 12px 5px">' +
|
|
'<div class="form-group">' +
|
|
'<label class="col-sm-4 control-label">文档类型</label>' +
|
|
'<div class="btn-group col-sm-8" data-toggle="buttons">' +
|
|
'<label class="btn btn-sm btn-primary active" style="border:none"><input type="radio" checked name="docType" value="PDF"> PDF</label>' +
|
|
'<label class="btn btn-sm btn-primary" style="border:none"><input type="radio" name="docType" value="DOC"> XLSX</label>' +
|
|
'</div>' +
|
|
'</div>' +
|
|
templateHtml +
|
|
'</form>';
|
|
}
|
|
|
|
|
|
main.open2("生成结算确认书",
|
|
htmlContent,
|
|
{
|
|
area:selectConfirmationBookTemplate? ["320px", "200px"]: ["320px", "165px"],
|
|
btn: ['生成', '取消'],
|
|
yes: function(index, layero) {
|
|
var docType = $('input[name="docType"]:checked').val();
|
|
|
|
if (selectConfirmationBookTemplate) {
|
|
postData.value = $('select[name="templateName"]').val();
|
|
if (_.trim(postData.value)) {
|
|
tradeIds.forEach((v, i, arr) => {
|
|
postData.tradeId = v;
|
|
main.post("/trade/SetTradeMeta", postData, { waitMe: false, async: false });
|
|
})
|
|
}
|
|
}
|
|
main.post("/trade/GJGenerateSettleBillByTradeCashIds/",
|
|
{ tradeCashIds: tradeCashIds, docType: docType },
|
|
{
|
|
success: function(resp) {
|
|
if (resp.success) {
|
|
main.downloadFiles(resp.obj);
|
|
} else {
|
|
main.alert(resp.msg.replace("\r\n", "<br/>"));
|
|
main.downloadFiles(resp.obj);
|
|
}
|
|
reloadMaturityTrade();
|
|
parent.layer.closeAll();
|
|
}
|
|
});
|
|
},
|
|
cancel: function(index, layero) {
|
|
parent.layer.closeAll();
|
|
},
|
|
success: function(layero, index) {
|
|
$(".btn-group").on("click",
|
|
".btn",
|
|
function(event) {
|
|
$('input[name="docType"]:checked').prop("checked", false);
|
|
$(this).children("input").prop("checked", true);
|
|
});
|
|
}
|
|
});
|
|
}
|
|
</text>
|
|
}
|
|
|
|
function BatchGenerateSettleBill(id) {
|
|
var clientIds = $("#ClientId").val() == null ? "" : $("#ClientId").val().join(",");
|
|
var selectedIds = $('#listGrid').jqGrid('getGridParam', 'selarrrow');
|
|
|
|
var orIds = [];
|
|
if (selectedIds.length > 0) {
|
|
|
|
for (var i = 0; i < selectedIds.length; i++) {
|
|
var or = $('#listGrid').getRowData(selectedIds[i]).id;
|
|
orIds.push(or);
|
|
}
|
|
}
|
|
|
|
var data = {
|
|
UnWindDateStart: $("#DateFromUnWindDate").val(), UnWindDateEnd: $("#DateToUnWindDate").val(), ClientIds: clientIds,
|
|
TradeTypes: $("#TradeTypes").val(), TradeIds: orIds.join(','),
|
|
ExerciseDateStart: $("#DateFromExerciseDate").val(),
|
|
ExerciseDateEnd: $("#DateToExerciseDate").val()
|
|
|
|
};
|
|
|
|
|
|
if (data.UnWindDateStart == undefined || data.UnWindDateStart == null || data.UnWindDateStart == ""
|
|
|| data.UnWindDateEnd == undefined || data.UnWindDateEnd == null || data.UnWindDateEnd == "") {
|
|
showmiddlemessage("批量生成结算确认书需要选择确切的实际行权日区间!");
|
|
return;
|
|
}
|
|
|
|
if (page.IsAutoSealAndUploadFiles) {
|
|
data.SealResults = $("#SealResults").val();
|
|
//data.SealDateStart = $("#DateFromSealDate").val();
|
|
//data.SealDateEnd = $("#DateToSealDate").val();
|
|
//if (data.SealDateStart == undefined || data.SealDateStart == null || data.SealDateStart == ""
|
|
// || data.SealDateEnd == undefined || data.SealDateEnd == null || data.SealDateEnd == "") {
|
|
// showmiddlemessage("发送清算确认书需要选择确切的电子章用印日期区间!");
|
|
// return;
|
|
//}
|
|
}
|
|
main.confirm("确定生成当前所选[客户名称]与[实际行权日]条件下交易的确认书吗?", function () {
|
|
main.post("/trade/BatchGenerateSettleBill/", data).done(function (data) {
|
|
console.info(data);
|
|
reloadMaturityTrade();
|
|
});
|
|
});
|
|
}
|
|
|
|
function GenerateSettleBillForSingle(id, contractDocUrl,isWait) {
|
|
if (contractDocUrl != "undefined" && contractDocUrl) {
|
|
if (page.IsAutoSealAndUploadFiles) {
|
|
//if (isWait) {
|
|
// if (!confirm("用印正在等待中重新生成将中断用印并重新进行自动用印(如有),是否确认操作?")) {
|
|
// return;
|
|
// }
|
|
//}
|
|
if (!confirm("重新生成将覆盖已有的交易确认书并重新进行自动用印(如有),是否确认操作?")) {
|
|
return;
|
|
}
|
|
}else{
|
|
if (!confirm("确认覆盖已有的结算确认书?")) {
|
|
return;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
var tradeCashIds = id;
|
|
|
|
if(!isWait){
|
|
// if (page.IsAutoSealAndUploadFiles) {
|
|
// main.post("/trade/IsSealWaiting/", {tradeId: id},
|
|
// {
|
|
// success: function (resp) {
|
|
// if (resp.success) {
|
|
// if (!confirm("用印正在等待中重新生成将中断用印并重新进行自动用印(如有),是否确认操作?")) {
|
|
// return;
|
|
// }
|
|
// }
|
|
|
|
// }
|
|
// });
|
|
|
|
//}
|
|
}
|
|
|
|
|
|
|
|
var jgrid = jQuery('#listGrid');
|
|
|
|
if (tradeCashIds != undefined && tradeCashIds.length > 0) {
|
|
main.post("/trade/GenerateSettleBillForSingle/", { TradeCashIds: tradeCashIds}).done(function (data) {
|
|
console.info(data);
|
|
reloadMaturityTrade();
|
|
});
|
|
} else {
|
|
main.confirm("确定生成当前条件下所有交易的确认书吗?", function () {
|
|
main.post("/trade/GenerateSettleBillForSingle/", { TradeCashIds : allTradeCashIds}).done(function (data) {
|
|
console.info(data);
|
|
reloadMaturityTrade();
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
function sendReport() {
|
|
var clientIds = $("#ClientId").val() == null ? "" : $("#ClientId").val().join(",");
|
|
var contractTypes = ContractTypeCtrl.getValue();
|
|
var data = { UnWindDateStart: $("#DateFromUnWindDate").val(), UnWindDateEnd: $("#DateToUnWindDate").val(), ClientIds: clientIds, receiver: contractTypes };
|
|
|
|
if (page.IsAutoSealAndUploadFiles) {
|
|
data.SealResults = $("#ClientId").val();
|
|
//data.SealDateStart = $("#DateFromSealDate").val();
|
|
//data.SealDateEnd = $("#DateToSealDate").val();
|
|
}
|
|
var jgrid = jQuery('#listGrid');
|
|
var ids = [];
|
|
if (ReportId) {
|
|
ids.push(ReportId);
|
|
}
|
|
else {
|
|
ids = main.GetGridIds(jgrid);
|
|
}
|
|
if (ids.length == 0) {
|
|
if (data.UnWindDateStart == undefined || data.UnWindDateStart == null || data.UnWindDateStart == ""
|
|
|| data.UnWindDateEnd == undefined || data.UnWindDateEnd == null || data.UnWindDateEnd == "") {
|
|
showmiddlemessage("发送结算确认书需要选择确切的实际行权日区间!");
|
|
return;
|
|
}
|
|
|
|
//if(page.IsAutoSealAndUploadFiles){
|
|
// if (data.SealDateStart == undefined || data.SealDateStart == null || data.SealDateStart == ""
|
|
// || data.SealDateEnd == undefined || data.SealDateEnd == null || data.SealDateEnd == "") {
|
|
// showmiddlemessage("发送清算确认书需要选择确切的电子章用印日期区间!");
|
|
// return;
|
|
// }
|
|
//}
|
|
|
|
}
|
|
else { data.TradeCashIds = ids.join(","); }
|
|
if (ids.length == 0 && clientIds == "") {
|
|
main.confirm("确定发送所有结算确认书?可选择客户名称单个发送", function () {
|
|
main.post("/trade/SendEmailSettleBill", data).done(function (data) {
|
|
});
|
|
})
|
|
}
|
|
else {
|
|
main.post("/trade/SendEmailSettleBill", data).done(function (data) {
|
|
});
|
|
}
|
|
$("#modalChooseContractType").modal('hide');
|
|
}
|
|
|
|
function sentMail(id) {
|
|
ReportId = id;
|
|
var clientIds = $("#ClientId").val();
|
|
ContractTypeCtrl.changeContractType(clientIds);
|
|
$("#modalChooseContractType").modal('show');
|
|
}
|
|
|
|
function SendEmailSettleBill() {
|
|
ReportId = "";
|
|
var clientIds = $("#ClientId").val();
|
|
ContractTypeCtrl.changeContractType(clientIds);
|
|
$("#modalChooseContractType").modal('show');
|
|
}
|
|
|
|
function calcActualStrike(cellValue, options, rowObject) {
|
|
if (rowObject.trade.IsMoneynessOption == "是") {
|
|
return otcformat.trading.umprice(rowObject.trade.Strike * rowObject.trade.InitialSpotPrice);
|
|
} else {
|
|
return otcformat.trading.umprice(rowObject.trade.Strike);
|
|
}
|
|
}
|
|
|
|
function calcInMoneyPerContract(cellValue, options, rowObject) {
|
|
if (rowObject.trade.TradeStatus == "已到期") {
|
|
return 0.00;
|
|
}
|
|
var actualStrike = rowObject.trade.IsMoneynessOption == "是" ? (rowObject.trade.Strike * rowObject.trade.InitialSpotPrice) : rowObject.trade.Strike;
|
|
|
|
if (rowObject.trade.OptionType == "看涨") {
|
|
var payoff = rowObject.trade_cash.FinalPrice - actualStrike;
|
|
return otcformat.trading.tradePrice(payoff > 0 ? payoff : 0);
|
|
} else {
|
|
var payoff = actualStrike - rowObject.trade_cash.FinalPrice;
|
|
return otcformat.trading.tradePrice(payoff > 0 ? payoff : 0);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 客户行权日报告
|
|
*/
|
|
function ClientMaturityTrade() {
|
|
var srcurl = "/trade/clientMaturityDateTradeList";
|
|
main.open("客户行权日报告", srcurl);
|
|
}
|
|
|
|
function downloadMaturityReports() {
|
|
var startDate = $("#DateFromUnWindDate").val();
|
|
var endDate = $("#DateToUnWindDate").val();
|
|
var clientIds = $("#ClientId").val();
|
|
|
|
var jgrid = jQuery('#listGrid');
|
|
var tradeCashIdList = main.GetGridIds(jgrid, "trade_cash.id")
|
|
tradeids = tradeCashIdList.join(",");
|
|
|
|
var tip = "下载" + startDate + "至" + endDate + "的结算确认书";
|
|
if (tradeids) { tip = "下载所有已勾选的结算确认书"; }
|
|
|
|
var htmlContent = '<form class="form-horizontal" role="form" style="padding:15px 12px 5px">' +
|
|
'<div class="form-group">' +
|
|
'<label style="padding:10px 12px 10px">' + tip + '</label><br />' +
|
|
'<label class="col-sm-5 control-label">文档类型</label>' +
|
|
'<label class="btn btn-sm btn-primary" style="border:none"><input type="checkbox" checked name="docType" value="PDF"> PDF</label>' +
|
|
'<label class="btn btn-sm btn-primary" style="border:none"><input type="checkbox" checked name="docType" value="DOC"> DOC</label>';
|
|
if (IsZheQi) {
|
|
htmlContent += '<br/><label class="col-sm-5 control-label">下载用印文件</label>' +
|
|
'<select id="Seal" style="margin-top:5px;"><option>是</option><option>否</option></select>';
|
|
}
|
|
main.open2("批量下载交易确认书",
|
|
htmlContent + '</div></form>',
|
|
{
|
|
area: ["400px", "250px"],
|
|
btn: ['下载', '取消'],
|
|
yes: function (index, layero) {
|
|
var docpdf = [];
|
|
$('input[name="docType"]:checked').each(function (i) {
|
|
docpdf.push($(this).val())
|
|
})
|
|
|
|
var isSeal = $("#Seal").val() == '是' ? true : false;
|
|
var confirmBookPostData = { TradeDateStart: startDate, TradeDateEnd: endDate, ClientIds: clientIds, TradeIds: null, TradeCashIds: tradeCashIdList, DocType: "结算确认书", docpdf: docpdf,IsSeal: isSeal };
|
|
if (page.IsAutoSealAndUploadFiles) {
|
|
confirmBookPostData.SealResults = $("#SealResults").val();
|
|
//confirmBookPostData.SealDateStart = $("#DateFromSealDate").val();
|
|
//confirmBookPostData.SealDateEnd = $("#DateToSealDate").val();
|
|
}
|
|
openWindowWithPost("/trade/BatchDownLoadDoc/", confirmBookPostData);
|
|
parent.layer.closeAll();
|
|
},
|
|
cancel: function (index, layero) {
|
|
parent.layer.closeAll();
|
|
},
|
|
success: function (layero, index) {
|
|
$(".btn-group").on("click", ".btn", function (event) {
|
|
$('input[name="docType"]:checked').prop("checked", false);
|
|
$(this).children("input").prop("checked", true);
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
function openWindowWithPost(url, data) {
|
|
var form = document.createElement("form");
|
|
form.target = "_blank";
|
|
form.method = "POST";
|
|
form.action = url;
|
|
form.style.display = "none";
|
|
|
|
for (var key in data) {
|
|
if (data[key] instanceof Array) {
|
|
if (data[key].length === 0) {
|
|
var input = document.createElement("input");
|
|
input.type = "hidden";
|
|
input.name = key;
|
|
input.value = null;
|
|
form.appendChild(input);
|
|
}
|
|
else {
|
|
data[key].forEach((item, index, array) => {
|
|
var input = document.createElement("input");
|
|
input.type = "hidden";
|
|
input.name = key;
|
|
input.value = data[key][index];
|
|
form.appendChild(input);
|
|
});
|
|
}
|
|
}
|
|
else {
|
|
var input1 = document.createElement("input");
|
|
input1.type = "hidden";
|
|
input1.name = key;
|
|
input1.value = data[key];
|
|
form.appendChild(input1);
|
|
}
|
|
}
|
|
|
|
document.body.appendChild(form);
|
|
form.submit();
|
|
document.body.removeChild(form);
|
|
}
|
|
|
|
function SealContract(id){
|
|
var ids = [];
|
|
ids.push(id);
|
|
|
|
main.post("/trade/IsContractGenerated/", { ids: ids,types:["结算确认书"] }).done(function (res) {
|
|
if (res.success) {
|
|
main.post("/trade/SealContracts/", { ids: ids,types:["结算确认书"] }).done(function (res) {
|
|
if (res.success) {
|
|
|
|
SearchClick(true);
|
|
}
|
|
});
|
|
}
|
|
}).fail(function(res){
|
|
|
|
});
|
|
}
|
|
|
|
function BatchSealContracts() {
|
|
var jgrid = jQuery('#listGrid');
|
|
var ids = main.GetGridIds(jgrid,"trade_contract_r.id");
|
|
if (ids.length == 0) {
|
|
main.alert("请至少选择一笔交易"); return;
|
|
}
|
|
|
|
main.post("/trade/IsContractGenerated/", { ids: ids,types:["结算确认书"] }).done(function (res) {
|
|
if (res.success) {
|
|
main.post("/trade/SealContracts/", { ids: ids,types:["结算确认书"] }).done(function (resp) {
|
|
if (resp.success) {
|
|
|
|
SearchClick(true);
|
|
}
|
|
});
|
|
}
|
|
}).fail(function(res){
|
|
|
|
});
|
|
}
|
|
</script>
|
|
}
|
|
|
|
<div class="searchdiv">
|
|
@Html.ShortInput("TradeNumber", "交易编号")
|
|
@Html.ShortInput("ContractCode", "合约编号")
|
|
@Html.MyAceDropdownInput("AssetId", "簿记账户", AssetunitController.GetClientassetunit())
|
|
@Html.MyAceDropdownInput("GroupId", "簿记账户组", AssetUnitModel.GetAllAssetUnitGroupItem())
|
|
@Html.MyAceDropdownInput("ClientId", "客户名称", ClientDataModel.GetAllClient())
|
|
<div class="search-group">
|
|
<span class="search-label">标的代码</span>
|
|
<select class="" data-placeholder="请选择 标的代码" id="UnderlyingId" name="UnderlyingId" multiple></select>
|
|
</div>
|
|
@Html.MyAceDropdownInput("TradeTypes", "结构类型", GlobalData.GetTradeTypes(OptionTradeTypes, true))
|
|
@Html.MyAceDropdownInput2("ExerciseMode", "行权方式", ConsTrade.ExerciseType.GetSelectItems())
|
|
@Html.SearchDateRange("ExerciseDate", "期权到期日")
|
|
@Html.SearchDateRange("UnWindDate", "实际行权日")
|
|
|
|
@if (isAutoSealAndUploadFiles)
|
|
{
|
|
@Html.MyAceDropdownInput("SealResults", "用印结果", GlobalData.GetSealResultItems())
|
|
@Html.SearchDateRange("SealDate", "用印日期")
|
|
}
|
|
@MyControls.SearchBtn()
|
|
|
|
@if (isMarketMaker)
|
|
{
|
|
@MyControls.Btn(isAutoSealAndUploadFiles && PS.GetErpConfig().IsAutoSealAfterGeneratedBook ? "批量生成结算确认书并用印" : "批量生成结算确认书", "GenerateSettleBill()")
|
|
}
|
|
else if (PS.Config.Company == CompanyEnum.申万)
|
|
{
|
|
|
|
}
|
|
else
|
|
{
|
|
if (valuedate.SettleDocModeMultiple.Equals(valuedateBLL.SystemDate.SettleDocMode))
|
|
{
|
|
@MyControls.Btn(isAutoSealAndUploadFiles && PS.GetErpConfig().IsAutoSealAfterGeneratedBook ? "批量生成结算确认书并用印" : "批量生成结算确认书", "BatchGenerateSettleBill()")
|
|
}
|
|
else
|
|
{
|
|
@MyControls.Btn(isAutoSealAndUploadFiles && PS.GetErpConfig().IsAutoSealAfterGeneratedBook ? "批量生成结算确认书并用印" : "批量生成结算确认书", "GenerateSettleBillForSingle()")
|
|
}
|
|
//@MyControls.Btn("客户行权日报告", "ClientMaturityTrade()")
|
|
}
|
|
@MyControls.Btn("批量下载结算确认书", "downloadMaturityReports()")
|
|
@MyControls.Btn("发送结算确认书", "SendEmailSettleBill()")
|
|
@if (isAutoSealAndUploadFiles && !isAutoSealAfterGenerateBook)
|
|
{
|
|
@MyControls.Btn("批量确认书用印", "BatchSealContracts()")
|
|
}
|
|
|
|
<div style="width:30px;display:inline;" onclick="showcolumnChooser();return false;">
|
|
<img src="~/Images/configure.png"/>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<!--
|
|
<div>
|
|
@MyControls.Btn("配置显示列", "showcolumnChooser()")
|
|
</div>
|
|
-->
|
|
@Html.Raw(JqGridSimple.OutTable())
|
|
|
|
@await Html.PartialAsync("/Views/Common/_chooseContractType.cshtml", "sendReport()") |