Загрузка данных


<!DOCTYPE html>
<%@ taglib prefix="tags" tagdir="/WEB-INF/tags" %>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="s" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

	<html lang="ru">

		<jsp:include page="head.jsp" />
		<jsp:useBean id="currentDate" class="java.util.Date"/>

		<body>

			<script type="text/javascript" src="<c:url value='/js/${version}/queryAction.js'/>"></script>
			<script type="text/javascript" src="<c:url value='/js/${version}/queryTable.js'/>"></script>
			<script type="text/javascript">

				let sharerData;    
				let onSharerInitComplete;
				let onSharerRowSelect;
				let onSharerRowDeselect;

				$(function () {

					onSharerInitComplete = ( queryAction ) => {
						$('#queryTableActionContainer_YIW341uY').append($('#printExtractDocDropDown'));
					};
					onSharerRowSelect = ( data, index ) => {
						sharerData = data;
						showFixing(data.serviceType);
						showOperationInfo(data.balance, data.serviceType);
						$('#printExtractDocDrop').prop('disabled', false);
						$('#sharerStateInfoHistory').css("display", "block");
						$('#sharerClassHistory').css("display", "block");
						$("#sharer_by_individual_id").css("display", "block");
						clientCardContractTable.reload();
						showNPOAdvInfo(data)

					};
					onSharerRowDeselect = ( data, index ) => {
						sharerData = null;
						showFixing();
						showOperationInfo();
						$('#printExtractDocDrop').prop('disabled', true);
						$('#sharerStateInfoHistory').css("display", "none");
						$('#sharerClassHistory').css("display", "none");
						$("#sharer_by_individual_id").css("display", "none");
						clientCardContractTable.reload();
						showNPOAdvInfo()
					};
					onSharerDrawCallback = ( settings ) => {
						sharerData = null
						showFixing();
						showOperationInfo();
						$('#printExtractDocDrop').prop('disabled', true);
						clientCardContractTable.reload();
						showNPOAdvInfo()
					};

					$('#printExtractDocDropDown').addClass('disabled');

					$("#printAccountStatement").click(function () { openReportParamModal('AccountStatement'); });
					$("#print1279").on("click", function () { openReportParamModal('Report1279'); });
					$("#printAccountStatementExtended").on("click", function () { openReportParamModal('AccountStatementExtended'); });
					$("#printReportPaymentOps").bind("click", openReportPaymentOps);

					function getContractData(data) {

						return new Promise((resolve, reject) => {
							$.ajax({
								url: "queryModel.json",
								type: "POST",
								data: {
									queryModelCode: "CTiFQeOK",
									id: data.contractId
								},
								dataType: "json",
								success: function(data) {		
									resolve(data)
								},
								error: function(xhr, status, error) {
									reject(error)
								},
							})
						}) 
					}
					function getIndividualData(individual_id) {

						return new Promise((resolve, reject) => {
							$.ajax({
								url: "queryModel.json",
								type: "POST",
								data: {
									queryModelCode: "CE1vw9nq",
									id: individual_id
								},
								dataType: "json",
								success: function(data) {													
									resolve(data)
								},
								error: function(xhr, status, error) {
									reject(error)
								},
							})
						}) 
					}
					async function showNPOAdvInfo(data) {
						if ( !data ) {
							setAccountInfoData()
							return
						}

						const contract =  await getContractData(data)
						const individual =  await getIndividualData(data.individual_id)

						$('body').data('contract', contract)
						$('body').data('individual', individual)
						$('body').data('sharer', data)

						setAccountInfoData(data.serviceType)
					}

					function unloadAccountStatement(sharerId, code, sharerNumber, d2, sharerDate) {
						var report = new QueryReport(code, null, {
							sharer_id: sharerId, sharerNumber: sharerNumber, d2: d2, sharerDate: sharerDate
						});
						report.run();
					}

					function openReportParamModal(reportType) {
						var serviceType = (sharerData ? sharerData.serviceType : "");
						if (['AccountStatementExtended','Report1279'].includes(reportType)
								&& serviceType != 'OPS'){
							var messages = [];
							var m = {}
							m.message = 'Выписка для ОПС';
							m.messageType = 'WARNING';
							messages.push(m);
							showMessages(messages);
							return;
						}

						$('#reportParam').trigger('reset');
						$('#reportType').val(reportType);
						if (reportType === 'AccountStatementExtended'){
							$('#reportPrintType').show();
						}else{
							$('#reportPrintType').hide(); 
						}
						$("#reportParamModal").modal('show');
					}

					$('#printReport').bind("click", function () {

						var serviceType = (sharerData ? sharerData.serviceType : "");
						var sharerId = (sharerData ? sharerData.id : "");
						var d2 = $("#reportDate").val();
						var sharerNumber = (sharerData ? sharerData.sharerNumber : "");
						var reportCode; 

						switch($('#reportType').val()) {
							case 'AccountStatementExtended': {
								var reportPrintType = document.querySelector('input[name="reportPrintType"]:checked').value;
								if (serviceType == 'OPS') {
									if (reportPrintType == 'Excel') {
										reportCode = "kDZMu2SY";
									}else if (reportPrintType == 'PDF') {
										reportCode = "JwGSOgmG";
									}
								}else{
									$("#reportParamModal").modal('hide');
									return;
								}
							}; break;
							case 'AccountStatement': {
								if (serviceType == 'OPS') {
									reportCode = "smB1vI19";
								}else {
									reportCode = "g6E2obLk";
								}
							} break;
							case 'Report1279': {
								if (serviceType == 'OPS') {
									reportCode = "ZyThNrdS";
								}else{
									$("#reportParamModal").modal('hide');
									return;
								}
							} break;
							default:{$("#reportParamModal").modal('hide'); return; }break;
						}

						unloadAccountStatement(sharerId, reportCode, sharerNumber, d2);
						$("#reportParamModal").modal('hide');
					});


					function openReportPaymentOps() {

						$("#reportPaymentOps").modal('show');

					}

					$("#printPaymentByMonthOps").bind("click", printPaymentByMonthOpsRep);


					function printPaymentByMonthOpsRep() {
						printDocPaymentByMonthOps('SEI5Fwlh');
					}

					function printDocPaymentByMonthOps(code) {
						var sharer_id = (sharerData ? sharerData.id : "");
						var agent_id = ${ user.id };
						var contract_id = sharerData.id;
						var contract_number = sharerData.sharerNumber;
						var sign_person_id = (sharerData ? sharerData.id : "");
						var d1 = $("#dateBegin").val();
						var d2 = $("#dateEnd").val();
						var report_date = $("#report_date").val();
						var report = new QueryReport(code, null, {
							sharer_id, agent_id, sign_person_id, contract_id, contract_number, d1, d2, report_date
						});
						report.run();
					}

					function showFixing(serviceType) {
						if (serviceType == 'OPS') {
							$("#fixingInfo").css("display", "block");
							fixingTable.reload();
						} else if (serviceType == 'NPO' || serviceType == 'PDS') {
							$("#fixingInfo").css("display", "none");
						}
						else {
							$("#fixingInfo").css("display", "none");
						}
					}

					function showOperationInfo(balance, serviceType) {
						showPayment();
						if ((balance && balance.trim() !== 0) /*&& serviceType == 'OPS'*/) {
							$("#operationInfo").css("display", "block");
							operationTable.reload();
						}
						else {
							$("#operationInfo").css("display", "none");
						}
					}

					//Таблица фиксингов по договору ОПС

					var fixingTable = new QueryTable("SGLaNnFp", {
						onRowSelect: function (data, index) {
						},
						onRowDeselect: function (data, index) {
						},
						drawCallback: function (settings) {
						}
					}, function () {

						let data = {};

						data.sharerId = (sharerData ? sharerData.id : -1);
						data.effectiveDate = $("#effectiveDate").val();

						return data;
					}, {
						showFilter: false,
						showExportToExcelButton: false,
						paginate: false
					});

					//Таблица фиксингов по договорам НПО/ПДС
					/*
							var fixingTable_npo = new QueryTable("t_fixation_by_sharer", {
								onRowSelect: function (data, index) {
								},
								onRowDeselect: function (data, index) {
								},
								drawCallback: function (settings) {
								}
							}, function () {

								var data = {};

								data.sharerId = (sharerData ? sharerData.id : -1);
								data.effectiveDate = $("#effectiveDate").val();

								return data;
							},
																									 {
								showFilter: false,
								showExportToExcelButton: false,
								paginate: false
							});
	*/
					//Таблица выплат по участнику НПО

					var paymentTable = new QueryTable("8F5Y0I3H", {

						onRowSelect: function (data, index) {
						},
						onRowDeselect: function (data, index) {
						},
						drawCallback: function (settings) {
						}

					}, function () {

						let data = {};
						var operationData = operationTable.data();

						data.sharerId = (operationData ? operationData.sharerId : -1);
						data.paymentRegisterId = (operationData ? operationData.paymentRegisterId : -1);

						return data;
					}, {
						showFilter: false,
						showExportToExcelButton: false,
						paginate: false
					});

					//Таблица выплат по участнику ОПС

					var opsPaymentTable = new QueryTable("mpQL6NBf", {

						onRowSelect: function (data, index) {
						},
						onRowDeselect: function (data, index) {
						},
						drawCallback: function (settings) {
						}

					}, function () {

						let data = {};
						var operationData = operationTable.data();

						data.sharerId = (operationData ? operationData.sharerId : -1);
						data.opsPaymentRegisterId = (operationData ? operationData.opsPaymentRegisterId : -1);

						return data;
					}, {
						showFilter: false,
						showExportToExcelButton: false,
						paginate: false
					});

					function showPayment(operationType, paymentRegisterId, opsPaymentRegisterId) {
						//		var operationData = operationTable.data();
						//		var paymentRegisterId =(operationData ? operationData.paymentRegisterId : -1);
						//		var opsPaymentRegisterId =(operationData ? operationData.opsPaymentRegisterId : -1);
						$("#opsPaymentInfo").css("display", "none");
						$("#npoPaymentInfo").css("display", "none");

						if ((operationType == 5) && (paymentRegisterId !== null)) {
							$("#npoPaymentInfo").css("display", "block");
							paymentTable.reload();
						}

						if ((operationType == 5) && (opsPaymentRegisterId !== null)) {
							$("#opsPaymentInfo").css("display", "block");
							opsPaymentTable.reload();
						}

					}

					//Таблица операций по участнику

					var operationTable = new QueryTable("piXHC7BK", {
						initComplete: function (queryAction) {
							//$('#queryTableActionContainer_piXHC7BK').append($('#printExtractDocDropDown'));

							// operationTable.addActionButton("printAccountStatement", "Печать выписки", printAccountStatement, "btn-primary", false);
							// operationTable.addActionButton("print1279", "Выписка по форме СФР", openReport1279Modal, "btn-info", false);
							// operationTable.addActionButton("printAccountStatementExtended", "Расширенная выписка", openReportParamModal, "btn-primary", false);
						},
						onRowSelect: function (data, index) {
							showPayment(data.operationTypeId, data.paymentRegisterId, data.opsPaymentRegisterId);

						},
						onRowDeselect: function (data, index) {
							showPayment();

						},
						drawCallback: function (settings) {
							showPayment();
						}

					}, function () {

						let data = {};

						data.sharerId = (sharerData ? sharerData.id : -1);
						data.effectiveDate = $("#effectiveDate").val();

						return data;
					}, {
						showFilter: true,
						showExportToExcelButton: true,
						paginate: true,
						order: [[1, 'desc'], [0, 'desc'], [3, 'desc']]
					});

/*
					var sharerClassHistory = new QueryTable("V7L1FRBw", {	}, function () {
						let data = {};
						//Тест: data.c_sharer_id = 123001;
						data.c_sharer_id = (sharerData ? sharerData.id : -1);
						console.log('shD', sharerData);
						console.log('data', data);
						return data;
					}, {}); //  order: [[0, 'asc']] 
*/


					//Таблица по счёту
					clientCardContractTable = new QueryTable("sharer_by_individual", {
						initComplete: function (queryAction) {
						},
						onRowSelect: function (data, index) {
						},
						onRowDeselect: function (data, index) { 
						},
						drawCallback: function (settings) {
						}
					}, function () {
						let data = {};
						data.individual_id = (sharerData ? sharerData.individual_id : -1);
						return data;
					}, {
						showFilter: false,
						showExportToExcelButton: false,
						paginate: false
					});
				});

			</script>

			<jsp:include page="header.jsp" />
			<jsp:include page="navbar.jsp" />

			<div class="container" id="mainContainer">

				<div class="page-header">
					<h1>${view.name}</h1>
				</div>

				<div class="container-fluid">
					<div class="row row-main">
						<jsp:include page="sidebar.jsp" />
						<div class="col-sm-10">
							<tags:breadcrumbs	path="https://portal.futurenpf.ru/knowledgebase/category/30212/" />
							
							<div class="row col-sm-12">
								<jsp:include page="ORdl2Hdc.jsp"/>
							</div>
							
							<div class="row" id="npoAdvInfo" style="display: none;">
								<jsp:include page="aUt7epL8.jsp"/>
							</div>
														
							<div class="hidden">
								<div id="printExtractDocDropDown" class="btn-group" role="group">
									<button id="printExtractDocDrop" name="printExtractDocDrop"
													class="btn btn-info dropdown-toggle" type="button"
													data-toggle="dropdown">Выписки
										<span class="caret"></span></button>
									<ul class="dropdown-menu">
										<li><a id="printAccountStatement"
													 href="javascript:void(0);">Печать выписки</a></li>
										<li><a id="print1279" href="javascript:void(0);">Выписка по
											форме СФР</a></li>
										<li><a id="printAccountStatementExtended"
													 href="javascript:void(0);">Расширенная выписка</a>
										</li>
										<li><a id="printReportPaymentOps"
													 href="javascript:void(0);">Cправка о размере
											пенсии</a></li>
									</ul>
								</div>
							</div>

							<div class="row" id="fixingInfo" style="display: none;">
								<hr>
								<div class="col-sm-12">
									<jsp:include page="queryTable.jsp">
										<jsp:param name="queryTableCode" value="SGLaNnFp" />
										<jsp:param name="queryTableStyle"
															 value="white-space:nowrap;" />
									</jsp:include>
								</div>
							</div>

							<div class="row" id="operationInfo" style="display: none;">
								<div class="col-sm-12">
									<jsp:include page="queryTable.jsp">
										<jsp:param name="queryTableCode" value="piXHC7BK" />
										<jsp:param name="queryTableStyle"
															 value="white-space:nowrap;" />
									</jsp:include>
								</div>
							</div>

							<div class="row" id="npoPaymentInfo" style="display: none;">
								<div class="col-sm-12">
									<jsp:include page="queryTable.jsp">
										<jsp:param name="queryTableCode" value="8F5Y0I3H" />
										<jsp:param name="queryTableStyle"
															 value="white-space:nowrap;" />
									</jsp:include>
								</div>
							</div>

							<div class="row" id="opsPaymentInfo" style="display: none;">
								<div class="col-sm-12">
									<jsp:include page="queryTable.jsp">
										<jsp:param name="queryTableCode" value="mpQL6NBf" />
										<jsp:param name="queryTableStyle"
															 value="white-space:nowrap;" />
									</jsp:include>
								</div>
							</div>
