Загрузка данных
<!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"/>
<style>
.row-form {
margin-bottom: 50px;
}
.form {
display: flex;
flex-direction: column;
gap: 30px;
}
.search-items {
display: flex;
flex-wrap: wrap;
gap: 10px;
}
.control-label {
color: #7c7c7c;
}
.form-btns {
display: flex;
justify-content: space-between;
}
.btn-search {
display: flex;
align-items: center;
gap: 10px;
border: none;
border-radius: 4px;
padding: 8px 10px;
color: #fff;
transition: 0.2s;
}
#searchBtn:hover {
background-color: #5cb85c;
box-shadow: 0 0 0 1px #5cb85c;
}
#searchBtn:active {
background-color: #5cb85c;
box-shadow: 0 0 0 0 #5cb85c;
}
#cleanBtn:hover {
background-color: #f0ad4e;
box-shadow: 0 0 0 1px #f0ad4e;
}
#cleanBtn:active {
background-color: #f0ad4e;
box-shadow: 0 0 0 0 #f0ad4e;
}
.btn-text {
display: inline-block;
line-height: 0;
}
.btn-icon {
display: inline-block;
width: 16px;
height: 16px;
}
.btn-svg {
width: 100%;
height: 100%;
object-fit: cover;
transition: 0.2s;
}
</style>
<style>
div {
scrollbar-width: thin;
}
thead{
background-color: #f0f5ff;
color: #2b2b2b;
}
.dataTables_info{
margin-top:10px;
}
.table-striped tbody tr.active:nth-child(odd) td, .table-striped tbody tr.active:nth-child(odd) th {
background-color: #2a87de;
}
.table-striped tbody tr.active:nth-child(odd) td, .table-striped tbody tr.active:nth-child(odd) th {
background-color:#2a87de;
}
.table tbody tr.active:hover td, .table tbody tr.active:hover th {
background-color:#2a87de !important;
}
.table tbody tr.active td, .table tbody tr.active th {
background-color: #2a87de !important;
color: white;
}
table {
background-color: white;
}
.table-striped>tbody>tr:nth-child(odd)>td, .table-striped>tbody>tr:nth-child(odd)>th {
background-color: white;
}
.table-striped>tbody>tr:nth-child(odd):hover>td, .table-striped>tbody>tr:nth-child(odd)>th {
background-color: #ccddffd3;
}
.table-hover>tbody>tr:hover>td, .table-hover>tbody>tr:hover>th {
background-color: #ccddffd3;
}
#queryTableFilterContainer_Yg9Gc4Jd {
display: none !important;
}
.btn-blue-edit {
background-color: #2a87de;
color: #fff;
transition: 0.2s;
}
.btn-blue-edit:hover,
.btn-blue-edit:focus {
background-color: #2a87de;
color: #fff;
box-shadow: 0 0 0 1px #2a87de;
}
.btn-blue-edit:active {
background-color: #2a87de;
color: #fff;
box-shadow: 0 0 0 0 #2a87de;
}
</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" src="<c:url value='/js/${version}/jquery.mask.min.js'/>"></script>
<script>
/*(function ($) {
$.fn.blockingButtons = function () {
return this.each(function() {
const $container = $(this);
let isLocked = false;
$container.on('click', 'button', function(e) {
if (isLocked) {
e.preventDefault();
e.stopImmediatePropagation();
return;
}
isLocked = true;
try {
} finally {
setTimeout(() => {
isLocked = false;
}, 0)
}
})
})
}
})(jQuery);*/
class ButtonBlocker {
constructor(container, opts = {}) {
this.el = typeof container === 'string' ? document.querySelector(container) : container;
if (!this.el) throw new Error('Container not found');
this.locked = false;
this.opts = Object.assign({
lockClass: 'is-locked',
autoUnlock: false, //true, // авторазблокировка для синхронных функций
}, opts);
this._attach();
}
_attach() {
//console.log('click1111');
this.el.addEventListener('click', (e) => {
//console.log('click222');
const isButton = e.target.closest('button');
if (!isButton) return;
//console.log('click333');
if (this.locked) {
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
return;
}
this.lock();
if (this.opts.autoUnlock) {
setTimeout(() => this.unlock(), 0);
}
}, true); // capture = true, глобально блокирует блок кнопок до любых событий. on('click') так не умеет. Если использовать его, то сначала отрабатывает событие на кнопку, только потом на блок.
}
lock() {
//console.log('click_lock');
if (this.locked) return;
this.locked = true;
this.el.classList.add(this.opts.lockClass);
}
unlock() {
//console.log('click_unlock');
if (!this.locked) return;
this.locked = false;
this.el.classList.remove(this.opts.lockClass);
}
}
</script>
<script type="text/javascript">
var clientTable ;
var mainTable;
var btnsContainer;
function refreshMaintable(){
mainTable.reload();
}
$(function () {
btnsContainer = new ButtonBlocker('#queryTableActionContainer_nSLu4u5f');
//--- ФИЛЬТР --//
function updateColClass() {
if ($(window).width() <= 1440) {
$('#myCol .col-sm-3').removeClass('col-sm-3').addClass('col-sm-4');
} else {
$('#myCol .col-sm-4').removeClass('col-sm-4').addClass('col-sm-3');
}
}
$(window).on('resize', updateColClass);
$(document).ready(updateColClass);
$("#searchAppType").select2({
placeholder: "Тип заявления",
allowClear: true,
minimumInputLength: 0,
id: function (e) {
return e.name;
},
ajax: {
url: "queryModel?queryModelCode=wFuy8mPX",
dataType: 'json',
data: function (term, page) {
return {
term: term,
maxResults: 10,
type: 0
};
},
results: function (data, page) {
return {
results: data.list
};
}
},
formatResult: formatCheckResult,
formatSelection: formatCheckSelection,
}).on("change", function (e) {
$("#param").attr("value", e.val);
});
function formatCheckResult(data) {
return '<div>' + data.name + '</div>';
}
function formatCheckSelection(data) {
return data.name;
}
// Функция получения данных из полей формы поиска
function formData() {
var data = {};
if ($("#searchName").val()) {
data.first_name = $("#searchName").val().trim();
}
if ($("#searchLastName").val()) {
data.last_name = $("#searchLastName").val().trim();
}
if ($("#searchMiddleName").val()) {
data.middle_name = $("#searchMiddleName").val().trim();
}
if ($("#searchSnils").val()) {
data.insurance_number = $("#searchSnils").val();
}
//if ($("#searchRegNum").val()) {
// data.application_type_id = $("#searchRegNum").val();
//}
if ($("#searchAppType").val()) {
data.application_type_name = $("#searchAppType").val();
}
if ($("#searchStartDate").val()) {
data.start_date = $("#searchStartDate").val();
}
if ($("#searchEndDate").val()) {
data.end_date = $("#searchEndDate").val();
}
let jsonData = JSON.stringify(data);
$('#param').val(jsonData);
};
// Функция для работы кнопок 'Enter' и 'Esc' на клавиатуре для отправки и очистке формы
$("#searchForm").on('keydown', function(event) {
if(event.key === 'Enter') {
event.preventDefault();
formData();
mainTable.reload();
}
});
// Функция для отправки формы по клику на кнопку "Найти"
$("#searchBtn").click(function() {
formData();
mainTable.reload();
});
// Функция для очистки формы по клику на кнопку "Сброс"
$("#cleanBtn").click(function() {
$('#searchForm input').val('');
$('#searchAppType').select2('val', '');
mainTable.reload();
});
/*
// Функция сброса и установки определенного регистра написания строки
function firstLetterUpperCase(string) {
return string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();
};
// Присвоение нужным нам полям ввода регистра написания строки
$("#searchName, #searchLastName, #searchMiddleName").on('input', function() {
$(this).val(firstLetterUpperCase($(this).val()));
});*/
// Маски для календаря и СНИЛС
$("#searchSnils").mask('000-000-000 00');
$("#searchStartDate, #searchEndDate").mask('00.00.0000');
//--- ПЕРВАЯ ТАБЛИЦА ---//
mainTable = new QueryTable("Yg9Gc4Jd", {
onRowDblClick: function (data, index) {},
initComplete: function (queryAction) {
//mainTable.addActionButton("selectBtn", "Выбрать", selectBtn, "btn-blue-edit", true);
$("#individualSearch").hide();
},
onRowSelect: function (data, index) {
//$('#app${param.preffix}appID${param.blockId}').val(data.id);
//$('#individualId').val(data.id);
if(data)
$('#tessaAppID').val(data.id);
$('#tessaAppRegNum').val(data.reg_number);
$('#app${param.preffix}appNumber${param.blockId}').val(data.reg_number.replace(/.*>(.*?)<\/a>.*/, '$1'));
$('#app${param.preffix}appealDate${param.blockId}').val(data.reg_date);
var fio = $(data.fio).text().trim().toUpperCase();
var snils = data.snils;
var clientData = {
fio: fio,
snils: snils
}
$("#individualSearch").hide();
//localStorage.setItem('clientData', JSON.stringify(clientData));
},
onRowDeselect: function (data, index) {
$("#individualSearch").hide();
},
drawCallback: function (settings) {
$("#individualSearch").hide();
$('.file_link-elem').each(function() {
var linkElem = $(this);
$(linkElem).on('click', function(){ tessaFileView(linkElem.attr('card_link_id'), linkElem.attr('id'), linkElem.attr("href")); return false; });
});
/* $('.file_link').each(function() {
var linkElem = $(this);
var cardElem = linkElem.next();
var linkText = linkElem.text().trim();
var cardText = cardElem.text().trim();
if(linkText && cardText) {
var items = linkText.split(/[,;]/);
linkElem.empty();
cardElem.remove();
items.forEach(function(item) {
let count = 1;
var newLink = $('<a></a>')
.attr('id', item.trim())
.attr('class','file_link-elem')
.attr('target', '_blanc')
.attr('href','https://mqatessa.bops.local/tessa/web/IntegrationController/getFileContent/' + item.trim())
// .attr('href','#')
.text('Скан-образы')
.on('click', function(){ tessaFileView(cardText, item.trim()); return false; });
linkElem.append(newLink).append('<br>');
// $('#' + item.trim()).click(function(){ tessaFileView(cardText, item.trim()); return false; });
// $('#' + item.trim()).off('click').on('click', function(){ tessaFileView(cardText, item.trim()); return false; });
});
}
})
*/
function toUpperCase(selector) {
$(selector).each(function() {
var text = $(this).text();
$(this).text(text.toUpperCase());
});
}
toUpperCase('.full-name-uppercase');
/*$('.file_link-elem').click(function() {
let fileId = $(this).attr('id');
$.ajax({
url: 'https://mqatessa.bops.local/tessa/web/IntegrationController/getFileContent/' + fileId,
method: 'GET',
success: function(data) {
alert(JSON.stringify(data));
}
})
})*/
}
}, function() {
let jsonData = $('#param').val();
if (jsonData) {
let data = JSON.parse(jsonData);
return data
}
}, {
showFilter: false,
showExportToExcelButton: false,
paginate: true
});
mainTable.addActionButton("takeWork", "Взять в работу", takeWork, "btn-primary", true);
function takeWork() {
var posibleAppData = mainTable.data();
btnsContainer.unlock();
showProcessing();
$("#indsearchSnils").val("");
$("#indsearchLastName").val("");
$("#indsearchName").val("");
$("#indsearchMiddleName").val("");
$("#indsearchBirthDate").val("");
$("#indsearchSertificateSeries").val("");
$("#indsearchSertificateNumber").val("");
$("#indsearchContractNumber").val("");
clientTable.reload();
clientCardContractTable.reload();
showClientCardPDN${param.blockId}_read_only(-1);
if (posibleAppData){
$.ajax(
{
url: "queryAction/action",
type: "POST",
//async:false,
data: {
queryActionCode: "0sBP50NK",
id: posibleAppData.id
},
dataType: "json",
success: function (data) {
if (data.result){
if (!data.data){
$("#individualSearch").hide();
showErrorMessage('Не удалось заблокировать заявление!');
}else{
$("#queryTable_Yg9Gc4Jd tbody .active").css("color", "red");
showMessages(data.messages);
$("#indsearchSnils").val(posibleAppData.snils);
$("#indsearchLastName").val(posibleAppData.last_name.toUpperCase());
$("#indsearchName").val(posibleAppData.first_name.toUpperCase());
$("#indsearchMiddleName").val(posibleAppData.middle_name ? posibleAppData.middle_name.toUpperCase(): '');
$("#indsearchBirthDate").val("");
$("#indsearchSertificateSeries").val("");
$("#indsearchSertificateNumber").val("");
$("#indsearchContractNumber").val("");
$("#individualSearch").show();
if ($('#searchAppType').val() == 'Иное') {
$('#controlBtnClientReport').show()
$('#cancelReportBTNcontainer').show()
$('#SNVbtncancelappPDnButton').hide()
} else {
$('#controlBtnClientReport').hide()
$('#cancelReportBTNcontainer').hide()
$('#SNVbtncancelappPDnButton').show()
}
/* var OPS = ["Заявление о назначении НП (ОПС)", "Заявление о назначении СПВ (ОПС)", "Заявление о РСПН (ОПС)", "Заявление наследника УЗЛ о выплате/доп.выплате СПН (ОПС)"];
if (OPS.includes(posibleAppData.application_type_name ) ){
$("#RegistrationBtn").show();
$("#RejectBtn").hide();
}else{
$("#RegistrationBtn").hide();
$("#RejectBtn").show();
}*/
$("#applicationIdBlock").val(posibleAppData.id);
$("#applicationNumberBlock").val(posibleAppData.application_type_id);
timer(); // запуск таймера блокировки
}
}else{
showMessages(data.messages);
}
},
complete: function(){
clientTable.reload();
hideProcessing();
}
}
);
clientTable.reload();
}
}
$("#indsearchBirthDate").on( "focus", function() { this.type='date'; });
$("#indsearchBirthDate").on( "blur", function() {
if (! this.value){
this.type='text';
}
});
//Лукап для типа заявления
$("#TypeSelect").select2({
placeholder: "Укажите тип заявления",
allowClear: true,
minimumInputLength: 0,
id: function (e) {
return e.id;
},
ajax: { // динамически подгружаем список
url: "queryModel?queryModelCode=m_app_view_type",
dataType: 'json',
data: function (term, page) {
return {
term: term // Этот текст передается из <select> при поиске значения
// ,maxResults: 10 // Можно использовать, что бы не вываливать все в список
};
},
results: function (data, page) {
var d = data.list.filter(d =>
d.id !== 'BR' && d.id !== 'PDBR' &&
d.id !== 'TD' && d.id !== 'PV' && d.id !== 'PK'
)
return {
results: d //data.list
};
}
},
formatResult: formatGroupResult,
formatSelection: formatGroupSelection,
escapeMarkup: function (m) {
return m;
},
initSelection: function (element, callback) { // тут мы добываем текущее значение для <SELECT>, весь список не подгружается
var id = $(element).val(); // берем значение связи
$.ajax("queryModel?queryModelCode=BRceubKF", {
dataType: "json",
data: {
id: '' // ID в главной таблице
}
}).done(function (data) {
callback(data);
});
}
}).on("change", function (e) {
$("#SelectTypeCode").attr("value", e.val); // Обновляем значение связи
});
function formatGroupResult(data) { // Форматирование значений списка в момент выбора
return '<div>' + data.short_name + '</div>';
}
function formatGroupSelection(data) { // Форматирование исходного значения списка
return data.short_name;
}
/* function showDoc(cardID, docID){
$.ajax( {
url: "queryModel?queryModelCode=docFromTessa",
data: { CardID : cardID,
FileID : docID
},
dataType: 'json',
success: function (data, page) {
let link = document.createElement('a');
link.download = data.Name;
let file_parts = data.Name.split('.');
let ext = file_parts[file_parts.length - 1];
let atype = {jpeg: 'image/jpeg',
jpg: 'image/jpeg',
gif: 'image/gif',
pdf: 'application/pdf',
png: 'image/png'
};
let type = '';
if (atype[ext.toLowerCase()]){
type = atype[ext.toLowerCase()];
}
let blob = b64toBlob(data.Content, type);
//let blob = new Blob([decodeBase64Unicode(data.Content)], {type: type});
link.href = URL.createObjectURL(blob);
link.dataset.downloadurl = [type, link.download, link.href].join(':');
//openNewWindow(link.href);
window.open(link.href, '_blank');
window.focus();
//link.click();
URL.revokeObjectURL(link.href);
link.remove;
}
});
}
function b64toBlob(b64Data, contentType = '', sliceSize = 512) {
let byteCharacters = atob(b64Data);
let byteArrays = [];
for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
const slice = byteCharacters.slice(offset, offset + sliceSize);
const byteNumbers = slice.split('').map(char => char.charCodeAt(0));
const byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
return new Blob(byteArrays, {type: contentType});
}
*/
clientTable = new QueryTable("nSLu4u5f", {
onRowDblClick: function (data, index) {},
initComplete: function (queryAction) {
clientTable.addActionButton(
"CreateAppBtn",
"Создать завление по клиенту",
CreateAppBtn,
"btn-success",
true
)
clientTable.addActionButton(
"CreateAnyAppBtn",
"Изменить тип заявления",
CreateAnyAppBtn,
"btn-success",
false
)
// clientTable.addActionButton("RegistrationBtn", "Продолжить регистрацию", RegistrationBtn, "btn-warning pull-right", true);
// clientTable.addActionButton("RejectBtn", "Отклонить заявление", RejectBtn, "btn-danger pull-right", false);
$("#queryTableActionContainer_nSLu4u5f").css("width", "100%")
$('#queryTableActionContainer_nSLu4u5f').after($('#controlBtnClientReport'))
},
onRowSelect: function (data, index) {
if (typeof IndAppListReloadTables${param.blockId} == "function"){
IndAppListReloadTables${param.blockId}();
}
//var fio = $(data.fio).text().trim().toUpperCase();
//var snils = data.snils;
//var clientData = {
// fio: fio,
// snils: snils
//}
//$("#individualSearch").hide();
//localStorage.setItem('clientData', JSON.stringify(clientData));
clientCardContractTable.reload();
showClientCardPDN${param.blockId}_read_only(data.id);
if ($('#searchAppType').val() == 'Иное') {
$('#createReport').attr('disabled', false)
}
},
onRowDeselect: function (data, index) {
//$("#individualSearch").hide();
clientCardContractTable.reload();
showClientCardPDN${param.blockId}_read_only(-1);
$('#createReport').attr('disabled', true)
},
drawCallback: function (settings) {
clientCardContractTable.reload();
showClientCardPDN${param.blockId}_read_only(-1);
}
}, function() {
var data = {};
$("#indsearchForm").serializeArray().map(function (x) {
data[x.name] = x.value.trim();
});
return data;
}, {
showFilter: false,
showExportToExcelButton: false,
paginate: true
},
);
function selectBtn() {
window.location.href = 'view?viewCode=XSs87VUH';
}
$("#indsearchBtn").click(function() {
clientTable.reload();
});
// Функция для очистки формы по клику на кнопку "Сброс"
$("#indcleanBtn").click(function() {
$('#indsearchForm input').val('');
clientTable.reload();
});
function CreateAppBtn(){
//console.log('click');
var clientData = clientTable.data();
var appData = mainTable.data();
var appType = getAppType(appData.application_type_code, $('#application_type_name_' + appData.id).text());
if (clientData && appData){
createApp(appData.id, clientData.id,appType);
}
};
function CreateAnyAppBtn(){
$('#SelectTypeModal').modal('show');
btnsContainer.unlock();
};
$('#ApplicationSelectType').on('click', function () {
var clientData = clientTable.data();
var appData = mainTable.data();
var appType = $("#SelectTypeCode").val();
//if (clientData && appData){
//createApp(appData.id, clientData.id,appType);
if (appData){
QueryAction.action('fCDo9g2d', {
actionComplete: function(data) {
if (data.result) {
$('#application_type_name_' + appData.id).text(data.data);
}
}
}, function() {
return {
appId: appData.id,
appCode: appType
}
})
}
$('#SelectTypeModal').modal('hide');
});
//Создано для отправки id
$(".create-application").bind("click", function () {
var individual_id = ((typeof clientTable == 'object' && clientTable.data())? clientTable.data().id : -1);
var tessa_doc_id = ((typeof mainTable == 'object' && mainTable.data())? mainTable.data().id : -1);
var reg_date = ((typeof mainTable == 'object' && mainTable.data())? mainTable.data().reg_date : -1);
var sharer_id = -1;
$.ajax({
url: "queryModel.json",
async: false,
type: "POST",
data: {
queryModelCode: "get_OPS_sharer_4_NP_SPV",
id: individual_id
},
dataType: "json",
success: function (data) {
if (data){
sharer_id = data.id;
}
/*
data.list.map(function(item){
if (item.service_type == "OPS") {
sharer_id = item.id;
}
});*/
}
});
const appUrls = {
"createSNV": 'view?viewCode=fRte1y7l&individual_id=' + individual_id + '&tessa_doc_id=' + tessa_doc_id + '®_date=' + reg_date
}
var appType = $(this).attr("id");
if (appType == "createSNV") {
var checkResult = null;
$.ajax({
url: "queryModel.json",
async: false,
type: "POST",
data: {
queryModelCode: "84fUjcvx",
number: $('#app${param.preffix}appNumber${param.blockId}').val()
},
dataType: "json",
success: function (data) {
checkResult = data.result;
}
});
if (checkResult === false) {
showWarningMessage("Данное заявление не является заявлением на расторжение. Создание справки о НВ недоступно.");
btnsContainer.unlock();
return;
}
}
if (appUrls[appType] != ""){
if (appType == "createAppCNL") {
get_count_apps(individual_id);
} else {
openNewWindow(appUrls[appType]);
}
}else{
alert("Этот тип завления пока не реализован.");
}
})
/*
$('#createSNV').on('click', function () {
var individual_id = ((typeof clientTable == 'object' && clientTable.data())? clientTable.data().id : -1);
openNewWindow('view?viewCode=fRte1y7l&individual_id=' + individual_id);
});
*/
function RegistrationBtn(){
};
function RejectBtn(){
var appData = mainTable.data();
var appType = getAppType(appData.application_type_id, $('#application_type_name_' + appData.id).text());
if (appType == "PP" || appType == "NP"){
var queryReport = new QueryReport("dzZ0vGcY", {
initComplete: function (queryAction) {
console.log("Инициализация компонента завершена");
},
reportComplete: function (data) {
if (data.data.id){
$.ajax(
{
url: "queryAction/action",
type: "POST",
async:false,
data: {
queryActionCode: "YWFYWy8j",
id: appData.id,
file_id: data.data.id,
p_code: data.p_code
},
dataType: "json",
success: function (data) {
if (data.result && data.data){
showSuccessMessage('Карточка отклонения заявления создана');
mainTable.reload();
//openNewWindow(data.data);
}else{
showMessages(data.messages);
}
}
}
);
}
console.log("Отчет построен");
},
reportFailed: function (request, status, error) {
console.log("Отчет завершен с ошибкой");
}
}, function () {
return {
SNILS: $("#indsearchSnils").val(),
First_name: $("#indsearchName").val(),
Last_name: $("#indsearchLastName").val(),
Middle_name: $("#indsearchMiddleName").val(),
Middle_name: $("#indsearchMiddleName").val(),
t_id: appData.id,
signatory_id: 10808
}
},
{onlyCreate: true}
);
queryReport.run();
}else{
alert("Отклонение этого типа заявления пока в разработке.");
}
};
function createApp(t_id, individual_id, appType){
showProcessing('Создается заявление');
$.ajax(
{
url: "queryAction/action",
type: "POST",
async:true,
data: {
queryActionCode: "Us9Esu5l",
t_id: t_id,
individual_id: individual_id,
app_type: appType
},
dataType: "json",
success: function (data) {
hideProcessing();
if (data.result && data.data){
showSuccessMessage('Заявление создано');
mainTable.reload();
openNewWindow(data.data);
}else{
btnsContainer.unlock();
if ( data.messages[0].message.match(/Where: функция PL\/pgSQL f_create_application_from_tessa\([^\)]+\),.+RAISE/) &&
data.messages[0].message.match(/RuntimeException: Ошибка в команде "Создать новое заявление", текст ошибки : PSQLException: ОШИБКА: (.+)/)[1]){
showWarningMessage(data.messages[0].message.match(/RuntimeException: Ошибка в команде "Создать новое заявление", текст ошибки : PSQLException: ОШИБКА: (.+)/)[1]) ;
}else if (data.messages[0].message.match(/Where: PL\/pgSQL function f_create_application_from_tessa\([^\)]+\).+RAISE/) &&
data.messages[0].message.match(/RuntimeException: Ошибка в команде "Создать новое заявление", текст ошибки : PSQLException: ERROR: (.+)/)[1]){
showWarningMessage(data.messages[0].message.match(/RuntimeException: Ошибка в команде "Создать новое заявление", текст ошибки : PSQLException: ERROR: (.+)/)[1]) ;
}else{
showMessages(data.messages);
}
}
}
}
)
}
/*
function createPDNBR(t_id, individual_id){
$.ajax(
{
url: "queryAction/action",
type: "POST",
async:false,
data: {
queryActionCode: "RFKhSXzE",
t_id: t_id,
individual_id: individual_id,
},
dataType: "json",
success: function (data) {
if (data.result && data.data){
showSuccessMessage('Заявление создано');
mainTable.reload();
openNewWindow('view?viewCode=qJz02V3v&id=' + data.data);
}else{
showMessages(data.messages);
}
}
}
);
};
function createappNPSPV(t_id, individual_id, payment_type){
$.ajax(
{
url: "queryAction/action",
type: "POST",
async:false,
data: {
queryActionCode: "6LjbCtMp",
t_id: t_id,
individual_id: individual_id,
payment_type: payment_type
},
dataType: "json",
success: function (data) {
if (data.result && data.data){
showSuccessMessage('Заявление создано');
mainTable.reload();
openNewWindow('view?viewCode=PxdvYjrk&id=' + data.data);
}else{
showMessages(data.messages);
}
}
}
);
};
*/
//Отклонение заявления
$("#SNVbtncancelappPDnButton${param.blockId}").on('click',function(){
let app_type;
let type_name;
if (mainTable.data()){
app_type = mainTable.data().application_type_code;
type_name = $('#application_type_name_' + mainTable.data().id).text();
}
let appCode = getAppType(app_type, type_name);
rejectApplication(appCode, true);
//mainTable.reload();
});
$('#cancelAppAny').click(() => {
console.log('cancelAppAny click')
if (mainTable.data()){
const appData = mainTable.data()
const type_name = $('#application_type_name_' + appData.id).text()
if ( type_name == "Иное" ) {
const data = { tessa_document_id: appData.id }
$('#otherAppRejectModal').data('data', data)
rejectApplicationOther()
}
}
})
$('#createCertPPP').click(() => {
if ( !mainTable.data() || !clientTable.data() ) return
$.ajax({
url: "queryAction/action",
async: false,
type: "POST",
data: {
queryActionCode: "sdcDHV4j",
tessa_document_id: mainTable.data().id
},
dataType: "json",
success: function (data) {
if ( data && data.result ){
localStorage.setItem('tessa_document_id', mainTable.data().id)
openNewWindow( 'view?viewCode=IxxfrCqp&id=' + clientTable.data().id )
}
}
})
})
$('#queryTableExportToExcelButton_nSLu4u5f').closest('.btn-group.pull-right')
.prepend($('#SNVbtncancelappPDnButton'))
.prepend($('#cancelReportBTNcontainer'))
.prepend($('#ReturnToDUDButton'));
// Возврат в ДУД
$("#ReturnToDUDButton${param.blockId}").on('click',function(){
let doc_id;
if (mainTable.data()){
if (mainTable.data().id > 0 ){
$('#ReturnToDUDModal').modal('show');
}
}
});
$("#ReturnToDUDAction").on('click',function(){
if (mainTable.data()){
if ($("#ReturnComment").val()){
doc_id = mainTable.data().id;
QueryAction.action('KQvnmhG2', {
actionComplete: function(data) {
if (data.result) {
$('#application_type_name_' + appData.id).text(data.data);
}
}
}, function() {
return {
id: doc_id,
comment: $("#ReturnComment").val()
}
});
$('#ReturnToDUDModal').modal('hide');
mainTable.reload();
}else{
}
}else{
$('#ReturnToDUDModal').modal('hide');
}
});
function getAppType(code, name){
var appType = '';
$.ajax( {
url: "queryModel?queryModelCode=f42ZRO4Z",
async:false,
data: { code : code,
name : name
},
dataType: 'json',
success: function (data, page) {
appType = data.code;
}
});
return appType;
};
var createRobotApp = new QueryAction("10Mx1eu3", {
initComplete: function (queryAction) {
createRobotApp.enable();
},
actionComplete: function (data) {
showMessages(data.messages);
}
});
// $("#indsearchSnils").mask('999-999-999 99', {placeholder: "___-___-___ __"});
// $("#indsearchForm input").on("change", function(){clientTable.reload();});
clientCardContractTable = new QueryTable("sharer_by_individual", {
initComplete: function (queryAction) {
//clientCardContractTable.addActionButton("unloadDirectum", "Директум", unloadDirectum, "btn-primary", true);
//clientCardContractTable.addActionButton("unloadDirectumRX", "Директум RX", unloadDirectumRX, "btn-default", true);
//$('#queryTableActionContainer_sharer_by_individual').append($('#printDictanceDocDropDown'));
//$('#queryTableActionContainer_sharer_by_individual').append($('#printExtractDocDropDown'));
},
onRowSelect: function (data, index) { },
onRowDeselect: function (data, index) { },
drawCallback: function (settings) { }
}, function () {
var clientData = clientTable.data();
var data = {};
data.individual_id = (clientData ? clientData.id : -1);
data.effectiveDate = $("#effectiveDate").val();
console.log(data.individual_id);
console.log(clientData);
return data;
}, {
showFilter: false,
showExportToExcelButton: false,
paginate: false
});
$("#individual_section").collapse();
$("#pdlPodftStatusRow").hide();
$("#byRepresentativeRow").hide();
$(".PDNparam").prop('readonly', true);
});
// БЛОКИРОВКА по времени
// Запуск таймера на 10 минут (10 * 60 секунд)
function timer() {
const tenMinutes = 10 * 60; // здесь можно поменять время таймера
startTimer(tenMinutes);
};
function startTimer(duration) {
let timer = duration, minutes, seconds;
const interval = setInterval(function () {
if (--timer < 0) {
clearInterval(interval);
timerModal();
}
}, 1000);
};
// Модальное окно
function timerModal(){
// 1 получаем элементы: Текст внутри модального окна и Номер заявления
const blockHeading = document.getElementById('blockHeading');
const applicationNumberBlock = document.getElementById('applicationNumberBlock').value;
// 2 Берем текущий текст, делаем замену и записываем обратно
blockHeading.innerHTML = blockHeading.innerHTML.replace('---', applicationNumberBlock);
// Отобразить модальное окно
$("#timerModalWindow").modal('show');
// Кнопка "Продолжить работу"
timerModalWindowActionTrue.onclick = function(){
toContinueWork();
};
// Кнопка "Завершить и выйти"
timerModalWindowActionFalse.onclick = function(){
finishEndExit();
};
};
// Функция "Продолжить работу"
function toContinueWork(){
var applicationIdBlock = $("#applicationIdBlock").val();
$.ajax({
url: "queryAction/action",
type: "POST",
data: {
queryActionCode: "pMj7L8x7",
continue: 1,
id: applicationIdBlock
},
dataType: "json",
success: function (data) {
$("#timerModalWindow").modal('hide');
timer();
}
});
};
// Функция "Завершить и выйти"
function finishEndExit(){
var applicationIdBlock = $("#applicationIdBlock").val();
$.ajax({
url: "queryAction/action",
type: "POST",
data: {
queryActionCode: "pMj7L8x7",
continue: 0,
id: applicationIdBlock
},
dataType: "json",
success: function (data) {
$("#timerModalWindow").modal('hide');
$("#individualSearch").hide();
$("#cleanBtn").click();
}
});
};
// END БЛОКИРОВКА по времени
</script>
<script type="text/javascript" src="/ourpension/js/${version}/uploadFile.js"></script>
<jsp:include page="header.jsp"/>
<jsp:include page="navbar.jsp"/>
<div id="SelectTypeModal" class="modal fade" tabindex="-1" role="dialog" data-backdrop="static"
aria-labelledby="SelectTypeModal" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span>
<span class="sr-only">
<s:message code="dialog.close" />
</span>
</button>
<h4 class="modal-title">Выбор типа заявления</h4>
</div>
<div class="modal-body">
<form id="SelectTypeModalform" class="form-vertical" role="form">
<input type="hidden" name="SelectTypeCode" id="SelectTypeCode">
<div class="form-group">
<label class="control-label" for="TypeSelect">Тип заявления</label>
<div id="TypeSelect" class="form-control"></div>
</div>
</form>
</div>
<div class="modal-footer">
<button id="ApplicationSelectType" class="btn btn-primary" type="button" >Выбрать</button>
<button class="btn btn-default" type="button" data-dismiss="modal">
<s:message code="button.cancel" />
</button>
</div>
</div>
</div>
</div>
<div id="ReturnToDUDModal" class="modal fade" tabindex="-1" role="dialog" data-backdrop="static"
aria-labelledby="ReturnToDUDModal" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">×</span>
<span class="sr-only">
<s:message code="dialog.close" />
</span>
</button>
<h4 class="modal-title">Возврат документа в ДУД</h4>
</div>
<div class="modal-body">
<form id="ReturnToDUDModalform" class="form-vertical" role="form">
<div class="form-group">
<label class="control-label" for="ReturnComment">Укажите причину возврата</label>
<textarea id="ReturnComment" class="form-control" row="5"> </textarea>
</div>
</form>
</div>
<div class="modal-footer">
<button id="ReturnToDUDAction" class="btn btn-primary" type="button" >Вернуть в ДУД</button>
<button class="btn btn-default" type="button" data-dismiss="modal">
<s:message code="button.cancel" />
</button>
</div>
</div>
</div>
</div>
<!-- Modal window block -->
<div id="timerModalWindow" class="modal fade" tabindex="-1"
role="dialog" data-backdrop="static" aria-labelledby="timerModalWindow" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<input type="hidden" name="applicationIdBlock" id="applicationIdBlock">
<input type="hidden" name="applicationNumberBlock" id="applicationNumberBlock">
<div class="modal-header">
<h4 class="modal-title" style="text-align: center;">ВНИМАНИЕ!</h4>
</div>
<div class="modal-body">
<h5 class="modal-title" id="blockHeading" style="text-align: center;"><strong>Время работы с заявлением --- истекло, желаете продолжить работу?</strong></h5>
</div>
<div class="modal-footer">
<button id="timerModalWindowActionTrue" class="btn btn-success" type="button">Продолжить работу</button>
<button id="timerModalWindowActionFalse" class="btn btn-danger" type="button">Завершить и выйти</button>
</div>
</div>
</div>
</div>
<!-- END Modal window block -->
<%--- ТАБЛИЦЫ И ИНТЕРФЕЙС ---%>
<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/30260/'/>
<div class="row">
<div class="col-sm-12">
<form class="form" id="searchForm">
<input type="hidden" id="param" name="param">
<input type="hidden" id="tessaAppID" name="tessaAppID">
<input type="hidden" id="tessaAppRegNum" name="tessaAppRegNum">
<input type="hidden" id="app${param.preffix}appealDate${param.blockId}" name="app${param.preffix}appealDate${param.blockId}">
<input type="hidden" id="individualId" name="individualId">
<input type="hidden" id="app${param.preffix}appNumber${param.blockId}" name="app${param.preffix}appNumber${param.blockId}">
<div id="myCol">
<!--<div class="col-sm-3">
<label class="control-label" for="searchLastName">Фамилия</label>
<input type="text" id="searchLastName" class="form-control" name="searchLastName">
</div>
<div class="col-sm-3">
<label class="control-label" for="searchName">Имя</label>
<input type="text" id="searchName" class="form-control" name="searchName">
</div>
<div class="col-sm-3">
<label class="control-label" for="searchMiddleName">Отчество</label>
<input type="text"
id="searchMiddleName"
class="form-control"
name="searchMiddleName">
</div>
<div class="col-sm-3">
<label class="control-label" for="searchRegNum">Регистрационный номер</label>
<input type="text" id="searchRegNum" class="form-control" name="searchRegNum">
</div>
<div class="col-sm-3">
<label class="control-label" for="searchSnils">СНИЛС</label>
<input type="text" id="searchSnils" class="form-control" name="searchSnils">
</div>-->
<div class="form-group">
<div class="row">
<div class="col-sm-3">
<label class="control-label" for="searchAppType">Тип заявления</label>
<div type="text" id="searchAppType" class="form-control" name="searchAppType">
<!--<option selected value="">Не выбрано</option>
<option>Иное</option>
<option>Заявление НП</option>
<option>Заявление ПДн</option>-->
</div>
</div>
<div class="col-sm-3">
<label class="control-label" for="searchStartDate">Дата поступления c</label>
<input type="text"
id="searchStartDate"
class="form-control date-picker-on"
name="searchStartDate"
value="<fmt:formatDate value='${currentDate}' pattern='dd.MM.yyyy' />">
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-sm-3">
<label class="control-label" for="searchEndDate">Дата поступления по</label>
<input type="text"
id="searchEndDate"
class="form-control date-picker-on"
name="searchEndDate"
value="<fmt:formatDate value='${currentDate}' pattern='dd.MM.yyyy' />">
</div>
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-sm-12">
<div class="btn-group">
<button id="searchBtn" class="btn btn-success" type="button">
<span class="glyphicon glyphicon-search" aria-hidden="true"></span>
<span class="btn-text">Найти</span>
</button>
<button id="cleanBtn" class="btn btn-warning" type="button">
<span class="glyphicon glyphicon-trash" aria-hidden="true"></span>
<span class="btn-text">Сбросить</span>
</button>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
<br>
<div class="row">
<div class="col-sm-12">
<jsp:include page="queryTable.jsp">
<jsp:param name="queryTableCode" value="Yg9Gc4Jd"/>
</jsp:include>
</div>
</div>
<div class="row">
<%--div class="col-sm-10"></div--%>
<%--div class="col-sm-12 ">
<jsp:include page="queryAction.jsp">
<jsp:param name="queryActionCode" value="10Mx1eu3"/>
<jsp:param name="queryActionClass" value="btn-warning pull-right"/>
</jsp:include>
</div--%>
</div>
<hr>
<div id="individualSearch" class="row">
<div class="col-sm-12">
<form class="form" id="indsearchForm">
<div class="row" >
<div class="col-sm-3">
<%--label class="control-label" for="searchSnils">СНИЛС</label--%>
<input type="text" id="indsearchSnils" class="form-control" name="indsearchSnils" data-mask="999-999-999 99" placeholder="СНИЛС">
</div>
<div class="col-sm-3">
<%--label class="control-label" for="searchLastName">Фамилия</label--%>
<input type="text" id="indsearchLastName" class="text-uppercase text-only-ru form-control" name="indsearchLastName" placeholder="Фамилия">
</div>
<div class="col-sm-3">
<%--label class="control-label" for="searchName">Имя</label--%>
<input type="text" id="indsearchName" class="text-uppercase text-only-ru form-control" name="indsearchName" placeholder="Имя">
</div>
<div class="col-sm-3">
<%--label class="control-label" for="searchMiddleName">Отчество</label--%>
<input type="text" id="indsearchMiddleName" class="text-uppercase text-only-ru form-control" name="indsearchMiddleName" placeholder="Отчество">
</div>
</div>
<div class="row">
<div class="col-sm-3">
<input type="text" id="indsearchBirthDate" class="form-control" name="indsearchBirthDate" placeholder="Дата рождения">
</div>
<div class="col-sm-3">
<input type="text" id="indsearchSertificateSeries" class="form-control" name="indsearchSertificateSeries" placeholder="Серия ДУЛ">
</div>
<div class="col-sm-3">
<input type="text" id="indsearchSertificateNumber" class="form-control" name="indsearchSertificateNumber" placeholder="Номер ДУЛ">
</div>
<div class="col-sm-3">
<input type="text" id="indsearchContractNumber" class="form-control" name="indsearchContractNumber" placeholder="Номер договора">
</div>
</div>
<div class="form-group">
<div class="row">
<div class="col-sm-12">
<div class="btn-group">
<button id="indsearchBtn" class="btn btn-success" type="button">
<span class="glyphicon glyphicon-search" aria-hidden="true"></span>
<span class="btn-text">Найти</span>
</button>
<button id="indcleanBtn" class="btn btn-warning" type="button">
<span class="glyphicon glyphicon-trash" aria-hidden="true"></span>
<span class="btn-text">Сбросить</span>
</button>
</div>
</div>
</div>
</div>
</form>
<br>
<div class="row">
<div class="col-sm-12">
<jsp:include page="queryTable.jsp">
<jsp:param name="queryTableCode" value="nSLu4u5f"/>
</jsp:include>
</div>
</div>
<div class='hidden'>
<div id="controlBtnClientReport" class="btn-group navbar-btn">
<div class="btn-group" role="group">
<button id="createReport"
name="createReport"
class="btn btn-info dropdown-toggle"
type="button"
data-toggle="dropdown"
disabled>
Создать справку по клиенту
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li>
<a id="createCertPPP" style="cursor: pointer">
Документы, подтверждающие срок пенсионных оснований
</a>
</li>
<li>
<a id="createSNV" class="create-application" style="cursor: pointer">
Справка о НВ
</a>
</li>
</ul>
</div>
<div id="cancelReportBTNcontainer"class="btn-group" role="group">
<button id="cancelReportBTN"
name="cancelReportBTN"
class="btn btn-danger dropdown-toggle"
type="button"
data-toggle="dropdown">
Отклонить
<span class="caret"></span>
</button>
<ul class="dropdown-menu">
<li>
<a id="cancelAppAny" style="cursor: pointer">
Отклонить справку
</a>
</li>
</ul>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-11 text-right">
<button id="ReturnToDUDButton${param.blockId}" class="btn btn-danger">
Вернуть в ДУД
</button>
</div>
<div class="col-sm-1 text-right">
<button id="SNVbtncancelappPDnButton${param.blockId}" class="btn btn-danger">
Отклонить заявление
</button>
</div>
</div>
<!--div class="panel panel-default">
<div class="panel-heading"
role="tab"
id="persdata_section_heading">
<h4 class="panel-title">
<a class="collapsed"
data-toggle="collapse"
href="#persdata_section"
aria-expanded="false"
aria-controls="persdata_section">
Личные данные
</a>
</h4>
</div>
<div id="persdata_section"
class="panel-collapse collapse"
role="tabpanel"
aria-labelledby="persdata_section_heading">
<div class="panel-body"-->
<hr>
<jsp:include page="personal_pdn_block_tst_4br.jsp">
<jsp:param name="id" value="-1"/>
<jsp:param name="suffix" value="${param.blockId}_read_only"/>
<jsp:param name="queryModelCode" value="2IEqKs37"/>
</jsp:include>
<!--/div>
</div>
</div-->
<div class="panel panel-default">
<div class="panel-heading" role="tab" id="contract_section_heading">
<h4 class="panel-title">
<a class="collapsed"
data-toggle="collapse"
href="#contract_section"
aria-expanded="false"
aria-controls="contract_section">
Договоры и счета
</a>
</h4>
</div>
<div id="contract_section"
class="panel-collapse collapse"
role="tabpanel"
aria-labelledby="contract_section_heading">
<div class="panel-body">
<div class="row">
<div class="col-sm-12">
<jsp:include page="queryTable.jsp">
<jsp:param name="queryTableCode" value="sharer_by_individual"/>
<jsp:param name="queryTableStyle" value="white-space:nowrap;"/>
</jsp:include>
</div>
</div>
</div>
</div>
</div>
<jsp:include page="IndAppList.jsp">
<jsp:param name="blockId" value="${param_blockId}"/>
</jsp:include>
</div>
</div>
</div>
</div>
</div>
</div>
<div id='other_app_reject_modal' class="row">
<jsp:include page="wWHQeOmW.jsp"/>
</div>
<%------%>
<jsp:include page="reject_block.jsp">
<jsp:param name="blockId" value="${param_blockId}"/>
<jsp:param name="preffix" value="${param.preffix}"/>
<jsp:param name="create_tessa" value="YWFYWy8j"/>
<jsp:param name="functionShowAppCard" value="refreshMaintable"/>
<jsp:param name="noticeKind" value="DENIAL"/>
</jsp:include>
</div>
<jsp:include page="footer.jsp"/>
</body>
</html>