Загрузка данных
<!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">
<head>
<jsp:include page="head.jsp"/>
<style>
th {
text-align: center;
}
.filter-input {
width: 100%;
}
</style>
</head>
<body>
<script type="text/javascript" src="<c:url value='/js/latest/queryAction.js'/>"></script>
<script type="text/javascript" src="<c:url value='/js/latest/queryTable.js'/>"></script>
<script type="text/javascript">
let Search_All = false;
let sr_number = null;
let fns_journal = null;
$(document).ready(function() {
$("#filter_activity_type").select2({
placeholder: "Вид деятельности",
allowClear: true,
minimumResultsForSearch: Infinity
});
clearFilters();
});
function clearFilters() {
$("#filter_insuranceNumber").val('');
$("#filter_activity_type").val(null).trigger('change');
$("#filter_lastName").val('');
$("#filter_firstName").val('');
$("#filter_middleName").val('');
$("#filter_contractNumber").val('');
$('#filter_startDate').val('');
$('#filter_endDate').val('');
$('#filter_Number').val('');
}
function getSelectedFnsRows() {
var result = null;
$.ajax({
type: "GET",
url: "queryModel?queryModelCode=uw93zB4F",
async: false,
data: {
query_table_code: 'VxvzLyks'
},
dataType: "json",
success: function(data) {
result = data;
}
});
return result;
}
function updateSelectedRowsState() {
const modelData = getSelectedFnsRows();
const rows = modelData && modelData.list ? modelData.list : [];
const hasSelection = rows.length > 0;
const singleSelection = rows.length === 1;
// Эти кнопки работают с одной или несколькими строками
$('#downloadSelectedFiles').prop('disabled', !hasSelection);
$('#sendToFnsBtn').prop('disabled', !hasSelection);
// Редактирование — только одной строки
$('#openModalBtn').prop('disabled', !singleSelection);
if (singleSelection) {
sr_number = rows[0].request_number;
} else {
sr_number = null;
}
}
$(function() {
$("#downloadSelectedFiles").click(function() {
const modelData = getSelectedFnsRows();
const rows = modelData && modelData.list ? modelData.list : [];
if (!rows.length) {
return;
}
rows.forEach(function(row, index) {
if (!row.model_file_id) {
return;
}
setTimeout(function() {
const link = document.createElement('a');
link.href =
'modelFileToVerification/modelFileToVerification/downloadSource?id='
+ encodeURIComponent(row.model_file_id);
link.style.display = 'none';
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}, index * 300);
});
});
fns_journal = new QueryTable("VxvzLyks", {
initComplete: function(queryAction) {
// fns_journal.addActionButton("AddButtonMain", "Отправить в ФНС", uploadRegister, "btn-primary", true);
},
onRowSelect: function(data, index) {
//updateSelectedRowsState();
},
onRowDeselect: function(data, index) {
//updateSelectedRowsState();
} ,
drawCallback: function(data, index) {
updateSelectedRowsState();
}
}, function() {
return {
filterInsuranceNumber: $("#filter_insuranceNumber").val(),
flk_id: getQueryParam('flk_id'),
id: getQueryParam('id'),
startDate: $("#filter_startDate").val(),
endDate: $("#filter_endDate").val(),
Number: $("#filter_Number").val(),
filterActivityType: $("#filter_activity_type").val(),
filterLastName: $("#filter_lastName").val(),
filterFirstName: $("#filter_firstName").val(),
filterMiddleName: $("#filter_middleName").val(),
filterContractNumber: $("#filter_contractNumber").val(),
filterShowList: Search_All
};
},
{ multiselect: true });
$("#filter_search_top").click(() => {
const hasFilters = $('#filter_startDate').val().trim() ||
$('#filter_endDate').val().trim() ||
$('#filter_Number').val().trim() ||
$("#filter_activity_type").val() ||
$("#filter_lastName").val() ||
$("#filter_firstName").val() ||
$("#filter_middleName").val() ||
$("#filter_contractNumber").val() ||
$("#filter_insuranceNumber").val();
if (!hasFilters) {
return;
}
Search_All = true;
fns_journal.reload();
});
$('#filter_clean_top').click(() => {
Search_All = false;
clearFilters();
sr_number = null;
fns_journal.reload();
});//
function uploadRegister() {
const validationResult = [];
const message_level = 'info';
const modelData = getSelectedFnsRows();
const rows = modelData && modelData.list ? modelData.list : [];
if (!rows.length) {
return;
}
rows.forEach(function(appData) {
if (!appData.model_file_id) {
validationResult.push({
messageType: message_level,
message: 'Отсутствует документ в СФР'
});
return;
}
$.ajax({
url: "queryAction/action",
type: "POST",
async: false,
data: {
viewCode: '7K6FKG8e',
queryActionCode: 'DaizGytc',
record_id: appData.model_file_id,
unload_mode: 1
},
dataType: "json",
success: response => handleUploadResponse(response, validationResult)
});
$.ajax({
url: "queryAction/action",
type: "POST",
async: false,
data: {
viewCode: '7K6FKG8e',
queryActionCode: 'sr8LySCh',
model_file_to_verification_id: appData.model_file_id
},
dataType: "json",
success: response => handleUploadResponse(response, validationResult)
});
});
showMessages(validationResult);
fns_journal.reload();
}
$("#sendToFnsBtn").on("click", uploadRegister);
function editNumber() {
const validationResult = [];
const message_level = 'info';
const modelData = getSelectedFnsRows();
const rows = modelData && modelData.list ? modelData.list : [];
if (rows.length !== 1) {
return;
}
const appData = rows[0];
if (!appData.smevRegisterId) {
validationResult.push({
messageType: message_level,
message: 'Отсутствует ИД Реестра'
});
showMessages(validationResult);
return;
}
const newNumber = $('#modalInput').val();
$.ajax({
url: "queryAction/action",
type: "POST",
async: false,
data: {
viewCode: '7K6FKG8e',
queryActionCode: '4eEKszab',
smevRegisterId: appData.smevRegisterId,
new_number: newNumber,
model_file_id: appData.model_file_id
},
dataType: "json",
// success: response => handleUploadResponse(response, validationResult)
success: function(response){
if(response.result) {
return
}
showMessages(response.messages)
}
});
$('#editModal').modal('hide');
showMessages(validationResult);
fns_journal.reload();
$('#openModalBtn').prop('disabled', true);
}
$('#editForm').on('submit', function (e) {
console.log('ВВВ')
e.preventDefault();
editNumber();
});
function handleUploadResponse(response, validationResult) {
if (response.data === 0) {
validationResult.push({ messageType: message_level, message: 'Файл выгружен.' });
} else if (response.data === 1) {
validationResult.push({ messageType: message_level, message: 'Файл с таким именем уже существует во внешнем хранилище.' });
} else {
validationResult.push({ messageType: message_level, message: `Ошибка: код процесса выгрузки ${response.data}` });
}
}
}); //
function getQueryParam(key) {
const url = new URL(window.location.href);
return url.searchParams.get(key);
}
$(document).ready(function(){
$('#openModalBtn').on('click', function(){
const modelData = getSelectedFnsRows();
const rows = modelData && modelData.list ? modelData.list : [];
if (rows.length !== 1) {
return;
}
const appData = rows[0];
if (appData.is_sent_to_fns === 'true' || appData.is_sent_to_fns === true) {
showWarningMessage('Редактирование невозможно: запрос уже отправлен в ФНС');
return;
}
$('#modalInput').val(appData.request_number);
$('#editModal').modal('show');
});
});
</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/"/>
<form class="form-horizontal" local-storage id="searchContractFilter"
style="background-color: #d4edda; margin: -21px -15px 0px; padding: 20px 20px 10px;">
<div class="row">
<div class="col-sm-2">
<input type="text" class="form-control date-picker-on filter-input"
id="filter_startDate" name="filter_startDate"
placeholder="Дата запроса с.."/>
</div>
<div class="col-sm-2">
<input type="text" class="form-control date-picker-on filter-input"
id="filter_endDate" name="filter_endDate"
placeholder="Дата запроса по.."/>
</div>
<div class="col-sm-2">
<input type="text" class="form-control filter-input"
maxlength="20"
id="filter_Number" name="filter_Number"
placeholder="Номер запроса"/>
</div>
<div class="col-sm-2">
<input type="text" class="form-control filter-input"
maxlength="20"
id="filter_contractNumber" name="filter_contractNumber"
placeholder="Номер договора"/>
</div>
</div>
<div class="row" style="margin-top: 15px;">
<div class="col-sm-2">
<input type="text"
class="text-uppercase text-en-to-ru text-only-ru form-control filter-input"
maxlength="50"
id="filter_insuranceNumber"
name="filter_insuranceNumber"
data-mask="999-999-999 99"
placeholder="СНИЛС"/>
</div>
<div class="col-sm-2">
<input type="text"
class="text-uppercase text-en-to-ru text-only-ru form-control filter-input"
maxlength="50"
id="filter_lastName"
name="filter_lastName"
placeholder="Фамилия"/>
</div>
<div class="col-sm-2">
<input type="text"
class="text-uppercase text-en-to-ru text-only-ru form-control filter-input"
maxlength="50"
id="filter_firstName"
name="filter_firstName"
placeholder="Имя"/>
</div>
<div class="col-sm-2">
<input type="text"
class="text-uppercase text-en-to-ru text-only-ru form-control filter-input"
maxlength="50"
id="filter_middleName"
name="filter_middleName"
placeholder="Отчество"/>
</div>
</div>
<div class="row" style="margin-top: 15px;">
<div class="col-sm-2">
<select id="filter_activity_type" name="filter_activity_type" class="form-control filter-input">
<option value=""></option>
<option value="NPO">НПО</option>
<option value="PDS">ПДС</option>
</select>
</div>
</div>
<div class="row" style="margin-top: 20px;">
<div class="col-sm-12">
<div class="btn-group">
<button id="filter_search_top" name="filter_search_top" type="button" class="btn btn-success"
data-loading-text="Отбор...">
<span class="glyphicon glyphicon-search"></span> Найти
</button>
<button id="filter_clean_top" name="filter_clean_top" type="button" class="btn btn-warning"
data-loading-text="Очистка...">
<span class="glyphicon glyphicon-trash"></span> Сбросить
</button>
</div>
</div>
</div>
</form>
<div class="row">
<h3 class="col-sm-12">Журнал запросов в ФНС</h3>
<div class="col-sm-12">
<jsp:include page="queryTable.jsp">
<jsp:param name="queryTableCode" value="VxvzLyks"/>
</jsp:include>
</div>
<div class="mb-2" style="margin-top: 15px; margin-left: 15px;">
<button type="button"
class="btn btn-warning"
id="openModalBtn"
disabled>
Редактировать
</button>
<button type="button"
class="btn btn-primary"
id="sendToFnsBtn"
style="margin-left: 10px;"
disabled>
Отправить в ФНС
</button>
<button type="button"
class="btn btn-primary"
id="downloadSelectedFiles"
style="margin-left: 10px;"
disabled>
<span class="glyphicon glyphicon-download-alt"></span>
Скачать выбранные
</button>
</div>
</div>
<div class="row">
</div>
</div>
</div>
</div>
</div>
<div class="modal fade" id="editModal" tabindex="-1" aria-labelledby="editModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="editModalLabel">Редактирование данных</h5>
</div>
<div class="modal-body">
<form id="editForm">
<div class="mb-3">
<label for="modalInput" class="form-label">Введите новое значение:</label>
<input type="text" class="form-control" id="modalInput" placeholder="Заполните поле...">
</div>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Отмена</button>
<button type="submit" form="editForm" class="btn btn-primary">Сохранить</button>
</div>
</div>
</div>
</div>
<jsp:include page="footer.jsp"/>
</body>
</html>