Files
zszq-trs/YLErpWeb/wwwroot/Scripts/app/trade/TradeConfirmBook.js
T

1176 lines
43 KiB
JavaScript

var valuedate = page.valuedate;
var ContractTypeCtrl;
var ReportId;
const colModelGrid = (new function () {
var i = 0;
this.colModels = [
{
name: 'id',
label: 'id',
index: 'id',
sortIndex: i++,
hidden: true,
optionHide: true
},
{
name: '',
label: '操作',
width: 450,
align: 'left',
formatter: showToolName
},
{
name: 'MetaDic.send_email_result',
label: '邮件状态',
index: 'MetaDic.send_email_result',
sortIndex: i++,
width: 70,
align: 'left',
sortable: false,
formatter: function (cellValue, options, rowObject) {
var html = "";
html += "<lable id=\"email_result{0}\">{1}</lable>".template(rowObject.id, rowObject.MetaDic.send_email_result);
return html;
}
},
{
name: 'EncryptId',
hidden: true,
optionHide: true
}, {
name: 'ClientId',
hidden: true,
optionHide: true
}, {
name: 'UnderlyingId',
hidden: true,
optionHide: true
}, {
name: 'TradePrice',
hidden: true,
optionHide: true
}, {
name: 'TradeSinglePrice',
hidden: true,
optionHide: true
}, {
name: 'MetaDic',
hidden: true,
optionHide: true
}, {
name: 'MetaDic.ContractRId',
hidden: true,
optionHide: true
}, {
name: 'TradeStatus',
label: '交易状态',
index: 'TradeStatus',
sortIndex: i++,
width: 70,
align: 'left'
}, {
name: 'TradeNumber',
label: '交易编号',
index: 'TradeNumber',
sortIndex: i++,
width: 200,
align: 'left'
}, {
name: 'ContractCode',
label: '合约编号',
index: 'ContractCode',
sortIndex: i++,
width: 200,
align: 'left',
sortable: false,
formatter: function (cellValue, options, rowObject) {
var html = "";
if (cellValue) {
if (!page.isWuChan) {
html += "<a href='javascript:;' title='修改合约编号' id='bt_" + rowObject.MetaDic.ContractEncryptId + "' onclick='colModelGrid.setControl(\"" + rowObject.MetaDic.ContractEncryptId + "\")' ><i class='fa fa-pencil-square-o'></i></a>";
}
html += "<input style='width: 100%;' id='ip_" + rowObject.MetaDic.ContractEncryptId + "' type='text' value='" + cellValue + "' disabled />";
} else {
html = "";
}
return html;
}
}, {
name: 'ClientName',
label: '客户名称',
index: 'ClientName',
sortIndex: i++,
width: 180,
align: 'left'
}, {
name: 'OriginalStockEqvNotional',
label: '名义本金',
index: 'OriginalStockEqvNotional',
sortIndex: i++,
width: 120,
align: 'left',
formatter: otcformat.trading.StockEqvNotional
}, {
name: 'TradeDate',
label: '交易日期',
index: 'TradeDate',
sortIndex: i++,
width: 90,
align: 'left',
formatter: 'date'
//}, {
// name: 'BuySell',
// label: '交易方向',
// index: 'BuySell',
// sortIndex: i++,
// width: 70,
// align: 'left'
}, {
name: 'UnderlyingCode',
label: '标的代码',
index: 'UnderlyingCode',
sortIndex: i++,
width: 60,
align: 'left',
formatter: ShowStructFormater
}, {
name: 'UnderlyingAssetClass',
label: '标的品种',
index: 'UnderlyingAssetClass',
sortIndex: i++,
width: 70,
align: 'left'
}, {
name: 'TradeType',
label: '结构类型',
index: 'TradeType',
sortIndex: i++,
width: 70,
align: 'left',
formatter: function (cellvalue, options, rowObject) {
return rowObject.StructureType && rowObject.IsGroup != 2 ? rowObject.StructureType : rowObject.TradeType;
}
//}, {
// name: 'OptionType',
// label: '看涨看跌',
// index: 'OptionType',
// sortIndex: i++,
// width: 70,
// align: 'left'
//}, {
// name: 'ExerciseModeCn',
// label: '行权方式',
// index: 'ExerciseModeCn',
// sortIndex: i++,
// width: 70,
// align: 'left',
// sortable: false
}, {
name: 'ExerciseDate',
label: '到期日期',
index: 'ExerciseDate',
sortIndex: i++,
width: 90,
align: 'left',
formatter: 'date'
//}, {
// name: 'Strike',
// label: '执行价格',
// index: 'Strike',
// sortIndex: i++,
// width: 90,
// align: 'left',
// formatter: StrikeFormatter
}, {
name: 'AssetBookName',
label: '簿记账户',
index: 'AssetBookName',
sortIndex: i++,
width: 70,
align: 'left'
}, {
name: 'StartDate',
label: '开始日期',
index: 'StartDate',
sortIndex: i++,
width: 90,
align: 'left',
formatter: 'date'
//}, {
// name: 'MaturityDate',
// label: '标的到期日',
// index: 'MaturityDate',
// sortIndex: i++,
// width: 90,
// align: 'left',
// formatter: 'date'
}, {
name: 'TraderName',
label: '交易员',
index: 'TraderName',
sortIndex: i++,
width: 70,
align: 'left'
}, {
name: 'Comments',
label: '备注',
index: 'Comments',
sortIndex: i++,
width: 140,
align: 'left'
}, {
name: 'OptName',
label: '交易操作者',
index: 'OptName',
sortIndex: i++,
width: 70,
align: 'left'
}, {
name: 'OptDate',
label: '交易操作时间',
index: 'OptDate',
sortIndex: i++,
width: 150,
align: 'left',
formatter: 'datetime'
}, {
name: 'ConfirmBookOptName',
label: '操作人',
index: 'ConfirmBookOptName',
width: 70,
align: 'left',
sortable: false,
formatter: function (cellvalue, options, rowObject) {
return rowObject.MetaDic.ConfirmBookOptName;
}
}, {
name: 'ConfirmBookOptDate',
label: '操作时间',
index: 'ConfirmBookOptDate',
width: 150,
align: 'left',
sortable: false,
formatter: function (cellvalue, options, rowObject) {
return rowObject.MetaDic.ConfirmBookOptDate;
}
}
];
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: function () { SearchClick(true) }
});
}
this.uploadNew = function (encryptId) {
var srcurl = "/TradeConfirmBook/confirmBookUploadNew/?Id=" + encryptId;
main.open("上传确认书", srcurl, {
area: ['500px', '420px'],
end: function () { SearchClick(true) }
});
}
this.ViewErrInfo = function (code) {
main.post("/trade/GetSealErrMsg/", { code: code },
{
success: function (resp) {
main.alert(resp.msg);
}
});
}
if (page.ConfirmBookStampStatus) {
var colObj = {
name: '',
label: '用印扫描件',
index: '',
width: 250,
align: 'left',
formatter: function (cellValue, options, rowObject) {
var templateHtml = "";
if (page.IsAutoSealAndUploadFiles && !page.IsAutoSealAfterGeneratedBook) {
templateHtml += "<input type=\"button\" class=\"wentiEdit\" {2} value=\"用印\" />";
}
var canGenerate = page.canGenerate == true ? "" : "disabled";
templateHtml += "<input type=\"button\" class=\"wentiEdit\" {0} value=\"上传\" +" + canGenerate + "/>" +
"<input type=\"button\" class=\"wentiEdit\" {1} value=\"下载\" />";
var 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"));
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.MetaDic.ContractRId))
);
}
if (rowObject.MetaDic.ContractDocUrl) {
html = html + (rowObject.MetaDic.ContractStatus === "草稿" || !rowObject.MetaDic.ContractStatus ? "未用印" : rowObject.MetaDic.ContractStatus);
}
return html;
}
};
this.colModels.splice(2, 0, colObj);
}
if (page.IsAutoSealAndUploadFiles) {
var colObj1 = {
name: 'SealResult',
label: '电子章用印结果',
index: 'SealResult',
width: 150,
align: 'center',
sortable: false,
formatter: function (cellValue, options, rowObject) {
if (rowObject.MetaDic.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.MetaDic.SealResult;
}
}
};
var colObj2 = {
name: 'SealTime',
label: '电子章用印时间',
index: 'SealTime',
width: 150,
align: 'left',
sortable: false,
formatter: function (cellValue, options, rowObject) {
return rowObject.MetaDic.SealTime;
}
};
this.colModels.push(colObj1, colObj2);
}
}());
function __initJqGrid() {
var PostData = {
TradeStatus: "",
ValidState: $("#ValidState").val(),
TradeDateStart: $("#DateFromTradeDate").val(),
TradeDateEnd: $("#DateToTradeDate").val()
};
if (!page.IsShanxiGushou) {
PostData.TradeTypes = $("#TradeTypes").val().join(',')
}
if (page.IsAutoSealAndUploadFiles) {
PostData.SealResults = $("#SealResults").val();
PostData.SealDateStart = $("#DateFromSealDate").val();
PostData.SealDateEnd = $("#DateToSealDate").val();
}
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/tradeConfirmEmailQuery',
datatype: page.initEmptyView ? 'local' : 'json',
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,
multiselect: !(page.SettleDocModeMultiple && page.BrokerMode)
});
page.initEmptyView && jQuery("#listGrid").jqGrid('setGridParam', { datatype: 'json' });
}
$(function () {
$('#TradeStatus').css('width', '250px');
$("#DateFromTradeDate").datepicker({
changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true,
onSelect: function (selectedDate) {//选择日期后执行的操作
setValidation("DateToTradeDate", selectedDate, false);
}
});
$("#DateToTradeDate").datepicker({
changeMonth: true, changeYear: true, showButtonPanel: true, showOtherMonths: true, selectOtherMonths: true,
onSelect: function (selectedDate) {//选择日期后执行的操作
setValidation("DateFromTradeDate", selectedDate, true);
}
});
$("#DateToTradeDate").val(valuedate);
if (!page.initEmptyView) {
$("#DateFromTradeDate").val(valuedate);
//$("#TradeStatus").val("确认成交");
//$("#TradeStatus").trigger("change");
}
setValidation("DateFromTradeDate", $("#DateToTradeDate").val(), true);
setValidation("DateToTradeDate", $("#DateFromTradeDate").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(valuedate);
$("#DateFromSealDate").val(valuedate);
setValidation("DateFromSealDate", $("#DateToSealDate").val(), true);
setValidation("DateToSealDate", $("#DateFromSealDate").val(), false);
}
$(".datepicker").datepicker({
changeMonth: true,
changeYear: true,
showButtonPanel: true,
showOtherMonths: true,
selectOtherMonths: true
});
__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);
ContractTypeCtrl = new ContractTypeCtrl(document.getElementById('ContractTypeCtrl'));
SendEmailHub();
});
function gridComplete() {
$(".selftooltip").tooltip({ html: true, show: 50000, trigger: "hover" });
main.setcolumnChooser(jQuery('#listGrid'), page.configcolumn);
}
function customButton(cellValue, options, rowObject) {
var imageHtml = "<input type=\"button\" value=\"删除\" class=\"btn-warning\" onclick=\"deletetrade('" +
rowObject.EncryptId +
"');\" />";
return imageHtml;
}
function ShowStructFormater(cellValue, options, rowObject) {
var html;
//if (rowObject.TradeType === "结构化交易") {
// html = "<a href=\"#\" class=\"selftooltip\" style=\"z-index:10000000\" data-toggle=\"tooltip\" title=\"{1}\">{0}</a>"
// .template(cellValue || '', setStructTable(rowObject));
// return html;
//}
if (rowObject.TradeType === "合成价差期权") {
html =
"<a href=\"#\" class=\"selftooltip\" style=\"z-index:10000000\" data-toggle=\"tooltip\" title=\"{1}\">{0}</a>"
.template(cellValue || '', rowObject.SyntheticUnderlyingTipsInfo);
return html;
}
return cellValue || '';
}
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, (new Number(rowObject.StockEqvNotional) / 10000).toFixed(2) + "万");
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 === "是" ? (new Number(structTrades[i].Strike) * 100).toFixed(2) + "%" : 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 StrikeFormatter(cellValue, options, rowObject) {
if (rowObject.Strike) {
if (rowObject.IsMoneynessOption === "是") {
return otcformat.trading.premiumRateP(rowObject.Strike);
} else {
return otcformat.trading.umprice(rowObject.Strike);
}
} else {
return "";
}
}
//下载交易确认书
function DownLoadDoc(res) {
if (isExistFile(res)) {
window.open(res);
} else {
res += "x";
if (isExistFile(res)) {
window.open(res);
} else {
main.confirm("文件不存在");
}
}
}
//判断文件是否存在
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 BatchDownLoadDoc() {
var startDate = $("#DateFromTradeDate").val();
var endDate = $("#DateToTradeDate").val();
var clientIds = $("#ClientId").val();
var tradeids = "";
var jgrid = jQuery('#listGrid');
var tradeIdList = main.GetGridIds(jgrid);
tradeids = tradeIdList.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="DOC"> DOC</label>' +
'<label class="btn btn-sm btn-primary" style="border:none"><input type="checkbox" checked name="docType" value="PDF"> PDF</label>';
if (page.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: tradeIdList, TradeCashIds: null, 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 rowdblclick(rowid) {
var rowData = $(this).getRowData(rowid);
var tradeType = rowData.TradeType;
starttradeView(rowData.EncryptId, tradeType);
}
function toPdf(id) {
main.post("/TradeConfirmBook/ToPdf/", { enid: id }).done(function (res) {
// var arr = res.split(/[\\,/,//]/);
// var fileName = arr[arr.length - 1];
// var a = document.getElementById("downPdf");
// a.href = res;
// a.download = fileName;
// a.click();
window.open(res);
SearchClick(true);
});
}
function BatchCreateContracts() {
var jgrid = jQuery('#listGrid');
var tradeIds = main.GetGridIds(jgrid);
if (tradeIds.length == 0) {
main.alert("请至少选择一笔交易"); return;
}
main.confirm("确认为所勾选的交易生成交易确认书?", function () {
gJGenerateConfirmBook();
});
}
function BatchDownloadContracts() {
var tradeids = "";
var jgrid = jQuery('#listGrid');
var tradeIds = main.GetGridIds(jgrid);
if (tradeIds.length == 0) {
main.alert("请至少选择一笔交易"); return;
}
var postData = { TradeIds: tradeIds.join(',') };
main.post("/TradeConfirmBook/BatchDownContracts/", postData).done(function (res) {
if (res.success) {
window.open(res.obj);
} else {
main.alert(res.msg.replace("\r\n", "<br/>"));
}
});
}
function sendReport() {
if (ReportId) {
var contractTypes = ContractTypeCtrl.getValue();
var mailPostData = { enid: ReportId, reciver: contractTypes };
//if (page.IsAutoSealAndUploadFiles) {
// mailPostData.sealResults = $("#SealResults").val();
//}
main.post("/TradeConfirmBook/SentMail/", mailPostData).done(
function (res) {
console.log(res);
SearchClick(true);
}
);
} else {
var listGrid = $('#listGrid');
var postData = listGrid.getPostData();
var ors = main.GetGridIds(listGrid);
postData.TradeIds = ors.join(',');
var contractTypes = ContractTypeCtrl.getValue();
postData["receiver"] = contractTypes;
main.post("/TradeConfirmBook/BatchMailContracts/", postData).done(function (res) {
SearchClick(true);
});
}
$("#modalChooseContractType").modal('hide');
}
function BatchMailContracts() {
ReportId = undefined;
var clientIds = $("#ClientId").val();
ContractTypeCtrl.changeContractType(clientIds);
$("#modalChooseContractType").modal('show');
}
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);
}
});
}
}).fail(function (res) {
});
}
function BatchSealContracts() {
var jgrid = jQuery('#listGrid');
var ids = main.GetGridIds(jgrid, "MetaDic.ContractRId");
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);
}
});
}
}).fail(function (res) {
});
}
function sentMail(tradeid, clientid) {
main.post("/swaptrade2/SendConfimEmail?tradeId=" + tradeid).done(function (res) {
if (res.success) {
SearchClick(true);
}
});
}
function showDownload(cellvalue, options, rowObject) {
var html = "";
if (rowObject.MetaDic.ContractDocUrl) {
html += "<input type=\"button\" class=\"wentiEdit\" title='下载交易确认书' onclick=\"DownLoadDoc('{0}')\" value=\"{1}\" />"
.template(rowObject.MetaDic.ContractDocUrl, "下载");
} else {
html += "<input type=\"button\" class=\"wentiEdit\" title='交易确认书未生成或未找到制定确认书文件' readonly=\"true\" value=\"{1}\" />"
.template(rowObject.MetaDic.ContractDocUrl, "下载");
}
return html;
}
function showToolName(cellValue, options, rowObject) {
var sentMailCount = rowObject.SentMailCount;
if (!sentMailCount) {
sentMailCount = 0;
}
var html = showDownload(cellValue, options, rowObject);
var title = page.IsAutoSealAndUploadFiles && page.IsAutoSealAfterGeneratedBook ? "生成并用印" : "生成确认书";
var canGenerate = page.canGenerate == true ? "" : "disabled";
var isWait = (rowObject.MetaDic.SealResult == "用印等待中");
html += "<input type=\"button\" class='wentiEdit' title='{2}' onclick=\"gJGenerateConfirmBook({0},{3},{1})\" value='{2}' {4}/>".template(rowObject.id, rowObject.MetaDic.HasGeneratedConfirmBook, title, isWait, canGenerate);
if (rowObject.MetaDic.ContractDocUrl && page.canSendEmail == true) {
html += "<input type=\"button\" class=\"wentiEdit\" title='发送交易所在的交易确认书到客户对应接收Email' onclick=\"sentMail('{0}','{2}')\" value=\"{1}\" />"
.template(rowObject.id, "发送Email", rowObject.ClientId);
} else {
html += "<input type=\"button\" class=\"wentiEdit\" title='交易确认书未生成或未找到制定确认书文件' disabled readonly=\"true\" value=\"{1}\" />"
.template(rowObject.EncryptId, "发送Email");
}
var canUpload = page.canGenerate == true && rowObject.MetaDic.ContractDocUrl ? "" : "disabled";
html += "<input type=\"button\" class=\"wentiEdit\" value=\"上传\" onclick=\"colModelGrid.uploadNew('{0}')\" {1} />".template(rowObject.MetaDic.ContractEncryptId, canUpload);
return html;
}
function starttradeView(id, tradeType) {
if (tradeType.indexOf("收益互换") >= 0 || tradeType == "多空组合") {
main.open("查看交易", "/swaptrade2/tradeView/?enid=" + id + "&isOnlyCloseButton=true", { area: ['90%', '90%'] });
}
else {
let srcurl = "/trade/tradeView/?enid=" + id + "&isOnlyCloseButton=true";
main.open("查看交易", srcurl, { area: ['1260px', '800px'] });
}
}
function reloadtrade() {
//重新加载
SearchClick();
$('#modal-edittrade').modal('hide');
}
function SearchClick(isSearchclick) {
var listGrid = $('#listGrid');
listGrid.appendPostData({ TradeNumber: $("#TradeNumber").val() });
listGrid.appendPostData({ ContractCode: $("#ContractCode").val() });
listGrid.appendPostData({ ClientIds: ($("#ClientId").val() || []).join() });
listGrid.appendPostData({ ClientName: ($("#ClientName").val() || []).join() });
listGrid.appendPostData({ AssetIds: ($("#AssetId").val() || []).join() });
listGrid.appendPostData({ AssetIdGroupList: $("#GroupId").val() });
listGrid.appendPostData({ UnderlyingIds: !$("#UnderlyingId").val() ? "" : $("#UnderlyingId").val().join(",") });
listGrid.appendPostData({ UnderlyingInstrumentType: $("#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() });
listGrid.appendPostData({ OptName: $("#OptName").val() });
listGrid.appendPostData({ OptDateStart: $("#DateFromOptDate").val() });
listGrid.appendPostData({ OptDateEnd: $("#DateToOptDate").val() });
listGrid.appendPostData({ ValidState: $("#ValidState").val() });
if (!page.IsShanxiGushou) {
listGrid.appendPostData({ TradeTypes: $("#TradeTypes").val().join(",") });
}
var reqTradeStatus = main.isEmpty($("#TradeStatus").val()) || $("#TradeStatus").val().includes("")
? page.reqTradeStatus
: $("#TradeStatus").val().join(",");
listGrid.appendPostData({ TradeStatus: reqTradeStatus });
listGrid.appendPostData({ Comments: $("#Comments").val() });
listGrid.appendPostData({ ExerciseDateStart: $("#DateFromExerciseDate").val() });
listGrid.appendPostData({ ExerciseDateEnd: $("#DateToExerciseDate").val() });
listGrid.appendPostData({ TradeIds: "" });
if (page.IsAutoSealAndUploadFiles) {
listGrid.appendPostData({ SealResults: $("#SealResults").val() });
listGrid.appendPostData({ SealDateStart: $("#DateFromSealDate").val() });
listGrid.appendPostData({ SealDateEnd: $("#DateToSealDate").val() });
}
if (isSearchclick) {
//点击搜索时默认第一页
listGrid.jqGrid('setGridParam', { page: 1 });
}
listGrid.trigger('reloadGrid');
}
function showcolumnChooser() {
var jgrid = jQuery('#listGrid');
main.showcolumnChooser(jgrid, page.configcolumn);
}
function gJGenerateConfirmBook(id, isWait, hasGeneratedConfirmBook) {
if (page.IsAutoSealAndUploadFiles) {
//if (isWait) {
// if (!confirm("用印正在等待中重新生成将中断用印并重新进行自动用印(如有),是否确认操作?")) {
// return;
// }
//}
if (!confirm("重新生成将覆盖已有的交易确认书并重新进行自动用印(如有),是否确认操作?")) {
return;
}
}
if (hasGeneratedConfirmBook == "True") {
if (!page.IsAutoSealAndUploadFiles) {
if (!confirm("确认覆盖已有的交易确认书?")) {
return;
}
}
}
var tradeIds = [];
if (id) {
tradeIds.push(id);
} else {
var jgrid = jQuery('#listGrid');
tradeIds = main.GetGridIds(jgrid);
//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 (tradeIds.length === 0) {
main.message("请选择交易");
return;
}
var templateHtml = "";
if (page.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 (page.templateNames !== null) {
page.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" style="border:none"><input type="radio" checked name="docType" value="DOCX"> DOC</label>' +
'<label class="btn btn-sm btn-primary active" style="border:none"><input type="radio" name="docType" value="PDF"> PDF</label>' +
'</div>' +
'</div>' +
templateHtml +
'</form>';
main.open2("生成交易确认书",
htmlContent,
{
area: ["300px", "200px"],
btn: ['生成', '取消'],
yes: function (index, layero) {
var docType = $('input[name="docType"]:checked').val();
if (page.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 });
});
}
}
var confirmBookPostData = { tradeIds: tradeIds, docType: docType, startDate: $("#DateFromTradeDate").val(), endDate: $("#DateToTradeDate").val() };
//if (page.IsAutoSealAndUploadFiles) {
// confirmBookPostData.SealResults = $("#SealResults").val();
// //confirmBookPostData.SealDateStart = $("#DateFromSealDate").val();
// //confirmBookPostData.SealDateEnd = $("#DateToSealDate").val();
//}
main.post("/TradeConfirmBook/GJGenerateConfirmBook/", confirmBookPostData)
.done(function (resp) {
var res = resp.obj;
//for (let index = 0; index < resp.obj.length; index++) {
// if (!isExistFile(res[index])) {
// res[index] += "x";
// }
//}
if (resp.success) {
main.downloadFiles(res);
} else {
main.alert(resp.msg.replace("\r\n", "<br/>"));
if (resp.obj) {
main.downloadFiles(res);
}
}
window.reloadtrade();
window.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 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 {
let time = selectedDate.split("-");
let year = time[0];
let month = time[1] - 1;
let day = time[2];
$("#" + elId).datepicker(
'option', 'minDate', new Date(year, month, day)
);
}
}
function ConfirmTemplateChoose() {
window.location.href = "/client/ClientTemplateChoose";
}
// 交易确认书邮件发送
function SendEmailHub() {
// 创建SignalR连接并连接到服务器上的Hub
var connection = new signalR.HubConnectionBuilder()
.withUrl('/tradeconfirm/sendemailhub')
.build();
connection.start()
.then(function () {
$("#batchSendEmail").click(function () {
var jgrid = jQuery('#listGrid');
var ids = main.GetGridIds(jgrid);
if (ids.length == 0) {
main.alert("请至少选择一笔交易"); return;
}
var req = {
tradeIds: ids,
}
connection.invoke('StartProcessing', JSON.stringify(req));
main.waitMe(true);
});
}).catch(function (error) {
console.error(error);
});;
// 监听服务器发送的消息。
connection.on('UpdateProgress', function (msg) {
if (msg != null && msg != '') {
let jsonObject = JSON.parse(msg);
$("#email_result" + jsonObject.tradeId).text(jsonObject.send_email_result);
}
});
// 监听服务器发送的异常消息。
connection.on('ExceptionMessage', function (msg) {
if (msg.indexOf("正在发送邮件") < 0) {
main.waitMe(false);
SearchClick(true);
}
main.alert(msg);
});
// 监听服务器发送的完成消息。
connection.on('ProcessCompleted', function () {
main.alert("邮件发送处理完毕");
main.waitMe(false);
SearchClick(true);
});
}