Загрузка данных
<!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>
<style>
.nav.nav-tabs {
margin-bottom: 15px;
margin-top: 5px;
}
.tab-pane {
display: none;
}
.tab-pane.active {
display: block;
}
#incomingOrderInline .form-group {
display: flex;
align-items: center;
gap: 10px;
margin-bottom: 8px;
}
#incomingOrderInline .control-label {
min-width: 180px;
text-align: right;
font-weight: 600;
}
#incomingOrderInline .form-control {
max-width: 300px;
display: inline-block;
}
#incomingOrderInlineForm {
display: flex;
flex-wrap: wrap;
align-items: flex-start;
gap: 10px 24px;
}
#incomingOrderInlineForm .form-group {
display: flex;
flex: 1 0 25%;
box-sizing: border-box;
justify-content: flex-end;
}
#incomingOrderInlineForm .control-label {
min-width: 120px;
margin-right: 8px;
white-space: nowrap;
text-align: right;
font-weight: 600;
}
#incomingOrderInlineForm .form-control {
/*max-width: 240px;*/
width: 100%;
}
</style>
<script type="text/javascript">
$(function () {
var uploadFile = new UploadFile("snv_card");
var snv_id = null;
var par = {};
var fl_id = -1;
var contract_id = null;
var agent_id = null;
var rj_id = null;
$("#agent_name").select2(
{
allowClear: true,
minimumInputLength: 0,
id: function (e) {
return e.id;
},
ajax: {
url: "queryModel?queryModelCode=BI75RrUd",
dataType: 'json',
type: "POST",
data: function (term, page) {
return {/*employee_search: (($('input[name="displaying"]:checked').val() == 1) ? true : false),*/
term: term,
exclude_simple_user: false//$("#excludeSimpleUser").prop("checked")
}
},
results: function (data, page) {
return { results: data.list }
}
}, //ajax
formatResult: function (data) {
return '<div>' + data.name + '</div>';
},
formatSelection: function (data) {
return data.name;
},
escapeMarkup: function (m) {
return m;
}
}).on("change",
function (e) {
//par.agent_id = e.id;
agent_id = $(this).val();
checkParams();
}
);
$("#agent_name_fl").select2(
{
allowClear: true,
minimumInputLength: 0,
id: function (e) {
return e.id;
},
ajax: {
url: "queryModel?queryModelCode=BI75RrUd",
dataType: 'json',
type: "POST",
data: function (term, page) {
return {/*employee_search: (($('input[name="displaying"]:checked').val() == 1) ? true : false),*/
term: term,
exclude_simple_user: false//$("#excludeSimpleUser").prop("checked")
}
},
results: function (data, page) {
return { results: data.list }
}
}, //ajax
formatResult: function (data) {
return '<div>' + data.name + '</div>';
},
formatSelection: function (data) {
return data.name;
},
escapeMarkup: function (m) {
return m;
}
}).on("change",
function (e) {
agent_id = $(this).val();
checkParamsPeriod();
}
);
var rowTable;
var journal = new QueryTable("izgFL8gY", {
initComplete: function (queryAction) {
journal.queryAction = queryAction;
//journal.addActionButton("AddButtonMain", "Создать вручную", addingMainTable, "btn-success", false);
//journal.addActionButton("AddButtonMainLink", "Создать", addingMainTableLink, "btn-success", false);
journal.addActionButton("UpdateButtonMain", "Редактировать", addingMainTable, "btn-warning", true);
journal.addActionButton("DeleteButtonAttrTable", "Удалить", deleteRowAttrtable, "btn-danger", true);
journal.addActionButton("loadScan", "Загрузить скан", loadScan, "btn-success", true);
journal.addActionButton("AddButtonMainLink", "Загрузить из файла", loadInFileMainTable, "btn-success", false);
journal.addActionButton("CreateRequestButtonMain", "Создать запрос", createRequest, "btn-primary", false);
},
onRowSelect: function (data, index) {
$('#incomingOrderInline').stop(true,true).slideDown(150);
fillIncomingOrderInline(data);
rowTable = data;
cardSnv.reload();
flSNV.reload();
const tessaId = data.tessa_id_pure;
if (tessaId && String(tessaId).trim() !== "") {
const fullLink = "https://mqatessa360.bops.local/tessa/web/card/" + String(tessaId).trim();
$("#iof-incomingOrderLinkToTessa")
.attr("href", fullLink)
.attr("target", "_blank")
.text(tessaId);
$("#iof-incomingOrderLinkToTessahidden").val(fullLink);
} else {
$("#iof-incomingOrderLinkToTessa").attr("href", "javascript:void(0);").text("Ссылка отсутствует");
$("#iof-incomingOrderLinkToTessahidden").val("");
}
const appId = data.atc_id;
// Извлекаем номер/имя заявления (проверьте точное название поля в SQL)
const appName = data.atc_number || "Заявление";
if (appId) {
const fullAppLink = window.location.origin + '/ourpension/view?viewCode=application_rd_npo_pds&id=' + String(appId).trim();
$("#iof-incomingOrderApplicationLink")
.attr("href", fullAppLink)
.attr("target", "_blank")
.text(appName);
$("#iof-incomingOrderApplicationLinkhidden").val(fullAppLink);
} else {
$("#iof-incomingOrderApplicationLink")
.attr("href", "javascript:void(0);")
.text("Ссылка отсутствует");
$("#iof-incomingOrderApplicationLinkhidden").val("");
}
},
onRowDeselect: function (data, index) {
$('#incomingOrderInline').stop(true,true).slideUp(150);
},
drawCallback: function (settings) {
//$('#incomingOrderInline').stop(true,true).slideUp(150);
}
}, function () {
var data = {};
//Обработка фильтров
data.contract_number= getQueryParam('contract_number');
if ($("#filter\\.contract_number").val()) {
data.contract_number = $("#filter\\.contract_number").val();
}
if ($("#filter\\.client_full_name").val()) {
data.client_full_name = $("#filter\\.client_full_name").val();
}
if ($("#filter\\.contract_activity_type").select2('val')) {
data.contract_activity_type = $("#filter\\.contract_activity_type").val();
}
if ($("#filter\\.account_number").val()) {
data.account_number = $("#filter\\.account_number").val();
}
if ($("#filter\\.created_at_from").val()) {
data.created_at_from = $("#filter\\.created_at_from").val();
}
if ($("#filter\\.created_at_to").val()) {
data.created_at_to = $("#filter\\.created_at_to").val();
}
return data;
});
$("#filter\\.contract_activity_type").select2();
function addingMainTableLink() {
const viewCode = 'fRte1y7l';
const url = '${location.origin}/ourpension/view?viewCode=fRte1y7l';
location.href = url;
}
function loadScan() {
$('#scanUploadBlock').show();
$('#scanSave').show();
};
function loadInFileMainTable() {
//$('#loadSnv').stop(true,true).slideDown(150);
window.location.href = '${location.origin}/ourpension/view?viewCode=etrCuUDN';
}
function fillIncomingOrderInline(d) {
if (!d) return;
$('#iof-incomingOrderDocument_number').val(d.document_number);
if (d.contract_id && d.contract_number) {
$('#iof-incomingOrderContract_number_link')
.attr('href', 'view?viewCode=7HPZX8vF&id=' + d.contract_id)
.text(d.contract_number);
} else {
$('#iof-incomingOrderContract_number_link')
.removeAttr('href')
.text('---');
}
//$('#iof-contract_numberFormatted').val(d.contract_number);
$('#iof-incomingOrderCreated_at').val(d.created_at);
$('#iof-incomingOrderDateOfReceipt').val(d.certificate_date);
$('#iof-incomingOrderClient_full_name_link')
.attr('href', 'view?viewCode=Client_list&id=' + d. i_id)
.text(d.full_fl_name);
$('#iof-incomingOrderClient_full_name_hidden').val(d.full_fl_name);
//$('#iof-incomingOrderClient_full_name').val(d.full_fl_name);
$('#iof-incomingOrderContract_activity_type').val(d.contract_activity_type);
//$('#iof-incomingOrderAccount_number').val(d.account_number);
if (d.sh_id && d.sh_number) {
$('#iof-incomingOrderAccount_number_link')
.attr('href', 'view?viewCode=Pzbmp8Pg&id=' + d.sh_id)
.text(d.sh_number);
} else {
$('#iof-incomingOrderAccount_number_link')
.removeAttr('href')
.text('---');
}
$('#iof-incomingOrderAccount_number_hidden').val(d.sh_number);
$('#iof-incomingOrderReceive_method').val(d.receive_method);
$('#iof-incomingOrderCreated_by_username').val(d.created_by_username);
$('#iof-incomingOrderCertificate_date').val(d.contract_date);
$('#iof-incomingOrderlinkToTessa').val(d.tessa_card_id);
$('#iof-incomingOrderCreated_by_username').val(d.created_by_username)
$('#iof-comment').val(d.comment_text)
}
function addingMainTable() {
// Открываем модальное окно
$('#createModal').modal('show');
$("#document_number").val(rowTable.document_number || "");
$("#client_full_name").val(rowTable.full_fl_name || "");
$("#contract_activity_type").val(rowTable.contract_activity_type || "");
$("#contract_number").val(rowTable.contract_number || "");
$("#account_number").val(rowTable.account_number || "");
$("#receive_method").val(rowTable.receive_method || "");
$("#comment_text").val(rowTable.comment_text || "");
$("#application_id").val(rowTable.atc_number || "");
//$("#application_id").val(rowTable.application_id || "");
// $("#fns_request_id").val(rowTable.fns_request_id || "");
$("#certificate_id").val(rowTable.id || ""); //Добавилл
// Очистка формы при открытии
//$('#createForm')[0].reset();
}
$('#saveRecordBtn').on('click', function () {
/*
if (
!$('#certificate_date').val() ||
// !$('#document_number').val() ||
!$('#client_full_name').val()
) {
alert("Заполни обязательные поля!");
return;
}
*/
QueryAction.action("WlvY1Re9", {
initComplete: function (queryAction) {
TaxCertSaveAction.enable();
},
actionComplete: function (data) {
$("#createModal").modal('hide');
journal.reload();
}
}, function () {
// вернуть параметры формы
return {
certificate_date: $('#certificate_date').val(),
document_number: $('#document_number').val(),
client_full_name: $('#client_full_name').val(),
contract_activity_type: $('#contract_activity_type').val(),
contract_number: $('#contract_number').val(),
account_number: $('#account_number').val(),
receive_method: $('#receive_method').val(),
comment_text: $('#comment_text').val(),
// application_id: $('#application_id').val() || null,
fns_request_id: $('#fns_request_id').val() || null,
certificate_id: $('#certificate_id').val() //Добавил
};
});
});
function deleteRowAttrtable() {
QueryAction.action("7fLDYZX0", {
actionComplete: function (data) {
journal.reload();
}
}, getParamVal);
function getParamVal() {
let data = journal.data();
return data;
}
}
function application() {
return {
// id: $('#filter\\.id').val(),
app_number: $('#filter\\.app_number').val()
};
}
// Кнопка "Найти"
$('#filter\\.search').click(function () {
journal.reload();
$('#incomingOrderInline').stop(true,true).slideUp(150);
});
// Кнопка "Сбросить"
$('#filter\\.cleanFilter').click(function () {
$('#searchOrdersFilter')[0].reset();
journal.reload();
$('#incomingOrderInline').stop(true,true).slideUp(150);
$('#filter\\.contract_activity_type').val('').trigger('change');
});
function createRequest() {
$("#tax_deduction_cert_modal").modal('show');
}
// Загрузчик
var LoaderDataSource = new QueryDataSource("P4E8k3ol", {
onRowSelect: function (data, index) {
},
onRowDeselect: function (data, index) {
},
drawCallback: function (settings) {
},
})
var cardSnv = new QueryTable("GENWZ9Ty", {
initComplete: function (queryAction) {
},
onRowSelect: function (data, index) {
},
onRowDeselect: function (data, index) {
},
drawCallback: function (settings) {
}
}, function () {
var data = {};
if(rowTable) {
//data.document_number = rowTable.document_number;
data.certificate_group_key = rowTable.certificate_group_key;
data.certificate_id = rowTable.id;
// data.atc_id = rowTable.atc_id;
}
return data;
});
var flSNV = new QueryTable("KwIjFpTv", {
initComplete: function (queryAction) {
},
onRowSelect: function (data, index) {
fl_id = data.id
},
onRowDeselect: function (data, index) {
},
drawCallback: function (settings) {
}
}, function () {
var data = {};
if ($("#filter\\.fl_first_name").val()) {
data.fl_first_name = $("#filter\\.fl_first_name").val();
}
if ($("#filter\\.fl_last_name").val()) {
data.fl_last_name = $("#filter\\.fl_last_name").val();
}
if ($("#filter\\.fl_middle_name").val()) {
data.fl_middle_name = $("#filter\\.fl_middle_name").val();
}
if ($("#filter\\.cert_series").val()) {
data.cert_series = $("#filter\\.cert_series").val();
}
if ($("#filter\\.cert_number").val()) {
data.cert_number = $("#filter\\.cert_number").val();
}
if ($("#filter\\.insurance_number_fl").val()) {
data.insurance_number_fl = $("#filter\\.insurance_number_fl").val();
}
if ($("#filter\\.fl_contract_number").val()) {
data.fl_contract_number = $("#filter\\.fl_contract_number").val();
}
if ($("#filter\\.fl_birth_date").val()) {
data.fl_birth_date = $("#filter\\.fl_birth_date").val();
}
if ($("#filter\\.fl_sh_number").val()) {
data.fl_sh_number = $("#filter\\.fl_sh_number").val();
}
/*if(rowTable) {
data.i_id = rowTable.i_id;
// data.atc_id = rowTable.atc_id;
} */
return data;
});
$('#filter\\.search_fl').click(function () {
flSNV.reload();
});
$('#filter\\.cleanFilter_fl').click(function () {
$('#searchOrdersFilter_fl')[0].reset();
flSNV.reload();
});
$('#tax_deduction_cert_modal').on('hidden.bs.modal', function () {
$('#searchOrdersFilter_fl')[0].reset();
$('#filter\\.start_period').val('');
$('#filter\\.end_period').val('');
$('#check1').prop('checked', false);
flSNV.reload();
});
$("#contract_n").select2(
{
allowClear: true,
minimumInputLength: 0,
id: function (e) {
return e.id;
},
ajax: {
url: "queryModel?queryModelCode=vZLPQzSz",
dataType: 'json',
type: "POST",
data: function (term, page) {
return {
/*employee_search: (($('input[name="displaying"]:checked').val() == 1) ? true : false),*/
term: term,
exclude_simple_user: false,
id:fl_id
//$("#excludeSimpleUser").prop("checked")
}
},
results: function (data, page) {
return { results: data.list }
}
}, //ajax
initSelection: function (element, callback) {
$.ajax("queryModel?queryModelCode=vZLPQzSz", {
dataType: "json",
data: {id: $(element).val()}
}).done(function (data) {
callback(data.list[0]);
});
},
formatResult: function (data) {
return '<div>' + data.name + '</div>';
},
formatSelection: function (data) {
return data.name;
},
escapeMarkup: function (m) {
return m;
}
}).on("change",
function (e) {
contract_id = $(this).val();
checkParams();
}
);
//===============================Выгрузка запроса в ФНС====//
async function getSeqSmevRegister() {
return $.ajax({
type: "GET",
url: "queryModel?queryModelCode=qJmlPzPm",
async: false,
data: { seq_name: "'report.smev_register_id_sequence'" },
dataType: "json",
success: function (data) {},
})
}
//QueryAction.action("Tg0gsrmB"
async function createFnsPeriod(smevRegisterId) {
const start_date_app = $('#filter\\.start_period').val();
const end_date_app = $('#filter\\.end_period').val();
const isChecked = document.getElementById('check1').checked;
return $.ajax({
url: "queryAction/action",
type: "POST",
data: {
queryActionCode: "Tg0gsrmB",
viewCode: $.urlParam("viewCode"),
start_date_app: start_date_app,
end_date_app: end_date_app,
isChecked: isChecked,
smevRegisterId
},
dataType: "json",
success: function (data) {
showMessages(data.messages)
},
})
}
//QueryAction.action("J89p6V8P"
async function createLinkFile(smevRegisterId) {
return $.ajax({
url: "queryAction/action",
type: "POST",
data: {
queryActionCode: "J89p6V8P",
viewCode: $.urlParam("viewCode"),
rj_id: smevRegisterId
},
dataType: "json",
success: function (data) {
showMessages(data.messages)
},
})
}
//QueryAction.action("wFDjwFAa"
async function createSmevRegister(registerId) {
return $.ajax({
url: "queryAction/action",
type: "POST",
data: {
queryActionCode: "wFDjwFAa",
viewCode: $.urlParam("viewCode"),
registerType : "ФНС-ВЧТ",
registerId : registerId,
guid : uuid()
},
dataType: "json",
success: function (data) {
showMessages(data.messages)
},
})
}
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);
};
//блокируем кнопку загрузки, если нет данных
// ==================== ФУНКЦИИ ПРОВЕРКИ ПАРАМЕТРОВ (ВАЛИДАЦИЯ) ==================== //
// 1. Проверка для первой кнопки (нужны контракт и агент)
function checkParams() {
if (typeof contract_id !== 'undefined' && contract_id && typeof agent_id !== 'undefined' && agent_id) {
$('#load_xml').prop('disabled', false); // Разблокируем
} else {
$('#load_xml').prop('disabled', true); // Блокируем
}
}
// 2. Проверка для второй кнопки за период (нужны агент и обе даты)
function checkParamsPeriod() {
var startDate = $('#filter\\.start_period').val();
var endDate = $('#filter\\.end_period').val();
if (typeof agent_id !== 'undefined' && agent_id && startDate && endDate) {
$('#load_xml_period').prop('disabled', false); // Разблокируем
} else {
$('#load_xml_period').prop('disabled', true); // Блокируем
}
}
// ==================== ИНИЦИАЛИЗАЦИЯ ПРИ ЗАГРУЗКЕ СТРАНИЦЫ ==================== //
$(document).ready(function() {
// Проверяем начальное состояние обеих кнопок при старте страницы
checkParams();
checkParamsPeriod();
// Следим за изменениями в полях дат для периодической выгрузки
$('#filter\\.start_period, #filter\\.end_period').on('change input propertychange', function() {
checkParamsPeriod();
});
// БЕЗОПАСНЫЙ вывод состояния чекбокса в консоль при старте
var checkEl = document.getElementById('check1');
if (checkEl) {
console.log("Галочка поставлена:", checkEl.checked);
}
});
// ==================== ОБРАБОТЧИКИ НАЖАТИЯ КНОПОК ==================== //
// Кнопка 1: Стандартная выгрузка XML
$('#load_xml').on('click', async function() {
const $btn = $(this);
try {
$btn.prop('disabled', true); // Блокируем кнопку на время выполнения асинхронных функций
let sequensData = await getSeqSmevRegister();
await createSmevRegister(sequensData.id);
await exportXml(contract_id, agent_id, sequensData.id);
fns_id = await runMyActionThenExport(sequensData.id);
await createLinkFile(sequensData.id);
} catch (error) {
console.error("Ошибка при выполнении load_xml:", error);
} finally {
checkParams(); // Возвращаем кнопку в актуальное состояние
}
});
// Кнопка 2: Выгрузка запроса в ФНС за период
$('#load_xml_period').on('click', async function() {
const $btn = $(this);
try {
$btn.prop('disabled', true); // Блокируем кнопку на время выполнения асинхронных функций
let sequensData = await getSeqSmevRegister();
await createSmevRegister(sequensData.id);
await exportXml_period(agent_id, sequensData.id);
await createFnsPeriod(sequensData.id);
await createLinkFile(sequensData.id);
} catch (error) {
console.error("Ошибка при выполнении load_xml_period:", error);
} finally {
checkParamsPeriod(); // Возвращаем кнопку в актуальное состояние
}
});
// ==================== ФУНКЦИИ СКАЧИВАНИЯ / ЭКСПОРТА ==================== //
async function exportXml(contract_id, agent_id, smevRegisterId){
var data = flSNV.data();
var fl_Id = (data ? data.id : -1);
var param ='fl_Id=' + fl_Id + '&';
param = param + "contract_id=" + contract_id + '&';
param = param + "agent_id=" + agent_id + '&';
param = param + "id=" + fl_Id + '&';
param = param + "registerId=" + smevRegisterId;
await $.ajax({
type: "GET",
url: "queryModel/file?queryModelCode=Hzq8Wo9O&queryModelCharset=UTF-8&viewCode=n3mSokEw&" + param,
async: false,
data: { },
dataType: "text",
success: function (data) {},
});
}
async function exportXml_period(agent_id, smevRegisterId){
var start_date_app = $('#filter\\.start_period').val();
var end_date_app = $('#filter\\.end_period').val();
// Получаем чекбокс непосредственно в момент клика, когда страница точно загружена
var checkEl = document.getElementById('check1');
const isChecked = checkEl ? checkEl.checked : false;
var param = "";
param = param + "start_date_app=" + start_date_app + "&";
param = param + "end_date_app=" + end_date_app + "&";
param = param + "isChecked=" + isChecked + "&";
param = param + "agent_id=" + agent_id + '&';
param = param + "registerId=" + smevRegisterId;
window.open("queryModel/file?queryModelCode=lFVGfhgu&queryModelCharset=UTF-8&viewCode=n3mSokEw&" + param, '_blank');
}
var contractInPeriod = new QueryTable("Z6BkySrD", {
initComplete: function (queryAction) {
},
onRowSelect: function (data, index) {
},
onRowDeselect: function (data, index) {
},
drawCallback: function (settings) {
}
}, function () {
var data = {};
if ($("#filter\\.start_period").val()) {
data.start_date_app = $("#filter\\.start_period").val();
}
if ($("#filter\\.end_period").val()) {
data.end_date_app = $("#filter\\.end_period").val();
}
data.isChecked = document.getElementById('check1').checked;
return data;
});
function getFlId() {
const data = flSNV.data();
return (data && data.id) ? data.id : -1;
}
async function runMyActionThenExport(smevRegisterId) {
const fl_id = getFlId();
return $.ajax({
url: "queryAction/action",
type: "POST",
data: (function () {
return {
queryActionCode: "osDA0Imq",
viewCode: $.urlParam("viewCode"),
contract_id: contract_id,
fl_id: fl_id,
smevRegisterId : smevRegisterId
}
})(),
dataType: "json",
success: function (data) {
showMessages(data.messages)
rj_id = data.data;
},
})
}
async function runPeriodAction(smevRegisterId) {
const start_date_app = $('#filter\\.start_period').val();
const end_date_app = $('#filter\\.end_period').val();
const isChecked = document.getElementById('check1').checked;
QueryAction.action("Tg0gsrmB", {
actionComplete: function (data) {
}
}, function getParamVal() {
return {
start_date_app: start_date_app,
end_date_app: end_date_app,
isChecked: isChecked,
smevRegisterId
};
});
}
$('#upload_s').on('click', function () {
QueryAction.action("XDazkcHg", {
initComplete: function (queryAction) {
// TaxCertSaveAction.enable();
},
actionComplete: function (data) {
journal.reload();
}
}, function () {
// вернуть параметры формы
return {
p_individual_id: rowTable.i_id,
p_year_tax_deduction_id: rowTable.id
};
});
});
$('#findButtonId').on("click", function(){
contractInPeriod.reload();
// $('#load_xml_period').prop('disabled', false);
})
});
function getQueryParam(key) {
const url = new URL(window.location.href);
return url.searchParams.get(key);
}
</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/30274/'/>
<div class="row">
<h3 class="col-sm-12">Журнал справок о налоговом вычете</h3>
<form id="searchOrdersFilter" class="form-horizontal">
<div class="col-sm-12">
<!--Фильтры-->
<div class="col-sm-3">
<label for="filter.contract_number">Номер договора</label>
<input type="text" id="filter.contract_number" name="filter.contract_number" class="form-control" placeholder="Номер договора">
</div>
<div class="col-sm-3">
<label for="filter.client_full_name">ФИО</label>
<input type="text" id="filter.client_full_name" name="filter.client_full_name" class="form-control" placeholder="ФИО">
</div>
<div class="col-sm-3">
<label for="filter.contract_activity_type">Вид деятельности</label>
<select id="filter.contract_activity_type" name="filter.contract_activity_type" class="form-control" placeholder="Вид деятельности">
<option value = ""> </option>
<option value = "НПО"> НПО</option>
<option value = "PDS"> ПДС </option>
</select>
</div>
<div class="col-sm-3">
<label for="filter.account_number">Счет</label>
<input type="text" id="filter.account_number" name="filter.account_number" class="form-control" placeholder="Счет">
</div>
<div class="col-sm-3">
<label for="filter.created_at_from">Дата создания c</label>
<input type="date" id="filter.created_at_from" name="filter.created_at_from"
class="form-control">
</div>
<div class="col-sm-3">
<label for="filter.created_at_to">Дата создания по</label>
<input type="date" id="filter.created_at_to" name="filter.created_at_to"
class="form-control">
</div>
<div class="col-sm-3 btn-group" style="margin-top: 25px;">
<button id="filter.search" name="filter.search" type="button" class="btn btn-success">
<span class="glyphicon glyphicon-search" aria-hidden="true"></span> Найти
</button>
<button id="filter.cleanFilter" name="filter.cleanFilter" type="button" class="btn btn-warning">
<span class="glyphicon glyphicon-trash" aria-hidden="true"></span> Сбросить
</button>
</div>
<jsp:include page="queryTable.jsp">
<jsp:param name="queryTableCode" value="izgFL8gY"/>
</jsp:include>
</div> </form>
</div>
<div class="row" id="scanUploadBlock" style="display: none;">
<div class="col-sm-8">
<jsp:include page="uploadFile.jsp">
<jsp:param name="uploadFileCode" value="snv_card"/>
<jsp:param name="uploadFileName" value="Полученные документы"/>
</jsp:include>
</div>
</div>
<div class="row" id="scanSave" style="display: none;">
<div class="col-sm-8">
<button id="upload_s" name="upload_s" type="button" class="btn btn-success" data-loading-text="Отбор...">
<span class="glyphicon " aria-hidden="true"></span>
Сохранить
</button>
</div>
</div>
<sec:authorize ifAnyGranted="ROLE_ADMIN,ROLE_DSPD_Expert,ROLE_DSPD_Manager,ROLE_Operblock_VIP">
<div id="loadSnv" class="panel panel-info" style=" margin-top:15px; display : none;">
<div class="row">
<div class="col-sm-12">
<h3>Шаг №1. Загрузите файл</h3>
<input type="hidden" name="file_id" id="fileId" value="-1" />
<jsp:include page="queryDataSource.jsp">
<jsp:param name="queryDataSourceCode" value="P4E8k3ol" />
</jsp:include>
</div>
</div>
</div>
</sec:authorize >
<div id="incomingOrderInline" class="panel panel-info" style=" margin-top:15px; display : none;">
<div class="panel-heading">Карточка справки о налоговом вычете</div>
<div class="panel-body">
<form id="incomingOrderInlineForm" class="form-vertical" role="form">
<input type="hidden" name="id" id="iof-incomingOrderId">
<input type="hidden" name="individualId" id="iof-incomingOrderIndividualId">
<input type="hidden" name="contractId" id="iof-incomingOrderContractId">
<input type="hidden" name="entityId" id="iof-incomingOrderEntityId">
<input type="hidden" name="jointIncomingOrderTypeId" id="iof-jointIncomingOrderTypeId">
<input type="hidden" name="payerEntityId" id="iof-incomingOrderPayerEntityId">
<div class="form-group">
<label class="control-label" for="incomingOrderClient_full_name">ФИО клиента</label>
<a id="iof-incomingOrderClient_full_name_link"
class="form-control"
href="#"
target="_blank"
style="cursor:pointer; background-color: #f0f4fe; border-color: #dbe2f4; color: #333; text-decoration:underline;">
</a>
</div>
<div class="form-group">
<label class="control-label" for="incomingOrderContract_number">Договор</label>
<a id="iof-incomingOrderContract_number_link"
class="form-control"
href="#"
target="_blank"
style="cursor:pointer; background-color: #f0f4fe; border-color: #dbe2f4; color: #333; text-decoration:underline;">
</a>
</div>
<div class="form-group">
<label class="control-label" for="incomingOrderCertificate_date">Дата договора</label>
<input type="text" class="form-control date-picker-on" maxlength="10" id="iof-incomingOrderCertificate_date" name="certificate_date"
placeholder="Дата договора" readonly>
</div>
<div class="form-group">
<label class="control-label" for="incomingOrderDocument_number">Номер справки</label>
<input type="text" class="form-control" id="iof-incomingOrderDocument_number" name="document_number"
placeholder="Номер справки" readonly>
</div>
<div class="form-group">
<label class="control-label" for="incomingOrderCreated_at">Дата создания</label>
<input type="text" class="form-control date-picker-on" maxlength="10" id="iof-incomingOrderCreated_at" name="created_at"
placeholder="Дата создания" readonly>
</div>
<div class="form-group">
<label class="control-label" for="incomingOrderDateOfReceipt">Дата получения</label>
<input type="text" class="form-control date-picker-on" maxlength="10" id="iof-incomingOrderDateOfReceipt" name="dateOfReceipt"
placeholder="Дата получения справки" readonly>
</div>
<div class="form-group">
<label class="control-label" for="incomingOrderReason">Основание</label>
<input type="text" class="form-control" id="iof-incomingOrderReason" name="incomingOrderReason"
placeholder="Основание" readonly>
<input type="hidden" id="iof-incomingOrderReason" name="incomingOrderReason">
</div>
<div class="form-group">
<label class="control-label" for="incomingOrderReceive_method">Способ получения</label>
<input type="text" class="form-control" id="iof-incomingOrderReceive_method" name="receive_methodFormatted"
placeholder="Способ получения" readonly>
<input type="hidden" id="iof-incomingOrderReceive_method" name="receive_method">
</div>
<div class="form-group">
<label class="control-label" for="iof-incomingOrderAccount_number_link">Номер счёта</label>
<a id="iof-incomingOrderAccount_number_link"
class="form-control"
href="#"
target="_blank"
style="cursor:pointer; background-color: #f0f4fe; border-color: #dbe2f4; color: #333; text-decoration:underline; display: block;">
</a>
<input type="hidden" id="iof-incomingOrderAccount_number_hidden" name="account_numberFormatted">
</div>
<div class="form-group">
<label class="control-label" for="incomingOrderContract_activity_type">Вид деятельности</label>
<input type="text" class="form-control" id="iof-incomingOrderContract_activity_type" name="contract_activity_typeFormatted"
placeholder="Вид деятельности" readonly>
<input type="hidden" id="iof-incomingOrderContract_activity_type" name="contract_activity_type">
</div>
<div class="form-group">
<label class="control-label" for="incomingOrderApplicationLink">Ссылка на заявление</label>
<a id="iof-incomingOrderApplicationLink" class="form-control" href="#" style="cursor:pointer; background-color: #f0f4fe; border-color: #dbe2f4; color: #333; text-decoration:underline;" target="_blank">Ссылка на заявление</a>
<input type="hidden" id="iof-incomingOrderApplicationLinkhidden" name="applicationLink" />
</div>
<div class="form-group">
<label class="control-label" for="incomingOrderLinkToTessa">Ссылка на СЭД</label>
<!-- Кликабельная ссылка -->
<a
id="iof-incomingOrderLinkToTessa"
class="form-control"
href="#"
style="cursor:pointer; background-color: #f0f4fe; border-color: #dbe2f4; color: #333; text-decoration:underline;"
target="_blank"
>
Ссылка на СЭД
</a>
<!-- Скрытое поле для отправки данных -->
<input
type="hidden"
id="iof-incomingOrderLinkToTessahidden"
name="linkToTessa"
/>
</div>
<div class="form-group">
<label class="control-label" for="comment">Комментарий</label>
<input type="text" class="form-control" id="iof-comment" name="comment"
placeholder="Комментарий" readonly>
<input type="hidden" id="iof-comment" name="comment">
</div>
<div class="form-group">
<label class="control-label" for="incomingOrderCreated_by_username">Ответственный</label>
<input type="text" class="form-control" id="iof-incomingOrderCreated_by_username" name="created_by_usernameFormatted"
placeholder="Ответственный" readonly>
<input type="hidden" id="iof-incomingOrderCreated_by_username" name="created_by_username">
</div>
</form>
<jsp:include page="queryTable.jsp">
<jsp:param name="queryTableCode" value="GENWZ9Ty"/>
</jsp:include>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Модальное окно -->
<div class="modal fade" id="createModal" tabindex="-1" role="dialog" aria-labelledby="createModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="createModalLabel">Редактирование справки</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Закрыть">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form id="createForm">
<!-- <div class="form-group">
<label for="inputName">Номер документа</label>
<input type="text" class="form-control" id="document_number" placeholder="Введите Номер документа">
</div>
-->
<div class="form-group">
<label for="inputName">ФИО клиента</label>
<input type="text" class="form-control" id="client_full_name" placeholder="Введите ФИО клиента" readonly>
</div>
<div class="form-group">
<label for="inputName">Вид деятельности</label>
<input type="text" class="form-control" id="contract_activity_type" placeholder="Введите Вид деятельности" readonly>
</div>
<div class="form-group">
<label for="inputName">Номер договора</label>
<input type="text" class="form-control" id="contract_number" placeholder="Введите Номер договора" readonly>
</div>
<div class="form-group">
<label for="inputName">Номер счёта</label>
<input type="text" class="form-control" id="account_number" placeholder="Введите Номер счёта" readonly>
</div>
<div class="form-group">
<label for="inputName">Способ получения</label>
<input type="text" class="form-control" id="receive_method" placeholder="Введите Способ получения" readonly>
</div>
<div class="form-group">
<label for="inputName">Комментарий</label>
<input type="text" class="form-control" id="comment_text" placeholder="Введите Комментарий">
</div>
<div class="form-group">
<label for="inputName">Ссылка на заявление</label>
<input type="text" class="form-control" id="application_id" placeholder="Введите Ссылку на заявление" readonly>
</div>
<div class="form-group">
<label for="inputName">Запрос ФНС</label>
<input type="text" class="form-control" id="fns_request_id" placeholder="Введите Запрос ФНС" readonly>
</div>
<div class="form-group">
<label for="inputDate">Дата получения справки</label>
<input type="date" class="form-control" id="certificate_date" readonly>
</div>
<div class="form-group">
<label for="document_number">Номер Справки</label>
<input type="text" class="form-control" id="document_number" placeholder="Введите Номер справки" readonly>
</div>
<input type="hidden" id="certificate_id">
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Отмена</button>
<button type="button" class="btn btn-primary" id="saveRecordBtn">Сохранить</button>
</div>
</div>
</div>
</div>
<!--Модалка для запроса в ФНС-->
<div id="tax_deduction_cert_modal" class="modal fade" tabindex="-1" role="dialog" data-backdrop="static"
aria-labelledby="tax_deduction_cert_modal" aria-hidden="true">
<div class="modal-dialog modal-lg">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Выгрузка файла </h4>
</div>
<div class="modal-body">
<div class="col-sm-12 col-lg-12">
<ul class="nav nav-tabs " id="myTab" role="tablist">
<li class="nav-item active" data-type="payment_data">
<a
class="nav-link tab-link"
id="payment_data-tab"
data-toggle="tab"
href="#payment_data"
role="tab"
aria-controls="payment_data"
aria-selected="true"
>По договору клиента</a
>
</li>
<li class="nav-item" data-type="file_data">
<a
class="nav-link tab-link"
id="file_data-tab"
data-toggle="tab"
href="#file_data"
role="tab"
aria-controls="file_data"
aria-selected="false"
>Заявления за период</a
>
</li>
</ul>
</div>
<div
id="payment_data"
class="tab-pane active in"
role="tabpanel"
aria-labelledby="payment_data-tab"
>
<form id="searchOrdersFilter_fl" class="form-horizontal">
<div class="col-sm-3">
<label for="filter.fl_last_name">Фамилия</label>
<input type="text" id="filter.fl_last_name" name="filter.fl_last_name" class="form-control" placeholder="Фамилия">
</div>
<div class="col-sm-3">
<label for="filter.fl_first_name">Имя</label>
<input type="text" id="filter.fl_first_name" name="filter.fl_first_name" class="form-control" placeholder="Имя">
</div>
<div class="col-sm-3">
<label for="filter.fl_middle_name">Отчество</label>
<input type="text" id="filter.fl_middle_name" name="filter.fl_middle_name" class="form-control" placeholder="Отчество">
</div>
<div class="col-sm-3">
<label for="filter.fl_middle_name">Серия ДУЛ</label>
<input type="text" id="filter.cert_series" name="filter.cert_series" class="form-control" placeholder="Серия ДУЛ">
</div>
<div class="col-sm-3">
<label for="filter.fl_middle_name">Номер ДУЛ</label>
<input type="text" id="filter.cert_number" name="filter.cert_number" class="form-control" placeholder="Серия ДУЛ">
</div>
<div class="col-sm-3">
<label for="filter.insurance_number_fl">СНИЛС</label>
<input type="text" id="filter.insurance_number_fl" name="filter.insurance_number_fl" class="form-control" data-mask="999-999-999 99" placeholder="СНИЛС">
</div>
<div class="col-sm-3">
<label for="filter.fl_contract_number">Номер договора</label>
<input type="text" id="filter.fl_contract_number" name="filter.fl_contract_number" class="form-control" placeholder="Номер договора">
</div>
<div class="col-sm-3">
<label for="filter.fl_sh_number">Номер счета</label>
<input type="text" id="filter.fl_sh_number" name="filter.fl_sh_number" class="form-control" placeholder="Номер счета">
</div>
<div class="col-sm-3">
<label for="filter.fl_birth_date">Дата рождения</label>
<input type="text" id="filter.fl_birth_date" name="filter.fl_birth_date" class="form-control" data-mask="99.99.9999" placeholder="Дата рождения">
</div>
<div class="col-sm-2 btn-group" style="margin-top: 25px;">
<button id="filter.search_fl" name="filter.search_fl" type="button" class="btn btn-success">
<span class="glyphicon glyphicon-search" aria-hidden="true"></span> Найти
</button>
</div>
<div class="col-sm-2 btn-group" style="margin-top: 25px; margin-left: -55px;">
<button id="filter.cleanFilter_fl" name="filter.cleanFilter_fl" type="button" class="btn btn-warning">
<span class="glyphicon glyphicon-trash" aria-hidden="true"></span> Сбросить
</button>
</div>
</form>
<jsp:include page="queryTable.jsp">
<jsp:param name="queryTableCode" value="KwIjFpTv" />
<jsp:param name="queryTableStyle" value="white-space:nowrap;" />
</jsp:include>
<form id="filterForm" class="form-vertical" role="form">
<div class="row">
<div class="col-sm-4">
<div class="form-group">
<label for="contract_n">Договор</label>
<input class="form-control" id="contract_n">
</div>
</div>
</div>
</form>
<form id="filterForm" class="form-vertical" role="form">
<div class="row">
<div class="col-sm-4">
<div class="form-group">
<label for="agent_name">Укажите подписанта</label>
<input class="form-control" id="agent_name">
</div>
</div>
</div>
</form>
<sec:authorize ifAnyGranted="ROLE_ADMIN,ROLE_DSPD_Expert,ROLE_DSPD_Manager,ROLE_Operblock_VIP">
<button id="load_xml" name="load_xml" type="button" class="btn btn-success" data-loading-text="Отбор...">
<span class="glyphicon " aria-hidden="true"></span>
Выгрузить
</button>
</sec:authorize >
</div>
<div id="file_data" class="tab-pane" role="tabpanel" aria-labelledby="file_data-tab">
<!--h><b>Период присваивания заявлению статуса "Принято"</b></h-->
<div class="form-group row mb-3 align-items-center">
<label for="filter.start_period" class="col-sm-2 col-form-label">Начало периода</label>
<div class="col-sm-3">
<input type="date" id="filter.start_period" name="filter.start_period" class="form-control">
</div>
</div>
<div class="form-group row mb-3 align-items-center">
<label for="filter.end_period" class="col-sm-2 col-form-label">Конец периода</label>
<div class="col-sm-3">
<input type="date" id="filter.end_period" name="filter.end_period" class="form-control">
</div>
</div>
<div>
<input type="checkbox" id="check1">
<label for="check1">Исключать заявления с предоставленной справкой</label>
</div>
<sec:authorize ifAnyGranted="ROLE_ADMIN,ROLE_DSPD_Expert,ROLE_DSPD_Manager,ROLE_Operblock_VIP">
<button id="findButtonId" name="findButtonId" type="button" class="btn btn-success" data-loading-text="Отбор..." >
<span class="glyphicon " aria-hidden="true"></span>
Найти
</button>
</sec:authorize >
<jsp:include page="queryTable.jsp">
<jsp:param name="queryTableCode" value="Z6BkySrD" />
<jsp:param name="queryTableStyle" value="white-space:nowrap;" />
</jsp:include>
<form id="filterForm" class="form-vertical" role="form">
<div class="row">
<div class="col-sm-4">
<div class="form-group">
<label for="agent_name_fl">Укажите подписанта</label>
<input class="form-control" id="agent_name_fl">
</div>
</div>
</div>
</form>
<button id="load_xml_period" name="load_xml" type="button" class="btn btn-success" data-loading-text="Отбор..." disabled = "disabled" >
<span class="glyphicon " aria-hidden="true"></span>
Выгрузить
</button>
</div>
</div>
<div class="modal-footer">
<button class="btn btn-default" type="button" data-dismiss="modal">
<s:message code="button.cancel" />
</button>
</div>
</div>
</div>
</div>
<jsp:include page="footer.jsp"/>
</body>
</html>