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


<!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"/>
								<style>
									th
									{
										text-align: center;
									}
									#queryDataSourceFile_a33r8zRX th:nth-child(3),
									#queryDataSourceFile_a33r8zRX td:nth-child(3) {
										display: none;
									}
								</style>
								<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">


										$(function () {
											var check = null;
											var fileId = null;
											// Загрузчик
											var LoaderDataSource = new QueryDataSource("a33r8zRX", {
												onRowSelect: function (data, index) {
													fileId = data.id;
													console.log(data);
													load_snv.reload();
												},
												onRowDeselect: function (data, index) {
													fileId = null;
													load_snv.reload();
												},
												drawCallback: function (settings) {
												},
											})


											const load_snv = new QueryTable("1bBFrXjz", {
												initComplete: function(queryAction) {
												},
												onRowSelect: function(data, index) {
													snvValidator.enable()
													snvValidator.reload()

												},
												onRowDeselect: function(data, index) {
													snvValidator.disable()
													snvValidator.reload()
												} 
											}, function() {
												return {
													fileId: fileId
												};
											});

											// Проверки загружаемых данных
											var snvValidator = new QueryValidator(
												"dJ0NIBQG",
												{
													checkComplete: function (data) {
														$('#createRecordBtn').prop('disabled', false);
														check = true;
													},
												},
												function () {
													return {
														fileId: fileId
													}
												}
											)

											function getSnvParams() {
												var result = null;
												$.ajax({
													type: "GET",
													url: "queryModel?queryModelCode=SN0s1Sgg",
													async: false,
													data: { fileId: fileId },
													dataType: "json",
													success: function (data) {
														result = data;
													},
												});
												return result
											}



											function createSnvCard(row, batchId) {
												var sendData = {};

												sendData.queryActionCode = "qu84AJSQB";
												sendData.p_date = row.date;
												if (row.max_tax_deduction) {
													sendData.p_max_tax_deduction = Number(row.max_tax_deduction);
												}
												if (row.sum_income) {
													sendData.p_sum_income = Number(row.sum_income);
												}
												if (row.sum_tax_deduction) {
													sendData.p_sum_tax_deduction = Number(row.sum_tax_deduction);
												}
												sendData.p_type = row.type;
												if (row.year) {
													sendData.p_year = Number(row.year);
												}
												sendData.p_application_termination_contract_id = Number(row.id);
												if (row.individual_id) {
													sendData.p_individual_id = Number(row.individual_id);
												}
												sendData.p_batch_id = batchId;  // новый параметр

												$.ajax({
													url: "queryAction/action",
													type: "POST",
													async: false,
													data: sendData,
													dataType: "json",
													success: function (data) {
														showMessages(data.messages);
														return data;
													}
												});
											}

											function	responseToRequest() {
												if(check = true) {
													console.log("TRUE");
													var respData = {};

													respData.queryActionCode = "TMbTo05q"; 
													respData.fileId = fileId;
													$.ajax({
														url: "queryAction/action",
														type: "POST",
														async: false,
														data: respData,
														dataType: "json",
														success: function (data) {
															showMessages(data.messages);
															return data;
														}
													});
												} else {
													return;
												}
											}

											$('#createRecordBtn').click(function () {
												// Получаем batch_id до цикла
												var batchId = null;
												$.ajax({
													type: "GET",
													url: "queryModel?queryModelCode=J6QkwOUd",
													async: false,
													dataType: "json",
													success: function (data) {
														batchId = data.id;
													}
												});

												if (!batchId) {
													alert("Не удалось получить batch_id");
													return;
												}

												var modelData = getSnvParams();
												var rows = modelData.list || [];

												if (!rows.length) {
													alert("Нет данных");
													return;
												}

												rows.forEach(function (row) {
													createSnvCard(row, batchId);
													responseToRequest();
												});
											});




										});

									</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/31164/"/>

													<div class="row">
														<h3 class="col-sm-12">Загрузите файл</h3>
														<div class="col-sm-12">
															<jsp:include page="queryDataSource.jsp">
																<jsp:param name="queryDataSourceCode" value="a33r8zRX" />
															</jsp:include>
														</div>
													</div>


													<div class="row">
														<h3 class="col-sm-12">Содержимое файла</h3>
														<div class="col-sm-12">
															<jsp:include page="queryTable.jsp">
																<jsp:param name="queryTableCode" value="1bBFrXjz"/>
															</jsp:include>
														</div>
													</div>

													<div class="row">
														<div class="col-sm-12">
															<h3>Шаг №2. Выполните проверку данных</h3>
															<jsp:include page="queryValidator.jsp">
																<jsp:param name="queryValidatorCode" value="dJ0NIBQG" />
																<jsp:param name="queryValidatorStyle" value="white-space:nowrap;" />
															</jsp:include>
														</div>
													</div>

													<div class="row">
														<div class="col-sm-12">
															<h3>Шаг №3. Зарегистрируйте проверенные справки о НВ</h3>
															<div class="btn-group">
																<button type="button" class="btn btn-primary" id="createRecordBtn" disabled="true">Зарегистрировать</button>
															</div>
														</div>
													</div>


												</div>
											</div>

										</div>
									</div>

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

								</body>
							</html>