Загрузка данных
<div class="modal fade"
id="deleteFnsRequestModal"
tabindex="-1"
role="dialog"
aria-labelledby="deleteFnsRequestModalLabel"
data-backdrop="static"
data-keyboard="false">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title"
id="deleteFnsRequestModalLabel">
Подтверждение удаления
</h4>
</div>
<div class="modal-body">
<p>
Необходимо подтвердить удаление
сформированного Запроса о вычете в ФНС.
</p>
<p id="deleteFnsRequestDetails"></p>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-default"
id="cancelDeleteFnsRequestBtn"
data-dismiss="modal">
Отмена
</button>
<button type="button"
class="btn btn-danger"
id="confirmDeleteFnsRequestBtn">
Удалить
</button>
</div>
</div>
</div>
</div>
<script type="text/javascript">
$(function() {
let pendingDeleteFileId = null;
let deleteInProgress = false;
function isDeletionAllowed(row) {
return row
&& !!row.model_file_id
&& (
row.is_sent_to_fns === false
|| row.is_sent_to_fns === 'false'
);
}
$('#deleteFnsRequestBtn').on('click', function() {
if (deleteInProgress) {
return;
}
pendingDeleteFileId = null;
const modelData = getSelectedFnsRows();
const rows = modelData && modelData.list
? modelData.list
: [];
if (rows.length !== 1) {
updateDeleteFnsRequestState();
return;
}
const row = rows[0];
if (!isDeletionAllowed(row)) {
showWarningMessage(
'Удаление недоступно: запрос должен быть не отправлен в ФНС и иметь файл.'
);
updateDeleteFnsRequestState();
return;
}
pendingDeleteFileId = row.model_file_id;
$('#deleteFnsRequestDetails').text(
'Запрос № ' + row.request_number
);
$('#deleteFnsRequestModal').modal('show');
});
$('#confirmDeleteFnsRequestBtn').on('click', function() {
if (deleteInProgress || !pendingDeleteFileId) {
return;
}
// Повторно проверяем выбранную строку перед вызовом.
const modelData = getSelectedFnsRows();
const rows = modelData && modelData.list
? modelData.list
: [];
if (
rows.length !== 1
|| String(rows[0].model_file_id)
!== String(pendingDeleteFileId)
|| !isDeletionAllowed(rows[0])
) {
$('#deleteFnsRequestModal').modal('hide');
updateDeleteFnsRequestState();
showWarningMessage(
'Выбор или статус запроса изменился. Выберите запрос заново.'
);
return;
}
const fileId = pendingDeleteFileId;
deleteInProgress = true;
$('#confirmDeleteFnsRequestBtn, #cancelDeleteFnsRequestBtn')
.prop('disabled', true);
$.ajax({
url: 'queryAction/action',
type: 'POST',
dataType: 'json',
data: {
viewCode: '7K6FKG8e',
queryActionCode: 'FCbnmhY1',
model_file_id: fileId
},
success: function(response) {
if (response && response.result === true) {
deleteInProgress = false;
pendingDeleteFileId = null;
$('#deleteFnsRequestModal').modal('hide');
$('#deleteFnsRequestBtn').prop('disabled', true);
fns_journal.reload();
showMessages([{
messageType: 'info',
message: 'Запрос удалён'
}]);
return;
}
if (
response
&& response.messages
&& response.messages.length
) {
showMessages(response.messages);
} else {
showWarningMessage(
'Сервер не подтвердил удаление. Обновите журнал и проверьте запрос.'
);
}
},
error: function(xhr) {
const response = xhr.responseJSON;
if (
response
&& response.messages
&& response.messages.length
) {
showMessages(response.messages);
} else {
showWarningMessage(
'Не удалось получить результат удаления. Обновите журнал перед повторной попыткой.'
);
}
},
complete: function() {
deleteInProgress = false;
$('#confirmDeleteFnsRequestBtn, #cancelDeleteFnsRequestBtn')
.prop('disabled', false);
}
});
});
$('#deleteFnsRequestModal').on('hide.bs.modal', function(e) {
if (deleteInProgress) {
e.preventDefault();
}
});
$('#deleteFnsRequestModal').on('hidden.bs.modal', function() {
pendingDeleteFileId = null;
});
});
</script>