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


<!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 session="true" language="java" 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" src="<c:url value='/js/${version}/uploadFile.js'/>"></script>

									<script type="text/javascript">

										$(function () {

											$("#appPaymentType").select2();
											$("#previouslyAppointedPayment").select2();

											formatNumeric('#retirementPension', '#retirementPensionFormatted', ' руб.');		

											// Блок загрузки файлов во временную зону
											var uploadFile = new UploadFile("docs_4_pfr_certificate");

											$('#certificateDate').datetimepicker({
												format: 'DD.MM.YYYY',
												// maxDate: new Date()
												maxDate: moment()
											});	

											function getFilesCount() {
												const tableBody = document.querySelector('#uploadFileFile_docs_4_pfr_certificate tbody');

												if (!tableBody || tableBody.querySelector('.dataTables_empty')) {
													return 0;
												}

												return tableBody.querySelectorAll('tr').length;
											}



											$("#pensionTypeSelect").select2({
												placeholder: "Вид пенсии",
												allowClear: true,
												minimumInputLength: 0,
												id: function (e) {
													return e.code;
												},
												ajax: {
													url: "queryModel?queryModelCode=6bwxvPkl",
													dataType: 'json',
													data: function (term, page) {
														return {
															term: term,
															maxResults: 10
														};
													},
													results: function (data, page) {
														return {
															results: data.list
														};
													}
												},
												formatResult: formatpensionTypeResult,
												formatSelection: formatpensionTypeSelection,
												escapeMarkup: function (m) {
													return m;
												},
												initSelection: function (element, callback) {
													var code = $(element).val();
													$.ajax("queryModel?queryModelCode=VddfdW1M", {
														dataType: "json",
														data: {
															code: code
														}
													}).done(function (data) {
														callback(data);
													});
												}
											}).on("change", function (e) {
												$("#pensionTypeCode").attr("value", e.val);

												if ($("#pensionTypeCode").val() == '06')
												{
													$("#retirementPensionFormatted").prop('readonly', true);
													$("#retirementPensionFormatted").val("");
													$("#retirementDate").prop('readonly', true);
													$("#retirementDate").val("");


												}
												else
												{
													$("#retirementPensionFormatted").prop('readonly', false);
													$("#retirementDate").prop('readonly', false);
												}


											});		

											function formatpensionTypeResult(data) {
												return '<div>' + data.name + '</div>';
											}

											function formatpensionTypeSelection(data) {
												return data.name;
											}




											// Таблица получателей
											var client = new QueryTable("dfCRke1c", {
												initComplete: function (queryAction) {

												},
												onRowSelect: function (data, index) {
													setClient(client.data());
												},
												onRowDeselect: function (data, index) {
													setClient();
												},
												drawCallback: function (settings) {
													setClient();
												}
											},

																									function() {
												var data = {};
												var apllicationData = client.data();

												console.log(apllicationData);

												data.appId = ((apllicationData) ? apllicationData.id : -1);

												if($("#filter_insurance_number").val()) {
													data.filterInsuranceNumber = $("#filter_insurance_number").val();
												}
												if($("#filter_application_number").val()) {
													data.filterApplicationNumber = $("#filter_application_number").val();
												}
												if($("#filter_first").val()) {
													data.filterFirst = $("#filter_first").val();
												}
												if($("#filter_middle").val()) {
													data.filterMiddle = $("#filter_middle").val();
												}
												if($("#filter_last").val()) {
													data.filterLast = $("#filter_last").val();
												}
												
												if ($('#filter_decision').is(':checked')) {
													data.filterDecision = true;
												}

												data.filterStartDate = $("#filter_start_date").val();
												data.filterEndDate = $("#filter_end_date").val();

												return data;

											}, {
												selectFirstRow: true

											});



											$("#filter_search").click(function() {
												client.reload();
											});

											$('#filter_clean').click(async function() {
												$('#filter_form')[0].reset();
												client.reload();
											});				

											function setPayoutPeriod(appType){
												if (appType == '05')
												{
													$("#payoutPeriod").prop('readonly', false);
													$("#payoutPeriod").val("120");
												}
												else
												{
													$("#payoutPeriod").prop('readonly', true);
													$("#payoutPeriod").val("");

												}

											}

											function setClient(data){
												if(data && data.decision_link) showInfoMessage(data.decision_link);
												$("#clientFIO").val(data ? data.clientFIO : "");
												$("#sharerId").val(data ? data.sharerId : "");
												$("#contractNumber").val(data ? data.contractNumberText : "");
												$("#insuranceNumber").val(data ? data.insuranceNumber : "");
												$("#retirementPensionFormatted").val(data ? data.retirementPension : "");
												$("#retirementPension").val(data ? data.retirementPension : "");
												$("#retirementDate").val(data ? data.retirementDate : "");					
												$("#pensionTypeSelect").select2("val", data ? data.pensionTypeCode : "");			
												$("#pensionTypeCode").val(data ? data.pensionTypeCode : "");
												$("#pensionAssignedAppId").val(data ? data.id : "");

												$("#certificateNumber").val("");
												$("#certificateDate").val("");

												if ($("#pensionTypeCode").val() == '06')
												{
													$("#retirementPensionFormatted").prop('readonly', true);
													$("#retirementPensionFormatted").val("");
													$("#retirementDate").prop('readonly', true);
													$("#retirementDate").val("");


												}
												else
												{
													$("#retirementPensionFormatted").prop('readonly', false);
													$("#retirementDate").prop('readonly', false);
												}
												
												if ((data && data.is_pmp) || !data) {
													$("#retirementPensionFormattedBlock").hide();
												} else {
													$("#retirementPensionFormattedBlock").show();
												}
												
												$("#manual").prop("checked", true);
												$("#edms_link").val(null);

											}

											// Регистрация заявления
											$('#registryDocument').on('click', async function () {

												const edmsLink = $("#edms_link").val();
												const uploadedFiles = getFilesCount();

												if (!edmsLink.trim() && uploadedFiles === 0) {
													showMessage(
														'Укажите ссылку в СЭД или загрузите документы',
														null,
														'DANGER',
														"messages",
														true
													);
													return;
												}

												var data = {};

												$("#AppParamForm").serializeArray().map(function (x) {
													data[x.name] = x.value;
												});

												data.appId =-1;

												console.log('data',data);

												QueryAction.action("ZkfGlnVF", {
													actionComplete: function (data) {
														setClient();
														client.reload();
														uploadFile.reload();
													}
												}, function () {

													return data;

												});

											});						

											//Старый вариант сбора данных
											// function getAppData() {

											// 	var data = {};

											// 	$("#AppParamForm").serializeArray().map(function (x) {
											// 		data[x.name] = x.value;
											// 	});
											// 	console.log(data);

											// 	data.appId =-1;
											// 	console.log(data);
											// 	return data;
											// }


											function formatNumeric(selector, selectorFormatted, aSignVal) {
												$(selectorFormatted).autoNumeric('init', {aSign: aSignVal, pSign: 's', aSep: ' ', aDec: ','});
												$(selectorFormatted).change(function () {
													$(selector).val($(selectorFormatted).autoNumeric('get'));
												}).change();
											}
	
											$('#filter_insurance_number').mask('000-000-000 00');

										});

									</script>

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

									<div class="container" id="mainContainer">
										<div class="page-header">
											<h1>Новое справка из СФР</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/30614/"/>
													<div class="row">
														<div class="col-sm-12">
															<form id="filter_form" >
																<div class="form-group form-inline">
																	<div class="form-group" style="width:140px">
																		<label for="filter_start_date" style="width:100%">Дата документа с</label>
																		<input type="text" class="form-control date-picker-on"
																					 id="filter_start_date" name="filter_start_date"
																					 placeholder="c"
																					 style="width:100%">
																	</div>
																	<div class="form-group" style="width:140px;margin-left:5px">
																		<label for="filter_end_date" style="width:100%">по</label>
																		<input type="text" class="form-control date-picker-on"
																					 id="filter_end_date" name="filter_end_date"
																					 placeholder="по"
																					 style="width:100%">
																	</div>
																	<div class="form-group" style="width:140px;margin-left:15px">
																		<label for="filter_application_number" style="width:100%">№ Заявления</label>
																		<input type="text" class="text-uppercase form-control" 
																					 id="filter_application_number" name="filter_application_number"
																					 placeholder="№ Заявления"
																					 style="width:100%">
																	</div>
																	<div class="form-group" style="width:140px;margin-left:15px">
																		<label for="filter_insurance_number" style="width:100%">СНИЛС</label>
																		<input type="text" class="text-uppercase form-control" 
																					 id="filter_insurance_number" name="filter_insurance_number"
																					 placeholder="СНИЛС"
																					 style="width:100%">
																	</div>
																	<div class="form-group" style="width:200px;margin-left:15px">
																		<label for="filter_last" style="width:100%;">Фамилия</label>
																		<input type="text" class="text-uppercase text-en-to-ru text-only-ru form-control" 
																					 id="filter_last" name="filter_last" placeholder="Фамилия" style="width:100%">
																	</div>
																	<div class="form-group" style="width:200px;margin-left:10px">
																		<label for="filter_first" style="width:100%;">Имя</label>
																		<input type="text" class="text-uppercase text-en-to-ru text-only-ru form-control"
																					 id="filter_first" name="filter_first" placeholder="Имя" style="width:100%;">
																	</div>
																	<div class="form-group" style="width:200px;margin-left:10px">
																		<label for="filter_middle"  style="width:100%;">Отчество</label>
																		<input type="text" class="text-uppercase text-en-to-ru text-only-ru form-control" 
																					 id="filter_middle" name="filter_middle" placeholder="Отчество" style="width:100%;">
																	</div>
																	<!-- <div class="form-group" style="width:90px; margin-left:5px;">
