国联下 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 行。
903 lines
37 KiB
JavaScript
903 lines
37 KiB
JavaScript
var ContractTypeCtrl;
|
|
var ReportId;
|
|
|
|
const colModelGrid = (new function () {
|
|
this.setControl = function (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 {
|
|
this.changeCode(encryptId, $(inputSelect).val(), function () {
|
|
$(button).html("<i class='fa fa-pencil-square-o'></i>");
|
|
$(inputSelect).prop("disabled", true);
|
|
$(button).prop("title", "修改结算确认书编号");
|
|
});
|
|
}
|
|
}
|
|
|
|
this.changeCode = function (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);
|
|
}
|
|
});
|
|
}
|
|
|
|
this.upload = function (encryptId, sendMail) {
|
|
var srcurl = "/TradeConfirmBook/confirmBookUpload/?Id=" + encryptId + "&SendMailId=" + sendMail;
|
|
main.open("上传确认书", srcurl, {
|
|
area: ['500px', '420px'],
|
|
end: SearchClick(true)
|
|
});
|
|
};
|
|
|
|
this.ViewErrInfo = function (code) {
|
|
main.post("/trade/GetSealErrMsg/", {code: code} ,
|
|
{
|
|
success: function (resp) {
|
|
main.alert(resp.msg);
|
|
}
|
|
});
|
|
}
|
|
|
|
this.colModels = [{
|
|
name: 'trade.id', label: 'id', index: 'trade.id', width: 1, align: 'left', hidden: true
|
|
}, {
|
|
name: 'trade_cash.id', label: 'tradeCashId', index: 'trade_cash.id', width: 1, align: 'left', hidden: true
|
|
},{
|
|
name: 'trade.IsMoneynessOption', label: 'IsMoneynessOption', index: 'trade.IsMoneynessOption', width: 1, align: 'left', hidden: true
|
|
}, {
|
|
name: 'trade.EncryptId', label: 'EncryptId', index: 'trade.EncryptId', width: 0, align: 'left', hidden: true
|
|
}, {
|
|
name: 'trade.UnderlyingId', label: 'UnderlyingId', index: 'trade.UnderlyingId', width: 0, align: 'left', hidden: true
|
|
}, {
|
|
name: 'trade.InitialSpotPrice', label: 'trade.InitialSpotPrice', index: 'InitialSpotPrice', hidden: true
|
|
}, {
|
|
name: 'trade.TradePrice', label: 'TradePrice', index: 'trade.TradePrice', width: 0, align: 'left', hidden: true
|
|
}, {
|
|
name: 'trade_contract_r.id', label: 'trade_contract_r.id', index: 'trade_contract_r.id', width: 0, align: 'left', hidden: true
|
|
}, {
|
|
name: '', label: '操作', index: '', align: 'left', width: 200, formatter: showToolName
|
|
}, {
|
|
name: 'trade.TradeStatus', label: '交易状态', index: 'trade.TradeStatus', width: 70, align: 'left', formatter: ShowTradeStatusFormater
|
|
}, {
|
|
name: 'trade.TradeNumber', label: '交易编号', index: 'trade.TradeNumber', width: 200, align: 'left', formatter: ShowStructFormater
|
|
}, {
|
|
name: 'ConfirmContractR.ContractCode', label: '合约编号', index: 'ConfirmContractR.ContractCode', width: 200, align: 'left'
|
|
}, {
|
|
name: 'ContractCode', label: '结算确认书编号', index: 'ContractCode', 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='colModelGrid.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', width: 180, align: 'left'
|
|
}, {
|
|
name: 'trade.Notional', label: '份额', index: 'trade.Notional', width: 120, align: 'left', formatter: ShowNotionalFormater
|
|
}, {
|
|
name: 'trade.Strike', label: '执行价格', index: 'trade.Strike', width: 90, align: 'left', formatter: function (cellValue, options, rowObject) {
|
|
if (rowObject.trade.IsMoneynessOption == "是") {
|
|
return otcformat.trading.premiumRateP(cellValue);
|
|
}
|
|
return otcformat.trading.umprice(cellValue);
|
|
}
|
|
}, {
|
|
name: 'trade_cash.FinalPrice', label: '结算价', index: 'trade_cash.FinalPrice', width: 90, align: 'left', formatter: otcformat.trading.umprice
|
|
}, {
|
|
name: 'trade_cash.UnwindPrice', label: '结算收益', index: 'trade_cash.UnwindPrice', width: 90, align: 'left', formatter: unwindPriceFormat
|
|
}, {
|
|
name: 'trade_cash.Amount', label: '了结总额', index: 'trade_cash.Amount', width: 70, align: 'left', formatter: otcformat.trading.tradePrice
|
|
}, {
|
|
name: 'trade.TradeDate', label: '交易日期', index: 'trade.TradeDate', width: 90, align: 'left', formatter: 'date'
|
|
|
|
}, {
|
|
name: 'trade.BuySell', label: '交易方向', index: 'trade.BuySell', width: 70, align: 'left'
|
|
|
|
}, {
|
|
name: 'trade.UnderlyingCode', label: '标的代码', index: 'trade.UnderlyingCode', width: 60, align: 'left', formatter: ShowStructFormater
|
|
}, {
|
|
name: 'trade.UnderlyingAssetClass', label: '标的品种', index: 'trade.UnderlyingAssetClass', width: 70, align: 'left', hidden: true
|
|
}, {
|
|
name: 'trade.UnderlyingInstrumentType', label: '标的类型', index: 'trade.UnderlyingInstrumentType', hidden: true, width: 70, align: 'left'
|
|
}, {
|
|
name: 'trade.TradeType', label: '结构类型', index: 'trade.TradeType', width: 70, align: 'left',
|
|
formatter: function (cellvalue, options, rowObject) {
|
|
return rowObject.trade.StructureType && rowObject.trade.IsGroup != 2 ? rowObject.trade.StructureType : rowObject.trade.TradeType;
|
|
}
|
|
}, {
|
|
name: 'trade.OptionType', label: '看涨看跌', index: 'trade.OptionType', width: 70, align: 'left'
|
|
}, {
|
|
name: 'trade.ExerciseModeCn', label: '行权方式', index: 'trade.ExerciseModeCn', width: 70, align: 'left'
|
|
}, {
|
|
name: 'trade.ExerciseDate', label: '期权到期日', index: 'trade.ExerciseDate', width: 90, align: 'left', formatter: 'date'
|
|
}, {
|
|
name: 'trade.StartDate', label: '开始日期', index: 'trade.StartDate', width: 90, align: 'left', formatter: 'date'
|
|
}, {
|
|
name: 'trade.MaturityDate', label: '标的到期日', index: 'trade.MaturityDate', width: 90, align: 'left', formatter: 'date', hidden: true
|
|
}, {
|
|
name: 'trade.AssetBookName', label: '簿记账户', index: 'trade.AssetBookName', width: 70, align: 'left'
|
|
}, {
|
|
name: 'trade.TraderName', label: '交易员', index: 'trade.TraderName', width: 70, align: 'left'
|
|
}, {
|
|
name: 'trade.Comments', label: '备注', index: 'trade.Comments', width: 140, align: 'left'
|
|
}, {
|
|
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 (pageData.ConfirmBookStampStatus) {
|
|
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(pageData.IsAutoSealAndUploadFiles && !pageData.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="colModelGrid.upload(\'{0}\',\'{1}\')"'.template(encryptId, rowObject.trade_cash.id) : "disabled"),
|
|
(stampDocumentFileName ? 'onclick="main.downloadFiles(\'{0}\')"'.template(stampDocumentFileName) : "disabled"));
|
|
if(pageData.IsAutoSealAndUploadFiles && !pageData.IsAutoSealAfterGeneratedBook) {
|
|
html = (templateHtml)
|
|
.template(
|
|
(status ? 'onclick="colModelGrid.upload(\'{0}\',\'{1}\')"'.template(encryptId, rowObject.trade_cash.id) : "disabled"),
|
|
(stampDocumentFileName ? 'onclick="main.downloadFiles(\'{0}\')"'.template(stampDocumentFileName) : "disabled"),
|
|
('onclick="SealContract(\'{0}\')"'.template(rowObject.trade_contract_r.id))
|
|
);
|
|
}
|
|
if (pageData.ConfirmBookStampStatus && status) {
|
|
html = html + (status === "草稿" ? "未用印" : status);
|
|
}
|
|
return html;
|
|
}
|
|
};
|
|
this.colModels.splice(9, 0, colObj);
|
|
}
|
|
|
|
if (pageData.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=\"colModelGrid.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;
|
|
}
|
|
};
|
|
this.colModels.push(colObj1, colObj2);
|
|
}
|
|
}());
|
|
|
|
function __initJqGrid() {
|
|
|
|
var PostData = { UnWindDateStart: pageData.curDate, UnWindDateEnd: pageData.curDate, ValidState: $("#ValidState").val() };
|
|
|
|
if (pageData.IsAutoSealAndUploadFiles) {
|
|
PostData.SealDateStart = pageData.curDate;
|
|
PostData.SealDateEnd = pageData.curDate;
|
|
|
|
}
|
|
|
|
var __jq = {
|
|
AfterInsertRow: typeof AfterInsertRow !== 'undefined' ? AfterInsertRow : void 0,
|
|
rowclick: typeof rowclick !== 'undefined' ? rowclick : void 0,
|
|
rowdblclick: typeof rowdblclick !== 'undefined' ? rowdblclick : void 0,
|
|
gridComplete: typeof gridComplete !== 'undefined' ? gridComplete : void 0,
|
|
onJqgridPaging: typeof onJqgridPaging !== 'undefined' ? onJqgridPaging : void 0
|
|
};
|
|
|
|
var grid = jQuery('#listGrid').jqGrid({
|
|
url: '/trade/endTradeOnValueDateQuery',
|
|
datatype: pageData.initEmptyView ? 'local' : 'json',
|
|
multiselect: true,
|
|
height: 'auto',
|
|
width: '90%',
|
|
autowidth: false,
|
|
shrinkToFit: false,
|
|
viewrecords: true,
|
|
jsonReader: { repeatitems: false },
|
|
cmTemplate: { align: 'center', width: 120 },
|
|
mtype: 'POST',
|
|
postData: PostData,
|
|
afterInsertRow: __jq.AfterInsertRow,
|
|
onSelectRow: __jq.rowclick,
|
|
ondblClickRow: __jq.rowdblclick,
|
|
colModel: colModelGrid.colModels,
|
|
pager: jQuery('#pagerGrid'),
|
|
pagerpos: 'left',
|
|
rowNum: 20,
|
|
rowList: [20, 30, 50, 200, 10000],
|
|
loadComplete: __jq.gridComplete,
|
|
onPaging: __jq.onJqgridPaging,
|
|
footerrow: false
|
|
});
|
|
|
|
pageData.initEmptyView && jQuery("#listGrid").jqGrid('setGridParam', { datatype: 'json' });
|
|
}
|
|
|
|
$(function () {
|
|
|
|
$(".datepicker").datepicker({
|
|
changeMonth: true,
|
|
changeYear: true,
|
|
showButtonPanel: true,
|
|
showOtherMonths: true,
|
|
selectOtherMonths: true
|
|
});
|
|
|
|
$("#DateToUnWindDate").val(pageData.curDate);
|
|
if (!pageData.initEmptyView) {
|
|
$("#DateFromUnWindDate").val(pageData.curDate);
|
|
}
|
|
|
|
if (pageData.IsAutoSealAndUploadFiles) {
|
|
$("#DateToSealDate").val(pageData.curDate);
|
|
$("#DateFromSealDate").val(pageData.curDate);
|
|
}
|
|
|
|
__initJqGrid();
|
|
|
|
document.onkeydown = function (event) {
|
|
try {
|
|
var e = event ? event : (window.event ? window.event : null);
|
|
if (e.keyCode === 13) {
|
|
SearchClick(true);
|
|
}
|
|
} catch (e) {
|
|
//
|
|
}
|
|
};
|
|
|
|
let underlyingCtrl = new tradeHelper.UnderlyingSelectCtrl('#UnderlyingId')
|
|
.setFlag(tradeHelper.UnderlyingSelectFlag.OtcTrade);
|
|
|
|
//标的品种 和 标的代码 联动
|
|
$("#UnderlyingAssetClass").change(function (obj) { changeUnderlyingAssetClass(obj); });
|
|
|
|
ContractTypeCtrl = new ContractTypeCtrl(document.getElementById('ContractTypeCtrl'));
|
|
});
|
|
|
|
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 ShowStructFormater(cellValue, options, rowObject) {
|
|
if (options.colModel.name === "trade.TradeNumber" && typeof (cellValue) === "undefined") {
|
|
return "";
|
|
}
|
|
|
|
var 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 ShowNotionalFormater(cellValue, options, rowObject) {
|
|
if (rowObject.trade.IsUsePremiumRate) {
|
|
return otcformat.trading.notional(rowObject.trade_cash.UnwindPercentRate * 100) + "%";
|
|
}
|
|
|
|
if (rowObject.trade_cash.Action == "系统操作-平仓费") {
|
|
return otcformat.trading.notional(rowObject.trade_cash.UnwindNotional);
|
|
}
|
|
else {
|
|
return otcformat.trading.notional(rowObject.trade_cash.Notional);
|
|
}
|
|
}
|
|
|
|
function StrikeFormatter(cellValue, options, rowObject) {
|
|
if (rowObject.trade.Strike) {
|
|
if (rowObject.trade.IsMoneynessOption === "是") {
|
|
return otcformat.trading.premiumRateP(rowObject.trade.Strike);
|
|
} else {
|
|
return otcformat.trading.umprice(rowObject.trade.Strike);
|
|
}
|
|
} else {
|
|
if (rowObject.trade.Strike === 0) {
|
|
return 0;
|
|
}
|
|
else {
|
|
return "";
|
|
}
|
|
}
|
|
}
|
|
|
|
function tradeCashAmountFormater(cellValue, options, rowObject) {
|
|
return cellValue == undefined || cellValue == null ? 0 : - cellValue;
|
|
}
|
|
|
|
function ShowTradeStatusFormater(cellValue, options, rowObject) {
|
|
if (rowObject.trade_cash.Action == "系统操作-平仓费") {
|
|
return "已平仓";
|
|
}
|
|
else {
|
|
return "已执行";
|
|
}
|
|
}
|
|
|
|
function unwindPriceFormat(cellValue, options, rowObject) {
|
|
if (rowObject.trade.IsUsePremiumRate) {
|
|
return rowObject.trade_cash.Action == "系统操作-行权费" ?
|
|
otcformat.trading.tradeSinglePrice(Math.abs(rowObject.trade_cash.UnwindPrice))
|
|
: otcformat.trading.premiumRateP(Math.abs(rowObject.trade_cash.UnwindPricePercentRate));
|
|
}
|
|
else {
|
|
return otcformat.trading.tradeSinglePrice(Math.abs(rowObject.trade_cash.UnwindPrice));
|
|
}
|
|
}
|
|
|
|
function gridComplete() {
|
|
$(".selftooltip").tooltip({ html: true, show: 50000, trigger: "hover" });
|
|
}
|
|
|
|
function customButton(cellValue, options, rowObject) {
|
|
var imageHtml = "<input type=\"button\" value=\"删除\" class=\"btn-warning\" onclick=\"deletetrade('" +
|
|
rowObject.trade.EncryptId +
|
|
"');\" />";
|
|
return imageHtml;
|
|
}
|
|
|
|
var g_ConfirmedState = ["已执行", "已平仓"];
|
|
|
|
function showToolName(cellValue, options, rowObject) {
|
|
var html =
|
|
"<input type=\"button\" class=\"wentiEdit\" title='查看交易信息' onclick=\"starttradeView('{0}','{2}')\" value=\"{1}\" />"
|
|
.template(rowObject.trade.EncryptId, "查看", rowObject.trade.TradeType);
|
|
|
|
if (rowObject.ContractDocUrl) {
|
|
html += "<input type=\"button\" class=\"wentiEdit\" title='下载结算确认书' style=\"width: 50px!important;\" onclick=\"DownLoadDoc('{0}')\" value=\"{1}\" />"
|
|
.template(rowObject.ContractDocUrl, "下载");
|
|
} else {
|
|
html += "<input type=\"button\" class=\"wentiEdit\" title='未生成结算确认书' disabled='disabled' style=\"width: 50px!important;\" value=\"{0}\" />"
|
|
.template("下载");
|
|
}
|
|
|
|
return html;
|
|
}
|
|
|
|
//下载清算确认书
|
|
function DownLoadDoc(res) {
|
|
if (pageData.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;
|
|
}
|
|
|
|
function generateUnwindReport() {
|
|
var jgrid = jQuery('#listGrid');
|
|
var rowIds = jgrid.jqGrid('getGridParam', 'selarrrow');
|
|
|
|
if (pageData.IsAutoSealAndUploadFiles) {
|
|
//if (isWait) {
|
|
// if (!confirm("用印正在等待中重新生成将中断用印并重新进行自动用印(如有),是否确认操作?")) {
|
|
// return;
|
|
// }
|
|
//}
|
|
if (!confirm("重新生成将覆盖已有的交易确认书并重新进行自动用印(如有),是否确认操作?")) {
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (rowIds.length === 0) {
|
|
main.message("请选择交易");
|
|
return;
|
|
}
|
|
|
|
var trades = [];
|
|
for (var i = 0; i < rowIds.length; i++) {
|
|
var record = jgrid.getRowData(rowIds[i]);
|
|
var trade = {};
|
|
trade.TradeId = record['trade.id'];
|
|
trade.TradeCashId = record['trade_cash.id']
|
|
trades.push(trade);
|
|
}
|
|
|
|
//if (pageData.IsAutoSealAndUploadFiles) {
|
|
// trades.forEach((v, i, arr) => {
|
|
// var tradeId = v;
|
|
// main.post("/trade/IsSealWaiting/", tradeId,
|
|
// {
|
|
// success: function (resp) {
|
|
// if (resp.success) {
|
|
// if (!confirm("用印正在等待中重新生成将中断用印并重新进行自动用印(如有),是否确认操作?")) {
|
|
// return;
|
|
// }
|
|
// }
|
|
|
|
// }
|
|
// });
|
|
// });
|
|
|
|
//}
|
|
|
|
|
|
var templateHtml = "";
|
|
if (pageData.selectConfirmationBookTemplate) {
|
|
var currentTemplate = "";
|
|
var postData = {
|
|
key: "结算确认书"
|
|
};
|
|
if (trades.length === 1) {
|
|
postData.tradeId = trades[0].TradeId;
|
|
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>';
|
|
pageData.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" style="margin:0">' +
|
|
'<label class="col-sm-4 control-label">文档类型</label>' +
|
|
'<div class="btn-group col-sm-8" data-toggle="buttons">' +
|
|
'<label class="btn btn-primary active" style="border:none"><input type="radio" checked name="docType" value="PDF"> PDF</label>' +
|
|
'<label class="btn btn-primary" style="border:none"><input type="radio" name="docType" value="DOC"> DOC</label>' +
|
|
'</div>' +
|
|
'</div>' +
|
|
templateHtml +
|
|
'</form>';
|
|
if (pageData.IsHongYuan) {
|
|
htmlContent = '<form class="form-horizontal" role="form" style="padding:15px 12px 5px">' +
|
|
'<div class="form-group" style="margin:0">' +
|
|
'<label class="col-sm-4 control-label">文档类型</label>' +
|
|
'<div class="btn-group col-sm-8" data-toggle="buttons">' +
|
|
'<label class="btn btn-primary active" style="border:none"><input type="radio" checked name="docType" value="PDF"> PDF</label>' +
|
|
'<label class="btn btn-primary" style="border:none"><input type="radio" name="docType" value="DOCX"> XLSX</label>' +
|
|
'</div>' +
|
|
'</div>' +
|
|
templateHtml +
|
|
'</form>';
|
|
}
|
|
|
|
|
|
main.open2("生成提前终止确认书",
|
|
htmlContent,
|
|
{
|
|
area: ["320px", "200px"],
|
|
btn: ['生成', '取消'],
|
|
yes: function (index, layero) {
|
|
var docType = $('input[name="docType"]:checked').val();
|
|
if (pageData.selectConfirmationBookTemplate) {
|
|
postData.value = $('select[name="templateName"]').val();
|
|
if (_.trim(postData.value)) {
|
|
trades.forEach((v, i, arr) => {
|
|
postData.tradeId = v.TradeId;
|
|
main.post("/trade/SetTradeMeta", postData, { waitMe: false, async: false });
|
|
})
|
|
}
|
|
}
|
|
|
|
var unwindPostData = { trades: trades, docType: docType };
|
|
|
|
//if (pageData.IsAutoSealAndUploadFiles) {
|
|
// unwindPostData.sealResults = $("#SealResults").val();
|
|
//}
|
|
|
|
main.post("/trade/GJGenerateUnwindReport/",
|
|
unwindPostData,
|
|
{
|
|
success: function (resp) {
|
|
if (resp.success) {
|
|
main.downloadFiles(resp.obj);
|
|
} else {
|
|
main.alert(resp.msg.replace("\r\n", "<br/>"));
|
|
}
|
|
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 rowclick(id) {
|
|
|
|
}
|
|
|
|
function starttradeView(id, tradeType) {
|
|
if (tradeType.indexOf("远期") >= 0) {
|
|
var srcurl = "/forwardtrade/tradeView/?enid=" + id + "&isOnlyCloseButton=true";
|
|
main.open("查看远期交易", srcurl, { area: ['1260px', '800px'] });
|
|
}
|
|
else {
|
|
var srcurl = "/trade/tradeView/?enid=" + id + "&isOnlyCloseButton=true";
|
|
main.open("查看交易", srcurl, { area: ['1260px', '800px'] });
|
|
}
|
|
}
|
|
|
|
function reloadtrade() {
|
|
//重新加载
|
|
SearchClick();
|
|
$('#modal-edittrade').modal('hide');
|
|
}
|
|
|
|
function sentMail(id) {
|
|
ReportId = id;
|
|
var clientIds = $("#ClientId").val();
|
|
ContractTypeCtrl.changeContractType(clientIds);
|
|
$("#modalChooseContractType").modal('show');
|
|
}
|
|
|
|
function SendEmailUnwindReport() {
|
|
ReportId = "";
|
|
var clientIds = $("#ClientId").val();
|
|
ContractTypeCtrl.changeContractType(clientIds);
|
|
$("#modalChooseContractType").modal('show');
|
|
}
|
|
|
|
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 (pageData.IsAutoSealAndUploadFiles) {
|
|
data.SealResults = $("#SealResults").val();
|
|
//data.SealDateStart = $("#DateFromSealDate").val();
|
|
//data.SealDateEnd = $("#DateToSealDate").val();
|
|
}
|
|
|
|
var jgrid = jQuery('#listGrid');
|
|
var rowIds = jgrid.jqGrid('getGridParam', 'selarrrow');
|
|
var ids = [];
|
|
if (ReportId) {
|
|
ids.push(ReportId);
|
|
} else {
|
|
for (var i = 0; i < rowIds.length; i++) {
|
|
var rowObjs = jgrid.getRowData();
|
|
for (var j = 0; j < rowObjs.length; j++) {
|
|
if (rowObjs[j]["trade_cash.id"] == rowIds[i]) {
|
|
ids.push(rowObjs[j]["trade_cash.id"]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if (ids.length == 0) {
|
|
if (data.UnWindDateStart == undefined || data.UnWindDateStart == null || data.UnWindDateStart == ""
|
|
|| data.UnWindDateEnd == undefined || data.UnWindDateEnd == null || data.UnWindDateEnd == "") {
|
|
showmiddlemessage("发送清算确认书需要选择确切的实际终止日区间!");
|
|
return;
|
|
}
|
|
}
|
|
else { data.TradeCashIds = ids.join(","); }
|
|
if (ids.length == 0 && clientIds == "") {
|
|
main.confirm("确定发送所有提前终止确认书?可选择客户名称单个发送", function () {
|
|
main.post("/trade/SendEmailUnwindReport", data).done(function (data) {
|
|
});
|
|
})
|
|
}
|
|
else {
|
|
main.post("/trade/SendEmailUnwindReport", data).done(function (data) {
|
|
});
|
|
}
|
|
$("#modalChooseContractType").modal('hide');
|
|
}
|
|
|
|
function SearchClick(isSearchclick) {
|
|
var listGrid = $('#listGrid');
|
|
|
|
listGrid.appendPostData({ TradeNumber: $("#TradeNumber").val() });
|
|
listGrid.appendPostData({ ClientIds: $("#ClientId").val() == null ? "" : $("#ClientId").val().join() });
|
|
listGrid.appendPostData({ ClientName: $("#ClientName").val() });
|
|
listGrid.appendPostData({ AssetIds: ($("#AssetId").val() || []).join() });
|
|
listGrid.appendPostData({ AssetIdGroupList: $("#GroupId").val() });
|
|
listGrid.appendPostData({
|
|
TraderNames: $("#TraderName").val() == null ? "" : $("#TraderName").val().join(",")
|
|
});
|
|
//listGrid.appendPostData({ AssetType: $("#AssetType").val() });
|
|
listGrid.appendPostData({
|
|
UnderlyingIds: $("#UnderlyingId").val() == null ? "" : $("#UnderlyingId").val().join()
|
|
});
|
|
listGrid.appendPostData({ UnderlyingAssetClass: $("#UnderlyingAssetClass").val() });
|
|
listGrid.appendPostData({ TradeDateStart: $("#DateFromTradeDate").val() });
|
|
listGrid.appendPostData({ TradeDateEnd: $("#DateToTradeDate").val() });
|
|
listGrid.appendPostData({ BuySell: $("#BuySell").val() });
|
|
listGrid.appendPostData({ StartDateStart: $("#DateFromStartDate").val() });
|
|
listGrid.appendPostData({ StartDateEnd: $("#DateToStartDate").val() });
|
|
listGrid.appendPostData({ MaturityDateStart: $("#DateFromMaturityDate").val() });
|
|
listGrid.appendPostData({ MaturityDateEnd: $("#DateToMaturityDate").val() });
|
|
listGrid.appendPostData({ TradePrice: $("#TradePrice").val() });
|
|
|
|
var reqTradeStatus = $("#TradeStatus").val() == null
|
|
? ""
|
|
: $("#TradeStatus").val().join(",");
|
|
|
|
listGrid.appendPostData({ TradeStatus: reqTradeStatus });
|
|
listGrid.appendPostData({ OptName: $("#OptName").val() });
|
|
listGrid.appendPostData({ OptDateStart: $("#DateFromOptDate").val() });
|
|
listGrid.appendPostData({ OptDateEnd: $("#DateToOptDate").val() });
|
|
listGrid.appendPostData({ ValidState: $("#ValidState").val() });
|
|
listGrid.appendPostData({ TradeTypes: $("#TradeTypes").val().join(",") });
|
|
listGrid.appendPostData({ Comments: $("#Comments").val() });
|
|
listGrid.appendPostData({ ExerciseDateStart: $("#DateFromExerciseDate").val() });
|
|
listGrid.appendPostData({ ExerciseDateEnd: $("#DateToExerciseDate").val() });
|
|
listGrid.appendPostData({ UnWindDateStart: $("#DateFromUnWindDate").val() });
|
|
listGrid.appendPostData({ UnWindDateEnd: $("#DateToUnWindDate").val() });
|
|
listGrid.appendPostData({ ExerciseMode: $("#ExerciseMode").val() });
|
|
|
|
if (pageData.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 downloadUnwindReports() {
|
|
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="DOCX"> DOC</label>';
|
|
if (pageData.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 (pageData.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 (resp) {
|
|
if (resp.success) {
|
|
|
|
SearchClick(true);
|
|
}
|
|
});
|
|
} else {
|
|
main.alert("用印前请先生成确认书!");
|
|
}
|
|
});
|
|
}
|
|
|
|
function BatchSealContracts(){
|
|
var jgrid = jQuery('#listGrid');
|
|
console.log(jgrid);
|
|
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 (res) {
|
|
if (res.success) {
|
|
|
|
SearchClick(true);
|
|
}
|
|
});
|
|
} else {
|
|
main.alert("用印前请先生成确认书!");
|
|
}
|
|
});
|
|
}
|