<!--
													
							<div class="row" id="sharerClassHistory" style="display: none;">
								<div class="col-sm-12">
									<form class="form-vertical">
								<%--		<jsp:include page="queryTable.jsp">
											<jsp:param name="queryTableCode" value="V7L1FRBw" />
											<jsp:param name="queryTableStyle"
																 value="white-space:nowrap;" />
										</jsp:include> --%>
									</form>
								</div>
							</div>
-->		
							<div class="row" id="sharer_by_individual_id" style="display: none;">
								<div class="col-sm-12">
									<jsp:include page="queryTable.jsp">
										<jsp:param name="queryTableCode" value="sharer_by_individual"/>
										<jsp:param name="queryTableStyle" value="white-space:nowrap;"/>
									</jsp:include>
								</div>
							</div>

							<!-- reportParam-->

							<div id="reportParamModal" class="modal fade" tabindex="-1"
									 role="dialog" data-backdrop="static"
									 aria-labelledby="reportParamModal" aria-hidden="true">
								<div class="modal-dialog">
									<div class="modal-content">
										<div class="modal-header">
											<button type="button" class="close"
															data-dismiss="modal">
												<span aria-hidden="true">&times;</span>
												<span class="sr-only">
													<s:message code="dialog.close" />
												</span></button>
											<h4 class="modal-title">Параметры выписки</h4>
										</div>
										<div class="modal-body">
											<form id="reportParam" class="form-vertical"
														role="form">
												<input type="hidden" id="reportType">
												<div class="row">
													<div class="col-sm-4">
														<div class="form-group">
															<label for="reportDate">Дата
																выписки</label>
															<input type="text"
																		 class="form-control date-picker-on"
																		 name="reportDate"
																		 value="<fmt:formatDate value='${currentDate}' pattern='dd.MM.yyyy' />"
																		 id="reportDate" placeholder="Дата">
														</div>
													</div>
												</div>
												<div class="row" id="reportPrintType" style="display: none;">
													<div class="col-sm-4">
														<div class="form-group">
															<input type="radio" id="reportPrintType1"
																		 name="reportPrintType" value="Excel"
																		 checked="true">
															<label for="reportPrintType1">Excel</label>
														</div>
													</div>

													<div class="col-sm-4">
														<div class="form-group">
															<input type="radio" id="reportPrintType2"
																		 name="reportPrintType" value="PDF">
															<label for="reportPrintType2">PDF</label>
														</div>
													</div>
												</div>
											</form>
										</div>
										<div class="modal-footer">
											<button type="button"
															id="printReport"
															class="btn btn-primary"
															style="">Сформировать</button>
											<button class="btn btn-default" type="button"
															data-dismiss="modal">
												<s:message code="button.cancel" />
											</button>
										</div>
									</div>
								</div>
							</div>

							<!--END reportParam-->

							<!--reportPaymentOps-->
							<div class="modal fade" id="reportPaymentOps" tabindex="-1"
									 role="dialog" aria-labelledby="reportPaymentOps" aria-hidden="true">
								<div class="modal-dialog" role="document">
									<div class="modal-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">
											<div class="row">
												<div class="col-8 col-sm-6">
													<input type="hidden" id="report_date"
																 name="report_date"
																 value="<fmt:formatDate value='${currentDate}' pattern='dd.MM.yyyy' />">
													<label for="pensionPeriod">Период от</label>
													<input type="text"
																 class="form-control date-picker-on"
																 maxlength="50"
																 value="<fmt:formatDate value='${currentDate}' pattern='dd.MM.yyyy' />"
																 id="dateBegin" placeholder="Отчет c даты">
												</div>
												<div class="col-4 col-sm-6">
													<label for="pensionPeriod">Период до</label>
													<input type="text"
																 class="form-control date-picker-on"
																 maxlength="50"
																 value="<fmt:formatDate value='${currentDate}' pattern='dd.MM.yyyy' />"
																 id="dateEnd" placeholder="Отчет по дату">
												</div>
											</div>
											<div class="row">
												<div class="modal-footer">
													<button type="button" class="btn btn-primary"
																	id="printPaymentByMonthOps"
																	data-dismiss="modal">Печать</button>
													<button type="button" class="btn btn-danger"
																	data-dismiss="modal">Закрыть</button>
												</div>
											</div>
										</div>
									</div>
								</div>
							</div>
							<!--END reportPaymentOps-->
							
						</div>
					</div>
				</div>
			</div>
			<jsp:include page="footer.jsp" />
		</body>
	</html>