Загрузка данных
<!-- Диалоговое окно отклонения справок с типом *Иное* -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<script type="text/javascript">
$(function() {
const $form = $('#otherAppRejectModal')
$('#closeRejectBtn', $form).click(() => {
closeRejectModal()
})
$('#confirmRejectBtn', $form).click(() => {
createRejectTessaCard()
})
$('[name=appReason]', $form).select2({
placeholder: 'Причина отклонения',
allowClear: true,
minimumInputLength: 0,
multiple: false,
data: [
{ id: '', text: 'Не выбрано' },
{ id: 1, text: 'Не клиент' },
{ id: 2, text: 'Достижение общеустановленного возраста' },
{ id: 3, text: 'Наличие бессрочных пенсионных оснований' },
{ id: 4, text: 'Нет заявления о расторжении' },
{ id: 5, text: 'Некорректная справка' },
],
id: function (e) {
return e.id
}
})
$('[name=appType]', $form).select2({
placeholder: 'Причина отклонения',
allowClear: true,
minimumInputLength: 0,
multiple: false,
data: [
{ id: '', text: 'Не выбрано' },
{ id: 1, text: 'Документ, подтверждающие срок пенсионных оснований' },
{ id: 2, text: 'Справка о налоговом вычете' }
],
id: function (e) {
return e.id
}
})
$('[name=mailAddress]', $form).select2({
allowClear: true,
multiple: false,
minimumInputLength: 3,
maximumSelectionSize: 1,
quietMillis: 3000,
ajax: {
url: 'queryModel?queryModelCode=UgvPy96q',
dataType: 'json',
data: function (term, page) {
return {
term: term,
count: '5'
};
},
results: function (data, page) {
var json = data.data;
var obj = data.data;
var results = ($.isArray(json) ? json : []);
results = ($.isArray(obj) ? obj : [obj]);
for (i = 0; i < results.length; i++) {
var text = obj[i].value;
var valId = obj[i].unrestricted_value;
results[i] = obj[i].data;
results[i].name = text;
results[i].id = valId; //obj[i].kladr_id + 0 + i;
}
return {
results: ($.isArray(results) ? results : [results])
};
},
error: function(xhr, status, error) {
alert("Произошла ошибка: " + error)
}
},
formatResult: function (address) {
return '<div>' + address.name + '</div>'
},
formatSelection: function (address) {
return address.name
},
escapeMarkup: function (m) {
return m
},
initSelection: function (element, callback) {
var term = $(element).val()
var dataSend;
dataSend.query = term.replace(/\d{6}, /, '');
dataSend.count = 1;
if(term != '') {
$.ajax({
url: 'queryModel?queryModelCode=UgvPy96q',
dataType: 'json',
data: dataSend,
error: function(data) {
showErrorMessage(JSON.parse(data.responseText).message_rus);
console.log(data);
}
}).done(function(data) {
var json = data.data;
var obj = data.data;
let results = ($.isArray(json) ? json : [])
results = ($.isArray(obj) ? obj : [obj])
for (i = 0; i < results.length; i++) {
var text = obj[i].unrestricted_value
results[i] = obj[i].data
results[i].name = text
results[i].id = obj[i].kladr_id + 0 + i
}
callback(results[0])
})
}
}
}).on("change", function (e) {
const data = $('[name=mailAddress]', $form).select2('data')
if (data) {
$('[name=mailAddress]', $form).val(data.name)
}
})
$('#mailingAddress').on("select2-open", function(e) {
var test = $('#mailingAddress').select2("data");
if (test != null) {
var search = $(".select2-drop.select2-with-searchbox input:not(:button).select2-input");
if ( search.length > 0) search.val(test.name);
}
});
$('[name=appSigner]', $form).select2({
placeholder: "Выберите подписанта",
allowClear: true,
minimumInputLength: 0,
id: function (e) {
return e.user_id
},
ajax: {
url: "queryModel?queryModelCode=l1BmFlvw",
dataType: 'json',
data: function (term, page) {
return {
term: term,
noticeKind: 'DENIAL',
maxResults: 10
}
},
results: function (data, page) {
return {
results: data.list
}
}
},
formatResult: formatSignerResult,
formatSelection: formatSignerSelection,
escapeMarkup: function (m) {
return m
},
initSelection: function (element, callback) {
const user_id = $(element).val()
$.ajax("queryModel?queryModelCode=l1BmFlvw", {
dataType: "json",
data: {
id: user_id
}
}).done(function (data) {
callback(data)
})
}
}).on("change", function (e) {
if (e.val.length) {
$('[name=appSignerErrorTooltip]', $form).attr('style', "display: none")
}
})
function formatSignerResult(data) {
return '<div>' + data.fullname + '</div>'
}
function formatSignerSelection(data) {
return data.fullname
}
function closeRejectModal() {
clearModalControls()
$('[name=appTypeErrorTooltip]', $form).hide()
$('[name=appReasonErrorTooltip]', $form).hide()
$('[name=appSignerErrorTooltip]', $form).hide()
$('[name=mailAddressErrorTooltip]', $form).hide()
$('#otherAppRejectModal').modal('hide')
}
function validateControls() {
if ( !$('[name=appType]', $form).val() ) {
$('[name=appTypeErrorTooltip]', $form).show()
$('[name=appReasonErrorTooltip]', $form).hide()
$('[name=appSignerErrorTooltip]', $form).hide()
$('[name=mailAddressErrorTooltip]', $form).hide()
return false
} else if ( !($('[name=appReason]', $form).val()) ) {
$('[name=appReasonErrorTooltip]', $form).attr('style', "display: block")
$('[name=appSignerErrorTooltip]', $form).attr('style', "display: none")
$('[name=appTypeErrorTooltip]', $form).hide()
$('[name=mailAddressErrorTooltip]', $form).hide()
return false
} else if (!($('[name=appSigner]', $form).val())) {
$('[name=appReasonErrorTooltip]', $form).attr('style', "display: none")
$('[name=appSignerErrorTooltip]', $form).attr('style', "display: block")
$('[name=appTypeErrorTooltip]', $form).hide()
$('[name=mailAddressErrorTooltip]', $form).hide()
return false
} else if ( !($('[name=mailAddress]', $form).val()) ) {
$('[name=mailAddressErrorTooltip]', $form).show()
$('[name=appTypeErrorTooltip]', $form).hide()
$('[name=appReasonErrorTooltip]', $form).hide()
$('[name=appSignerErrorTooltip]', $form).hide()
return false
} else {
$('[name=appReasonErrorTooltip]', $form).attr('style', "display: none")
$('[name=appSignerErrorTooltip]', $form).attr('style', "display: none")
$('[name=appTypeErrorTooltip]', $form).hide()
$('[name=mailAddressErrorTooltip]', $form).hide()
return true
}
}
function getRepotrCode() {
const value = $('[name=appType]', $form).val()
if ( !value ) return
if ( value == 2 ) return "oRTgDqGV"
if ( value == 1 ) {
const app_reason_value = $('[name=appReason]', $form).val()
switch(app_reason_value) {
case '1':
return 'R2n0SY0o';
case '2':
return 'yV7dw98f';
case '3':
return 'tJo0ybKd';
default:
break;
}
}
}
async function createRejectTessaCard() {
if ( !validateControls() ) return
const $form_data = $('#otherAppRejectModal').data('data')
const app_type_text = $('[name=appType]', $form).val() == 2 ?
$('[name=appType]', $form).select2('data').text :
$('[name=appType]', $form).val() == 1 ?
'в регистрации документа, подтверждающего пенсионные основания' : null
const form_params = {
id: $form_data.tessa_document_id,
agent_id: $('[name=appSigner]', $form).val(),
address: $('[name=mailAddress]', $form).val(),
reg_number: $('#tessaAppRegNum').val(),
reg_date: $('#app${param.preffix}appealDate${param.blockId}').val(),
app_type_name: app_type_text
}
const report_code = getRepotrCode()
const report_id = await createReport( report_code, form_params )
const dataForTessa = {
queryActionCode: "kbA0AO62",
tessa_document_id: $form_data.tessa_document_id,
signed_by: $('[name=appSigner]', $form).val(),
address_text: $('[name=mailAddress]', $form).val(),
report_id: report_id,
app_type_text
}
$.ajax({
url: "queryAction/action",
type: "POST",
data: dataForTessa,
dataType: "json"
}).done(function (data) {
if (data.result && data.data) {
console.log('create_outgoing_card_tessa response data: ', data)
if (data.data[1]) {
showSuccessMessage('Создана исходящая карточка заявления в Тессе')
dataNotice.cardId = data.data[0]
} else {
alert('Ошибка при создании исходящей карточки заявления в Тессе!\n' + data.data[0])
dataNotice.cardId = (data.data[0]).split(';')[0].trim()
}
} else {
showMessages(data.messages)
hideProcessing()
return
}
hideProcessing()
})
mainTable.reload()
closeRejectModal()
}
//--Добавил Коробов createReport--//
async function createReport( queryReportCode, form_params ) {
if ( !( form_params && form_params.id) || !queryReportCode ) return
const params = {
tessa_app_id: form_params.id,
reg_number: form_params.reg_number,
reg_date: form_params.reg_date,
app_type_name: form_params.app_type_name
}
if ( form_params.address && form_params.agent_id ) {
params.address = form_params.address
params.agent_id = form_params.agent_id
}
return new Promise((resolve, reject) => {
new QueryReport(queryReportCode, {
reportComplete: function (data) {
resolve(data.data.id)
},
reportFailed: function (request, status, error) {
reject(error)
},
}, () => params, { onlyCreate: true }).run()
})
}
})
function rejectApplicationOther() {
clearModalControls()
$('#otherAppRejectModal').modal({
backdrop: true
})
$('#otherAppRejectModal').modal('show')
return
}
function clearModalControls() {
$('#otherAppRejectModal' + ' input').val(null)
$('#otherAppRejectModal' + ' select').val(null)
$('#otherAppRejectModal' + ' div').select2('val', null)
}
</script>
<div id="otherAppRejectModal" class="modal fade" tabindex="-1">
<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">
<div class="form-group">
<label class="control-label">Тип справки</label>
<input name="appType"
class="form-control"
placeholder="Выберите тип справки">
</div>
<p name="appTypeErrorTooltip"
class="error-tooltip">
Необходимо выбрать тип справки
</p>
<div class="form-group">
<label class="control-label">Причина отклонения</label>
<input name="appReason"
class="form-control"
placeholder="Выберите причину отклонения">
<p name="appReasonErrorTooltip"
class="error-tooltip">
Необходимо выбрать причину
</p>
</div>
<div class="form-group">
<label class="control-label">Подписант</label>
<input name="appSigner" class="form-control">
</div>
<p name="appSignerErrorTooltip"
class="error-tooltip">
Необходимо выбрать подписанта
</p>
<div class="form-group">
<label class="control-label">Почтовый адрес</label>
<input type="text"
name="mailAddress"
class="form-control">
</div>
<p name=mailAddressErrorTooltip
class="error-tooltip">
Необходимо заполнить почтовый адрес
</p>
</div>
<div class="modal-footer">
<button id="confirmRejectBtn" class="btn btn-danger" type="button" >Отклонить</button>
<button id="closeRejectBtn" class="btn btn-default" type="button" >Отмена</button>
</div>
</div>
</div>
</div>