<label for="manual_check" style="margin-bottom: 8px;">Ручной ввод</label>
<div style="height: 34px; text-align: center;">
<input type="checkbox" id="manual_check" name="manual_check" style="width: 20px; height: 20px; margin: 0;">
</div>
</div> -->
																</div><!--form-inline-->
																<div class="form-group">
																	<label for="filter_decision">
																		<input type="checkbox" id="filter_decision" name="filter_decision" />
																		Показать заявления с решениями
																	</label>
																</div>
															</form>
														</div>
													</div>
													<div class="row"style="margin-top:5px;margin-bottom:15px">
														<div class="col-sm-12">
															<div class="btn-group" style="width:290px">
																<button type="button" class="btn btn-info" id="filter_search" name="filter_search" 
																				data-loading-text="Отбор..." style="width:140px">
																	<span class="glyphicon glyphicon-search" aria-hidden="true"></span>
																	Найти
																</button>
																<button type="button" class="btn btn-warning" id="filter_clean" name="filter_clean" 
																				data-loading-text="Очистка фильтра..."  style="width:140px;margin-left:5px">
																	<span class="glyphicon glyphicon-trash" aria-hidden="true"></span>
																	Сбросить
																</button>
															</div>
														</div>
													</div>

													<div class="row">
														<h3 class="col-sm-12">Шаг №1. Выберите клиента для регистрации справки из СФР</h3>
														<div class="col-sm-12">
															<jsp:include page="queryTable.jsp">
																<jsp:param name="queryTableCode" value="dfCRke1c"/>
																<jsp:param name="queryTableStyle" value="white-space:nowrap;"/>
															</jsp:include>
														</div>
													</div>

													<hr>

													<div class="row">
														<h3 class="col-sm-12">Шаг №2. Укажите параметры справки</h3>

														<div class="col-sm-12">

															<form class="form-vertical" id="AppParamForm">

																<input type="hidden" id="sharerId" name="sharerId">
																<input type="hidden" id="appId" name="appId" value ="-1">
																<input type="hidden" name= "pensionTypeCode" id="pensionTypeCode">	
																<input type="hidden" id="pensionAssignedAppId" name="pensionAssignedAppId">


																<div class="row">
																	<div class="col-sm-4">
																		<div class="form-group">
																			<label class="control-label" for="AppParamNumber">Номер</label>

																			<input type="text" class="form-control" id="AppParamNumber" name="appNumber"
																						 readonly="readonly"
																						 placeholder="Текст">
																		</div>
																	</div>

																	<div class="col-sm-2">
																		<div class="form-group">
																			<label for="appDate">Дата регистрации</label>
																			<input type="text" class="form-control date-picker-on" id="appDate"
																						 name="appDate"
																						 value="<fmt:formatDate value='${currentDate}' pattern='dd.MM.yyyy' />"
																						 placeholder="Дата">
																		</div>
																	</div>

																	<div class="col-sm-2">
																		<div class="form-group" style="text-align: right;">
																			<input type="checkbox" id="manual" name="manual" disabled>
																			<label for="manual">Ручной ввод</label>	
																		</div>
																	</div>

																</div>

																<div class="row">
																	<div class="col-sm-4">
																		<div class="form-group">
																			<label for="clientFIO">ФИО клиента</label>
																			<input type="text" class="form-control" id="clientFIO" name="clientFIO"
																						 readonly="readonly"
																						 placeholder="Текст">
																		</div>
																	</div>

																	<div class="col-sm-2">
																		<div class="form-group">
																			<label for="contractNumber">Номер договора</label>
																			<input type="text" class="form-control"
																						 id="contractNumber"
																						 name="contractNumber"
																						 readonly="readonly"
																						 placeholder="Текст">
																		</div>
																	</div>
																	<div class="col-sm-2">
																		<div class="form-group">
																			<label for="insuranceNumber">СНИЛС</label>
																			<input type="text" class="form-control"
																						 id="insuranceNumber"
																						 name="insuranceNumber"
																						 readonly="readonly"
																						 placeholder="###-###-###-##">
																		</div>
																	</div>
																</div>

																<div class="row">
																	<div class="col-sm-4">
																		<div class="form-group">
																			<label class="control-label" for="certificateNumber">Номер справки из СФР</label>

																			<input type="text" class="form-control" id="certificateNumber" name="certificateNumber"
																						 placeholder="Текст">
																		</div>
																	</div>

																	<div class="col-sm-4">
																		<div class="form-group">
																			<label for="certificateDate">Дата справки из СФР</label>
																			<input type="text" class="form-control date-picker-on" id="certificateDate"
																						 name="certificateDate"
																						 placeholder="Дата">
																		</div>
																	</div>
																</div>


																<div class="row">
																	 <div id="retirementPensionFormattedBlock" class="col-sm-4">
																		 <div class="form-group">
																			 <label for="retirementPensionFormatted">Размер страховой пенсии</label>
																			 <input type="text" class="form-control"
																							id="retirementPensionFormatted"
																							name="retirementPensionFormatted"
																							placeholder="Текст">
																			 <input type="hidden" id="retirementPension" name="retirementPension">
																		 </div>
																	</div>
																	
																	<div class="col-sm-4">
																		<div class="form-group">
																			<label for="retirementDate">Дата приобретения права на назначение пенсии</label>
																			<input type="text" class="form-control date-picker-on"
																						 id="retirementDate"
																						 name="retirementDate"
																						 placeholder="Текст">
																		</div>
																	</div>
																</div>
																<div class="row">
																	<div class="col-sm-8">
																		<div class="form-group">
																			<label for="pensionTypeSelect">Вид получаемой пенсии</label>										
																			<div class="form-control" id="pensionTypeSelect"></div>
																		</div>
																	</div>
																</div>			
																<div class="row">
																	<div class="col-sm-4">
																		<div class="form-group">
																			<label for="edms_link">Документ в СЭД</label>
																			<input type="text" class="form-control"
																						 id="edms_link"
																						 name="edms_link">
																		</div>
																	</div>	
																</div>	
																<div class="row">								
																	<div class="col-sm-8">
																		<jsp:include page="uploadFile.jsp">
																			<jsp:param name="uploadFileCode" value="docs_4_pfr_certificate"/>
																			<jsp:param name="uploadFileName" value="Полученные документы"/>
																		</jsp:include>
																	</div>
																</div>
															</form>
														</div>
													</div>
													<hr>
													<div class="row">
														<h3 class="col-sm-12">Шаг №3. Зарегистрируйте справку</h3>
														<hr>
														<button type="button" id="registryDocument" class="btn btn-primary"
																		style="margin-left: 20px;">Регистрация документа</button>

													</div>

												</div>
											</div>
										</div>
									</div>
									<jsp:include page="footer.jsp"/>

								</body>
							</html>