Загрузка данных


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>