Files
zszq-trs/YLErpWeb/Views/supervise_report/supervise_SAC_Report.cshtml
T

379 lines
19 KiB
Plaintext

@{
ViewBag.Title = "证券业监管报告";
ViewBag.Menu = "监管报告-证券业报送";
Layout = "~/Views/Shared/_MainLayout.cshtml";
var valueDate = ViewBag.valueDate;
var dataSourceMode = PS.Config.ErpElement.SAC_ReportDataSource;
List<SelectListItem> monthList = ViewBag.monthList;
List<SelectListItem> quarterList = ViewBag.quarterList;
var maxRequestLength = PS.Config.UploadFileSizeLimit * 1024;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title></title>
<link href="~/Statics/libs/zTree/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" />
<script src="~/Statics/libs/zTree/js/jquery.ztree.all-3.5.min.js?v=@(HtmlUtil.JsVersion)"></script>
<script src="~/Scripts/app/superviseReport/sacReport.js?v=@(HtmlUtil.JsVersion)"></script>
<script type="text/javascript">
const page = {
sysdate: '@valueDate',
maxRequestLength: @maxRequestLength,
dataSourceMode: @((int)PS.Config.ErpElement.SAC_ReportDataSource),
g_grid: {},
uploadColumns: [
{
name: 'id', label: 'id', index: 'id', align: 'center', hidden: true
}, {
name: 'createDate', label: '文件日期', index: 'createDate', width: 80, align: 'center', formatter: (cellValue, options, rowObject) => {
var formatStr = "YYYY-MM-DD";
if (rowObject.fileType == "季度报告" || rowObject.fileType == "半年报") {
formatStr = "YYYY-MM";
}
return new moment(cellValue).format("YYYY-MM-DD");
}
}, {
name: 'fileType', label: '文件类型', index: 'fileType', width: 120, align: 'center'
}, {
name: 'fileName', label: '文件名', index: 'fileName', width: 250, sortable: false
}, {
name: 'optDate', label: '上传时间', index: 'optDate', width: 150, align: 'center', formatter: 'datetime'
}, {
name: 'optUserName', label: '上传用户', index: 'optUserName', width: 80, align: 'center', sortable: false
}, {
name: 'filePath', label: '文件', index: 'filePath', width: 80, align: 'center', sortable: false, formatter: (cellValue, options, rowObject) => {
var html = "<input type=\"button\" class=\"wentiEdit\" title='下载文件' style=\"width: 50px!important;\" onclick=\"DownLoadDoc('{0}')\" value=\"{1}\" />"
.template(cellValue, "下载");
return html;
}
}, {
name: 'EncryptId', label: '操作', index: 'EncryptId', width: 80, align: 'center', sortable: false, formatter: (cellValue, options, rowObject) => {
var html = "<input type=\"button\" class=\"wentiEdit\" title='删除文件' style=\"width: 50px!important;\" onclick=\"DelEventFile('{0}')\" value=\"{1}\" />"
.template(cellValue, "删除");
return html;
}
}],
reportList: [
{
name: 'id', label: 'id', index: 'id', align: 'center', hidden: true
}, {
name: 'ReportDate', label: '报告日期', index: 'ReportDate', width: 100, align: 'center', formatter: 'date'
}, {
name: 'DataDate', label: '交易日期', index: 'DataDate', width: 100, align: 'center', formatter: 'date'
}, {
name: 'FileTag', label: '报送文件标识', index: 'FileTag', width: 280, align: 'center'
}, {
name: 'Opt', label: '详情', index: 'Opt', width: 140, align: 'center', sortable: false, formatter: (cellValue, options, rowObject) => {
//if (rowObject.ReportReponseStatus <= 1) { return ""; }
var html = "<input type=\"button\" class=\"wentiEdit\" title='查看报表明细' style=\"width: 50px!important;\" onclick=\"showDetails('{0}')\" value=\"{1}\" />"
.template(rowObject.EncryptId, "查看");
html += "<input type=\"button\" class=\"wentiEdit\" title='导出报表明细' style=\"width: 50px!important;\" onclick=\"exportDetails('{0}','{2}')\" value=\"{1}\" />"
.template(rowObject.EncryptId, "导出", rowObject.FileTag);
return html;
}
}, {
name: 'FilePath', label: '报送文件', index: 'FilePath', width: 80, align: 'center', sortable: false, formatter: (cellValue, options, rowObject) => {
if (cellValue.length === 0) { return ""; }
var html = "<input type=\"button\" class=\"wentiEdit\" title='下载报送文件' style=\"width: 50px!important;\" onclick=\"DownLoadDoc('{0}')\" value=\"{1}\" />"
.template(cellValue, "下载");
return html;
}
}, {
name: 'ReportReponseStatus', label: '报送操作/结果', index: 'ReportReponseStatus', width: 160, align: 'left', formatter: (cellValue, options, rowObject) => {
var html = "";
switch (cellValue) {
case 0:
html = "<input type=\"button\" class=\"wentiEdit\" title='发送该文件' onclick=\"SendReportFile('" + rowObject.EncryptId + "')\" value=\"{1}\" />"
.template(cellValue, "确认发送");
html += "<input type=\"button\" class=\"wentiEdit\" title='删除该文件' onclick=\"DeleteReportFile('" + rowObject.FileTag + "')\" value=\"{1}\" />"
.template(cellValue, "删除");
break;
case 1:
html = "已发送";
break;
case 2:
html = "成功";
break;
case 3:
html = rowObject.ReportReponseMessage;
break;
default:
}
return html;
}
}, {
name: 'ReportReponsePath', label: '响应文件', index: 'ReportReponsePath', width: 80, align: 'center', sortable: false, formatter: (cellValue, options, rowObject) => {
if (cellValue.length === 0) { return ""; }
var html = "<input type=\"button\" class=\"wentiEdit\" title='查看上传文件' style=\"width: 50px!important;\" onclick=\"DownLoadDoc('{0}')\" value=\"{1}\" />"
.template(cellValue, "下载");
return html;
}
}, {
name: 'optDate', label: '操作时间', index: 'optDate', width: 150, align: 'center', sortable: false, formatter: 'datetime'
}, {
name: 'OptName', label: '操作人', index: 'OptDate', width: 150, align: 'center', sortable: false
}],
IDMark_A: "_a",
report: {
ReportDescOption: [],
ReportDescSwap: []
},
isZhongjin : false
}
$(function () {
$("#editCode").hide();
initPage();
});
</script>
<style>
.right {
float: right;
}
.search-group {
width: auto !important;
}
.inblock {
display: inline-grid;
}
.right {
float: right;
}
.search-group span {
width: 150px !important;
}
.search-group span, .search-group input {
margin-right: 12px !important;
font-size: 12px !important;
}
#DateValueDate, #DateDataDate, #sacReport, #nafmiiReport, #isdaReport, #eventReport, #otherReport, #periodicReportQuarter {
width: 152px !important;
font-size: 1rem !important;
}
.radioBtn {
height: 16px;
vertical-align: middle;
}
.checkboxBtn {
vertical-align: middle;
margin-right: 2px;
}
.extendInfo-Value {
width: calc(100% - 170px);
margin: 0 9px;
}
.fa-arrow-right {
color: black;
margin: 0 8px;
}
a[readonly] i {
color: darkgrey;
}
.my-skin .layui-layer-btn a {
background-color: red;
border: 1px solid red;
color: #fff;
}
</style>
</head>
<body>
<div>
<div class="searchdiv">
@Html.SearchDate("ValueDate", "报送日期")
@* @Html.SearchDate("DataDate", "交易日期") *@
@* <div style="display: inline-block; margin: 0 10px; ">
<a title="监管报送逻辑" style="text-decoration: underline; cursor: pointer;" onclick="showWindow($('#tipInfo'),'监管报送逻辑');return false;">报送说明</a>
</div> *@
<div class="right">
@MyControls.Btn("修改编号", "Upload('修改编号','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet','/App_Docs/导入模板/修改约定编号导入模板.xlsx')", id: "editCode")
@MyControls.Btn("手工上传", "Upload('报送模板','application/zip','/App_Docs/导入模板/Report.zip')")
@* @MyControls.Btn("附加信息", "showWindow($('#extendInfo'),'收益计算说明',saveReportDesc)") *@
@MyControls.Btn("查看附件", "jqGridInit('查看附件')")
@MyControls.Btn("生成报告", "generateReportFile()")
@MyControls.Btn("查看/发送", "jqGridInit('查看/发送报告')")
</div>
</div>
<div class="yc-panel">
<div class="inblock">
<ul id="reportTree" class="ztree"></ul>
</div>
<div class="inblock right searchdiv" style="width: 360px;background-color: aliceblue;">
<span style="color: #6c757d;">补充信息 &gt;</span>
<div class="search-group">
<span class="search-label" for="SenderCode">报送方代码</span>
<input class="search-input" id="SenderCode" name="SenderCode" type="text" value="" autocomplete="off">
</div>
<div class="search-group">
<span class="search-label" for="ReceiverCode">接收方代码</span>
<input class="search-input" id="ReceiverCode" name="ReceiverCode" type="text" value="" autocomplete="off">
</div>
@Html.MyAceDropdownInput2("sacReport", "SAC报告月份", monthList, false)
@Html.MyAceDropdownInput2("nafmiiReport", "NAFMII报告月份", monthList, false)
@Html.MyAceDropdownInput2("isdaReport", "ISDA报告月份", monthList, false)
<div class="search-group">
<span for="eventReport_A" class="search-label">重大事项报告</span>
<input id="eventReport_A" value="上传" class="search-input" type="button" onclick="Upload('重大事项报告')" />
</div>
@*<div class="search-group">
<span for="eventReport" class="search-label">撤销重大事项报告报送日</span>
<input class="search-input datepicker" id="eventReport" name="eventReport" type="text" value="" autocomplete="off">
</div>*@
<div class="search-group">
<span for="eventReportDesc" class="search-label">重大事项说明</span>
<input class="search-input" id="eventReportDesc" name="eventReport" type="text" value="" autocomplete="off">
</div>
<div class="search-group">
<span for="otherReport_A" class="search-label">其他事项报告</span>
<input id="otherReport_A" value="上传" class="search-input" type="button" onclick="Upload('其他事项报告')" />
</div>
@*<div class="search-group">
<span for="otherReport" class="search-label">撤销其他事项报送日</span>
<input class="search-input datepicker" id="otherReport" name="otherReport" type="text" value="" autocomplete="off">
</div>*@
<div class="search-group">
<span for="otherReportDesc" class="search-label">其他事项说明</span>
<input class="search-input" id="otherReportDesc" name="otherReport" type="text" value="" autocomplete="off">
</div>
<div class="search-group">
<span for="periodicReportQuarter_A" class="search-label">季度报告</span>
<input id="periodicReportQuarter_A" value="上传" class="search-input" type="button" onclick="Upload('季度报告')" />
</div>
@Html.MyAceDropdownInput2("periodicReportQuarter", "季度报告季度", quarterList, false)
</div>
</div>
</div>
@await Html.PartialAsync("/Views/Common/_importFiles.cshtml", new ImportFileModel()
{
Accept = "application/pdf",
Buttons = new Dictionary<string, BtnReq>()
{
["上传"] = new BtnReq() { OnClick = "uploadOuterData()" },
},
NotesHtml = "<div id='uploadType' style='display: none;'></div>"
})
<div id="extendInfo" style="display:none">
<div class="yc-panel">
<span style="color: #6c757d;">场外期权 &gt;</span>
<div class="search-group">
<select class="search-label" style="float:left" key="ReportDescOption" id="OptionKey">
<option>默认</option>
@{
foreach (var item in ConsTrade.AllTradeTypes.Where(O => O != "收益互换"))
{
<option>@item</option>
}
}
</select>
<textarea class="extendInfo-Value" id="OptionValue" key="ReportDescOption" rows="3" cols="20"></textarea>
</div>
<hr />
<span style="color: #6c757d;">互换 &gt;</span>
<div class="search-group">
<select class="search-label" style="float:left" key="ReportDescSwap" id="SwapKey">
<option>默认</option>
<option>甲方支付乙方</option>
<option>乙方支付甲方</option>
</select>
<textarea class="extendInfo-Value" id="SwapValue" key="ReportDescSwap" rows="3" cols="20"></textarea>
</div>
</div>
</div>
<div id="tipInfo" style="display: none; padding: 15px;">
<div class="yc-panel">
<h2>关于时间的说明</h2>
<hr />
<h4>客户相关协议:</h4>
<ul>
<li>包括主协议、主协议关联产品列表、补充协议、履约保证书</li>
<li>分为客户开户后,未开户两种场景:</li>
</ul>
<h5>客户开户后</h5>
<ul>
<li>新增、补正和废止操作,将根据报送时选择的报告日期去查找上述操作的操作日期相匹配的记录去报送。</li>
</ul>
<h5>客户未开户</h5>
<ul>
<li>新增、补正和废止操作,将在客户开户操作日期和报告日期相匹配时,将最新版本以最新的状态报送出去。</li>
</ul>
<h4>交易确认书相关:</h4>
<ul>
<li>包括期权交易确认书、互换交易确认书</li>
<li>新增交易操作,将根据根据报送时选择的交易日期去查找交易开始日期相匹配的记录去报送;</li>
<li>补正和废止操作,将根据报送时选择的报告日期去查找上述操作的操作日期相匹配且已报送过新增的记录去报送;</li>
</ul>
<h4>交易存续期相关:</h4>
<ul>
<li>包括期权展期、互换展期、期权了结、互换了结</li>
<li>新增了结操作,将根据报送时选择的交易日期去查找交易了结日期相匹配的记录去报送。</li>
<li>新增展期、补正展期、废止展期、补正了结、废止了结操作,将根据报送时选择的报告日期去查找上述操作的操作日期相匹配且对应交易报送过新增且仍未废止的记录去报送;</li>
</ul>
</div>
</div>
<div class="modal" tabindex="-1" id="modalChooseDateRange" data-backdrop="static">
<div class="modal-dialog">
<div class="modal-content" style="min-width:400px;" id="Content">
<div class="modal-header">
<h5 class="modal-title">选择导出区间</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
@Html.SearchDate("DataDateFrom", "起始交易日")
@Html.SearchDate("DataDateTo", "结束交易日")
</div>
<div class="modal-footer">
<div style="margin: 5px; float: right;" id="buttons">
@MyControls.Btn("生成", "batchExport()")
</div>
</div>
</div>
</div>
</div>
<script type="text/html" id="reportTpl">
<div class="container" style="overflow:hidden;padding:20px;">
<form class="form-horizontal" method="post" id="generateReport" onsubmit="return false;">
<div class="form-group">
@* <label class="formlabel">标的资产类型</label> *@
<select id="reportType">
<option value="0">系统默认</option>
<option value="1">手动上传</option>
</select>
</div>
<div class="form-group" >
<h6>说明:</h6>
<div>系统默认:系统根据配置的数据源,生成所有数据源中要报送的数据;</div>
<div>
手工上传:系统将仅从当天最后一次上传的模板中,生成要报送的数据;
</div>
</div>
<div style="margin: 0px auto; padding: 10px;">
<input class="btn btn-primary" type="button" onclick="generateReportFromFile();return false;" value="确定" />
<input class="btn btn-primary" type="button" onclick="layer.closeAll();return false;" value="关闭" />
</div>
</form>
</div>
</script>
</body>
</html>