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


<!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"/>
<style>
  .seagreen-button {
     /* background: #000;
      color: #fff;*/
		 background: #336666;
      color: white;
   }
  
  </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">
	
	var skip_url_app = false;
	const urlParams = new URLSearchParams(window.location.search);
	
	function clickSecondaryTable() {									
						var sid = urlParams.get('sid');
						var id = urlParams.get('id')
						if (sid && id) {
							$('#queryTable_E6lDc5bn tr').filter(function() {
								return $(this).text().trim().toLowerCase().includes(sid);
							}).click();
						}
	}
	
	// Идентификатор реестра из параметров запуска
	function application() {
		var smevRegId = urlParams.get('id');
		if(smevRegId !== null){
			return {
				id: smevRegId
			}
		}else{
			return {
				id: null
			}					
		}
	};
	
	// JSESSIONID
	function getSessionID() {
		const fullCookieString = '; ' + document.cookie;
		const splitCookie = fullCookieString.split('; JSESSIONID=');
		return splitCookie.length === 2 ? splitCookie.pop().split(';').shift() : null;
	}
	
	$(function () {

		var registerTable = new QueryTable("owWpKDUk", {

			initComplete: function (settings, json) {
				registerTable.insertActionButton("addNewRegister", "Создать", addNewRegister, "btn-success", false, 0);
				registerTable.addActionButton("exportRegister", "Сформировать xml c проверкой", exportRegister, "btn-primary", true);
				registerTable.addActionButton("uploadRegister", "Отправить в СФР", uploadRegister, "btn-primary", true);
				registerTable.addActionButton("deleteRegister", "Удалить", deleteRegister, "btn-danger", true); 

				// кнопка "Обновить"
				registerTable.addActionButton("updateRegisterTable", "Обновить", updateRegister, "btn-primary", false, 0);
				$("#updateRegisterTable").prepend('<span class="glyphicon glyphicon-refresh" style="text-align:center; padding-right: 5px;"></span>');
			},

			onRowSelect: function (data, index) {
				$("#editRegisterDescription").prop("enabled", true);
				dataTable.reload();
					
					/*Задача 80575 п.9 из документа*/
					/* Если статус "Отправлен в СФР" - блокируем кнопку "Сформировать xml с проверкой" */
					if(data.sfr_status === 'Отправлен'){
						$("#exportRegister").prop("disabled", true);
					} else {
						$("#exportRegister").prop("disabled", false);
					}
				
			},
			onRowDeselect: function (data, index) {
				dataTable.reload();
			},
			drawCallback: function (settings) {
				skip_url_app = (settings.oAjaxData.queryTableFilter.size != 0);	
				dataTable.reload();
			}
		},
		function () {
			var appData = registerTable.data();
			var data = {};
			data.registerType ="ЗННЧ";
			let id_register = application().id;
			if(skip_url_app) {
				data.id = -1;
			}else{
				data.id = id_register;
			}	
			return data;
		},
     {order: [[0, 'desc']], selectFirstRow: true}																	
																			
		);	

		var dataTable = new QueryTable("E6lDc5bn",{
			drawCallback: function(settings) {
				clickSecondaryTable();
			}
		},																					
		function () {
			var appData = registerTable.data();
			var data = {};
			data.registerId = (appData ? appData.id : -1);
			var sid = urlParams.get('sid');
			if (sid) {
				data.id = sid;
			}
			return data;
		},
			{order: [[1, 'asc'],[11, 'desc']]}		
		);
		
		function uploadRegister(){
			var validationResult = [];
			var mes = {};
			var message_level = 'info';
			
			var appData = registerTable.data();
			if(appData.verified_file_id == '' || appData.verified_file_id == null ){
				mes = {messageType: message_level, message: 'Отсутствует документ в СФР'};
				validationResult.push(mes);
				showMessages(validationResult);
				return;
			}
			if(appData.sfr_status != 'ФЛК пройден' && appData.sfr_status != 'Отправлен'){
				mes = {messageType: message_level, message: 'Документ в СФР не прошёл форматно-логический контроль'};
				validationResult.push(mes);
				showMessages(validationResult);
				return;
			}
			// remove the extension from the file name (as we constructing archive name)
			var archiveName = appData.sfr_file_name;
			var dotPosition = (archiveName).lastIndexOf('.');
			if(dotPosition != -1){
				archiveName = archiveName.slice(0, dotPosition);
			}
			archiveName = archiveName + '.tar.gz';
			$.ajax({
				url: "queryAction/action",
				type: "POST",
				async: false,
				data: {
					viewCode: 'TgEftDoN',
					queryActionCode: 'DaizGytc',
					record_id: appData.v_file_id,
					unload_mode: 1,  
					unload_format: 'gzp',
					unload_archive_name: archiveName 
				},
				dataType: "json",
				success: function (data) {
					if(data){
						if(data.data == 0){	
							mes = {messageType: message_level, message: 'Файл выгружен.'};
							validationResult.push(mes);
						}
						if(data.data == 1){
							mes = {messageType: message_level, message: 'Файл с таким именем уже существует во внешнем хранилище.'};
							validationResult.push(mes);
						}
						if(data.data != 0 && data.data != 1){
								mes = {messageType: message_level, message: 'Ошибка: код процесса выгрузки ' + data};
								validationResult.push(mes);
						}
						showMessages(validationResult);
						registerTable.reload();
					}
				}
			});
		}
 	
		function deleteRegister(){
			var result = confirm("Вы хотите удалить реестр?");
			if(!result){
				return;
			}
			var appData = registerTable.data();
			
			$.ajax({
				url: "queryAction/action",
				type: "POST",
				async: false,
				data: { 
					viewCode: 'TgEftDoN',
					queryActionCode: 'bQYtlVNW',  //'jLc7z1h4',
					id: appData.id,
				},
				dataType: "json",
				success: function (data) {
					if(data){
						if(data.messages){
							showMessages(data.messages);
						}
					}
					registerTable.reload();
				}
			});
		}
		
		function addNewRegister(){
			openNewWindow("view?viewCode=46xOyLp5"); 	
		}
		
		function exportRegister(){
			var data = registerTable.data();
			var registerId = (data ? data.id : -1);
			var param ='registerId=' + registerId + '&'; 
			param = param + "id=" + registerId;
			var winmod = window.open("queryModel/file?queryModelCode=7zx6KjSg&queryModelCharset=UTF-8&viewCode=TgEftDoN&"+param, '_blank');
			
		}

		// Обновить главную таблицу
		function updateRegister() {
			registerTable.reload();
		}
		
		function uuid() {
			function randomDigit() {
				if (crypto && crypto.getRandomValues) {
					var rands = new Uint8Array(1);
					crypto.getRandomValues(rands);
					return (rands[0] % 16).toString(16);
				} else {
					return ((Math.random() * 16) | 0).toString(16);
				}
			}
			var crypto = window.crypto || window.msCrypto;
			return 'xxxxxxxx-xxxx-4xxx-xxxx-xxxxxxxxxxxx'.replace(/x/g, randomDigit);
		}			
		
		

	});

</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/29348/"/> 
	
				<div class="row">
					<h4 class="col-sm-12">Запрос информации для назначения НЧТП</h4>
					<div class="col-sm-12">
						<form class="form-vertical" id="paramForm">
							<input type="hidden" name="registerId" id="registerId">
							<jsp:include page="queryTable.jsp">
								<jsp:param name="queryTableCode" value="owWpKDUk"/>
								<jsp:param name="queryTableStyle" value="white-space:nowrap;"/>
							</jsp:include>
						</form>
					</div>
				</div>			
				<hr>
				<div class="row">
					<div class="col-sm-12">
						<jsp:include page="queryTable.jsp">				
								<jsp:param name="queryTableCode" value="E6lDc5bn"/>
								<jsp:param name="queryTableStyle" value="white-space:nowrap;"/>
						</jsp:include>
					</div>
				</div>				
			</div>
		</div>
	</div>
	</div>
<jsp:include page="footer.jsp"/>

</body>
</html>