Загрузка данных
let deleteModelFileId = null;
function isSentToFns(row) {
if (!row) {
return false;
}
return row.is_sent_to_fns_p === true
|| row.is_sent_to_fns_p === 'true'
|| row.is_sent_to_fns_p === 1
|| row.is_sent_to_fns_p === '1';
}
function updateSelectedRowsState() {
const modelData = getSelectedFnsRows();
const rows = modelData && modelData.list ? modelData.list : [];
const hasSelection = rows.length > 0;
const singleSelection = rows.length === 1;
const selectedRow = singleSelection ? rows[0] : null;
const sentToFns = isSentToFns(selectedRow);
// Эти кнопки работают с одной или несколькими строками
$('#downloadSelectedFiles').prop('disabled', !hasSelection);
$('#sendToFnsBtn').prop('disabled', !hasSelection);
// Редактирование работает только с одной строкой
$('#openModalBtn').prop('disabled', !singleSelection);
// Удаление доступно только для одной неотправленной строки
$('#deleteFnsRequestBtn').prop(
'disabled',
!singleSelection || sentToFns
);
if (singleSelection) {
sr_number = selectedRow.request_number;
} else {
sr_number = null;
}
}
<button type="button"
class="btn btn-danger"
id="deleteFnsRequestBtn"
style="margin-left: 10px;"
disabled>
<span class="glyphicon glyphicon-trash"></span>
Удалить
</button>
$("#deleteFnsRequestBtn").on("click", function() {
const modelData = getSelectedFnsRows();
const rows = modelData && modelData.list ? modelData.list : [];
if (rows.length !== 1) {
return;
}
const appData = rows[0];
if (isSentToFns(appData)) {
showWarningMessage(
'Удаление невозможно: запрос уже отправлен в ФНС'
);
updateSelectedRowsState();
return;
}
deleteModelFileId = appData.model_file_id;
$('#deleteFnsRequestText').text(
'Вы действительно хотите удалить запрос №'
+ appData.request_number
+ '?'
);
$('#deleteFnsRequestModal').modal('show');
});
$("#confirmDeleteFnsRequestBtn").on("click", function() {
if (!deleteModelFileId) {
return;
}
const confirmButton = $(this);
confirmButton.prop('disabled', true);
$.ajax({
url: "queryAction/action",
type: "POST",
data: {
viewCode: '7K6FKG8e',
queryActionCode: 'FCbnmhY1',
model_file_id: deleteModelFileId
},
dataType: "json",
success: function(response) {
if (response.result) {
$('#deleteFnsRequestModal').modal('hide');
deleteModelFileId = null;
sr_number = null;
showSuccessMessage('Запрос удалён');
fns_journal.reload();
return;
}
if (response.messages && response.messages.length) {
showMessages(response.messages);
} else {
showWarningMessage('Не удалось удалить запрос');
}
},
error: function(xhr) {
const response = xhr.responseJSON;
if (response && response.messages) {
showMessages(response.messages);
} else {
showWarningMessage('Ошибка при удалении запроса');
}
},
complete: function() {
confirmButton.prop('disabled', false);
}
});
});
$('#deleteFnsRequestModal').on('hidden.bs.modal', function() {
deleteModelFileId = null;
});
if (isSentToFns(appData)) {
<div class="modal fade"
id="deleteFnsRequestModal"
tabindex="-1"
aria-labelledby="deleteFnsRequestModalLabel"
aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title"
id="deleteFnsRequestModalLabel">
Подтверждение удаления
</h5>
</div>
<div class="modal-body">
<p id="deleteFnsRequestText">
Вы действительно хотите удалить выбранный запрос?
</p>
</div>
<div class="modal-footer">
<button type="button"
class="btn btn-secondary"
data-dismiss="modal">
Отмена
</button>
<button type="button"
class="btn btn-danger"
id="confirmDeleteFnsRequestBtn">
Удалить
</button>
</div>
</div>
</div>
</div>