Để sử dụng toàn bộ tiện ích nâng cao của Hệ Thống Pháp Luật vui lòng lựa chọn và đăng ký gói cước.
VIỆN KIỂM SÁT NHÂN DÂN | CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM |
Số: 2711/VKSTC-V12 | Hà Nội, ngày 07 tháng 7 năm 2023 |
Kính gửi: | - Viện kiểm sát Quân sự trung ương; |
Trong quá trình tổng hợp báo cáo của VKSND các cấp 6 tháng đầu năm 2023, VKSND tối cao (Vụ 12) đã tổng hợp những khó khăn, vướng mắc và kiến nghị, đề xuất của VKSND các cấp; nghiên cứu, xin ý kiến Lãnh đạo VKSND tối cao và giải đáp cụ thể như sau:
I. Công tác kiểm sát và giải quyết khiếu nại, tố cáo trong hoạt động tư pháp
1(Trả lời: Trong quá trình xây dựng hệ thống biểu mẫu, VKSND tối cao (Vụ 12) đã tích hợp biểu mẫu yêu cầu báo cáo và cung cấp hồ sơ trong công tác kiểm tra các quyết định giải quyết khiếu nại và công tác kiểm sát và giải quyết khiếu nại, tố cáo thuộc thẩm quyền của VKSND (biểu mẫu số 44/KT).
Vụ 12 đã có Văn bản bổ sung hướng dẫn áp dụng biểu mẫu này gửi VKSND cấp dưới tại Công văn số 2646/VKSTC-V12 ngày 05/7/2023.
Ngày 04/3/2020, VKSND tối cao đã ban hành Công văn số 813/VKSTC-V12 gửi các cơ quan gồm: Bộ Công an, Bộ Quốc phòng, Bộ Tư pháp, Bộ Tài chính, Tòa án nhân dân tối cao, Bộ Nông nghiệp và Phát triển Nông thôn, xin ý kiến các Bộ ngành về việc phối hợp nghiên cứu, sửa đổi, bổ sung Hướng dẫn số 24 nêu trên. Tuy nhiên, TAND tối cao, Bộ Công an không nhất trí và đề nghị thực hiện theo quy định của Bộ luật Tố tụng hình sự hiện hành. Do vậy, VKSND tối cao không thể tiến hành việc sửa đổi, bổ sung Hướng dẫn số 24. Hiện nay, các cơ quan tố tụng vẫn thực hiện theo quy định của Bộ luật Tố tụng hình sự; trong quá trình thực hiện, nếu phát sinh vướng mắc thì sẽ báo cáo đến cấp có thẩm quyền để chủ động phối hợp và hướng dẫn đối với từng trường hợp cụ thể.
Đã được bổ sung tại Điều 17 trong Quy chế tiếp công dân, giải quyết khiếu nại, tố cáo và kiểm sát việc giải quyết khiếu nại, tố cáo trong HĐTP ban hành kèm theo QĐ số 222/QĐ-VKSTC ngày 22/6/2023 của Viện trưởng VKSTC.
2. Công tác giải quyết đơn giám đốc thẩm, tái thẩm
VKSND cấp cao phân công Kiểm sát viên cao cấp (Viện trưởng Viện nghiệp vụ) ký Thông báo không kháng nghị. Khi có khiếu nại Thông báo không kháng nghị thì Lãnh đạo VKSND cấp cao giải quyết.
Trường hợp khiếu nại Thông báo do Lãnh đạo VKSND cấp cao ký thì Vụ 12 sẽ tiếp nhận và chuyển đơn đến các đơn vị nghiệp vụ của VKSND tối cao để nghiên cứu, xem xét, nếu đơn thuộc trường hợp quy định tại khoản 2 Điều 5 Quy định số 02/QyĐ-VKSTC ngày 26/10/2018 thì Vụ nghiệp vụ có trách nhiệm xử lý, giải quyết đơn; đối với các trường hợp còn lại, Vụ nghiệp vụ sẽ chuyển lại VKSND cấp cao, nơi đã ban hành Thông báo để xem xét, xử lý đơn.
Nhất trí với đề xuất của VKSND tỉnh Kiên Giang, việc này giúp Lãnh đạo VKS địa phương quản lý được các vụ việc, kịp thời nắm bắt được thông tin và chỉ đạo các Phòng nghiệp vụ trong giải quyết các vụ án, vụ việc. Do vậy, đề nghị các VKSND cấp cao định kỳ tổng hợp, ban hành Thông báo kết quả giải quyết Văn bản do VKSND cấp dưới đề nghị kháng nghị giám đốc thẩm, tái thẩm các bản án, quyết định đã có hiệu lực pháp luật của Tòa án nhân dân gửi VKSND cấp dưới để biết, theo dõi.
Trên đây là nội dung giải đáp một số khó khăn, vướng mắc liên quan đến công tác tiếp công dân, giải quyết và kiểm sát việc giải quyết khiếu nại, tố cáo trong hoạt động tư pháp, thuộc trách nhiệm của ngành Kiểm sát nhân dân. Quá trình thực hiện, nếu có khó khăn, vướng mắc hoặc cần trao đổi, đề nghị phản ánh về VKSND tối cao (qua Vụ 12) để có hướng dẫn kịp thời./.
| TL. VIỆN TRƯỞNG |
lồng nhau (bên trong) hay không
const memberID = 0;
const vbID = '8cf7792dd06e84bafeff36a0911cb8b4';
// State management cho phân tích
let isAnalyzing = false; // Có đang phân tích không
let currentAnalyzingAddress = null; // Address đang được phân tích
let currentAnalyzingElement = null; // Element đang được phân tích
let currentAnalyzingBadge = null; // Badge của element đang phân tích
let isPanelOpen = false; // Panel phân tích có đang mở không
console.log('Tiện ích loaded - memberID:', memberID, 'vbID:', vbID);
function isInViewportAndTabNoiDung(element) {
const rect = element.getBoundingClientRect();
const buffer = 1500; // Buffer to preload content below the viewport (approx. 50+ lines)
const viewHeight = window.innerHeight || document.documentElement.clientHeight;
const isInViewport = rect.top < viewHeight + buffer && rect.bottom >= 0;
const isInTabNoiDung = $(element).closest('#tab_noi_dung_vb').length > 0;
return isInViewport && isInTabNoiDung;
}
function getAddress(element) {
const validTags = ['trichyeu', 'cancu', 'phan', 'chuong', 'muc', 'tieumuc', 'dieu', 'khoan', 'diem'];
const $parent = $(element).closest(validTags.join(','));
if (!$parent.length) {
return null;
}
let addr = $parent.attr('address');
if (!addr && $parent.prop('tagName').toLowerCase() === 'trichyeu') {
addr = 'trichyeu';
$parent.attr('address', addr);
}
return addr || null;
}
function processTnplClasses($element) {
const tnplKeysInLine = new Set(); // key = slug hoặc text (thường là slug)
$element.find('tnpl').each(function () {
const $tnpl = $(this);
const tnplSlug = ($tnpl.attr('slug') || '').trim().toLowerCase();
const tnplKey = tnplSlug || $tnpl.text().trim().toLowerCase();
// Đã xử lý trong cùng dòng => bỏ
if (tnplKeysInLine.has(tnplKey)) {
return;
}
tnplKeysInLine.add(tnplKey);
let tnplExists = false;
// Chỉ duyệt các tnpl đã được tô màu (class on)
$('tnpl.on').each(function () {
const $existingTnpl = $(this);
const existingSlug = ($existingTnpl.attr('slug') || '').trim().toLowerCase();
const existingKey = existingSlug || $existingTnpl.text().trim().toLowerCase();
if (
existingKey === tnplKey &&
isInViewportAndTabNoiDung($existingTnpl[0])
) {
tnplExists = true;
return false; // break each
}
});
if (!tnplExists) {
$tnpl.addClass('on');
}
});
}
function processQueue() {
while (pendingRequests < maxConcurrentRequests && requestQueue.length > 0) {
const task = requestQueue.shift();
pendingRequests++;
task()
.always(() => {
pendingRequests--;
processQueue();
});
}
}
function processVisibleParagraphs() {
try {
$('#tab_noi_dung_vb p:not([is-posted="1"])').each(function () {
let $element = $(this);
if (isInViewportAndTabNoiDung(this)) {
$element.attr('is-posted', '1');
$element.addClass('loading-content');
let p_innerHTML = $element.html();
let address = null;
if (cac_cau_hinh.loai_noi_dung.includes('docs')) {
address = getAddress($element);
}
const isSubP = $element.parents('p').length > 0;
if (isSubP && !allow_sub_p) {
$element.removeClass('loading-content');
return; // Không gửi nếu không cho phép
}
const postData = { p_content: p_innerHTML, cac_cau_hinh, address };
if (isSubP && allow_sub_p) {
postData.sub_p = 1;
}
requestQueue.push(() =>
$.ajax({
url: '//tnpl' + (Math.floor(Math.random() * 10) + 1) + '.hethongphapluat.com/tien-ich/tim.tien.ich.php',
type: 'POST',
data: postData,
success: function(response) {
$element.html(response);
processTnplClasses($element);
// Đợi CTTD và các tiện ích load xong rồi mới attach badge
if (memberID === 4 && typeof attachPhanTichBadge === 'function') {
setTimeout(function() {
// $element chính là thẻ p, kiểm tra và attach badge trực tiếp
const $parent = $element.closest('phan, chuong, muc, tieumuc, dieu, khoan, diem');
if ($parent.length > 0 && $parent.find('.badge-phan-tich[data-for="' + $parent.attr('address') + '"]').length === 0) {
const address = $parent.attr('address');
$element.attr('data-address', address);
// Lấy tên loại thẻ cho tooltip
const parentType = getParentTypeName($parent.prop('tagName').toLowerCase());
// Append badge VÀO PARENT (dieu, khoan,...) thay vì vào để tránh xung đột CTTD
const $badge = $('Phân tích');
$parent.append($badge);
// Thêm class để CSS set position: relative CHỈ cho element có badge
$parent.addClass('has-phan-tich-badge');
}
// Xử lý các p con (nếu có sub-p)
attachPhanTichBadge($element);
}, 300); // Đợi 300ms để CTTD render xong
}
},
complete: function() {
$element.removeClass('loading-content');
}
})
);
processQueue();
}
});
} catch(e) {
console.error('Lỗi processVisibleParagraphs:', e);
}
}
$(window).on('scroll resize', function () {
processVisibleParagraphs();
});
console.log('Bắt đầu processVisibleParagraphs lần đầu...');
processVisibleParagraphs();
console.log('processVisibleParagraphs lần đầu hoàn thành');
// Chức năng phân tích điều luật (chỉ cho member_id = 4)
if (memberID === 4) {
// Modal cảnh báo
function showWarningModal(message) {
// Tạo modal nếu chưa có
if ($('#warningModal').length === 0) {
const modalHTML = `
' + message + '
const $badge = $('Phân tích');
$parent.append($badge);
// Thêm class để CSS set position: relative CHỈ cho element có badge
$parent.addClass('has-phan-tich-badge');
}
}
});
}
// Helper: Escape HTML entities
function escapeHtml(text) {
const map = {
'&': '&',
'<': '<',
'>': '>',
'"': '"',
"'": '''
};
return String(text).replace(/[&<>"']/g, function(m) { return map[m]; });
}
// Helper: Convert Markdown to HTML (đơn giản)
function markdownToHtml(markdown) {
if (!markdown) return '';
let html = markdown;
// Headers
html = html.replace(/^### (.*$)/gim, ' ' + para.replace(/\n/g, ' Đang phân tích... Đang phân tích... Đang xóa cache và phân tích lại... Đang phân tích...$1
');
html = html.replace(/^## (.*$)/gim, '$1
');
html = html.replace(/^# (.*$)/gim, '$1
');
// Bold
html = html.replace(/\*\*(.*?)\*\*/g, '$1');
// Italic
html = html.replace(/\*(.*?)\*/g, '$1');
// Blockquote
html = html.replace(/^> (.*$)/gim, '$1
');
html = html.replace(/^> (.*$)/gim, '$1
');
// Lists (unordered)
html = html.replace(/^\- (.*$)/gim, '$1
');
// Lists (ordered)
html = html.replace(/^\d+\. (.*$)/gim, '
') + '' + escapeHtml(response.ten_van_ban) + '
';
if (response.so_hieu) {
html += 'Số hiệu: ' + escapeHtml(response.so_hieu) + '
';
}
html += 'Điều khoản: ' + escapeHtml(response.address) + '';
if (response.from_cache) {
html += ' Cache';
}
html += '
Vui lòng thử lại sau.
Chi tiết: ${escapeHtml(errorMsg)}
' + escapeHtml(response.ten_van_ban) + '
';
if (response.so_hieu) {
html += 'Số hiệu: ' + escapeHtml(response.so_hieu) + '
';
}
html += 'Điều khoản: ' + escapeHtml(response.address) + '';
html += '
Vui lòng thử lại sau.
Chi tiết: ${escapeHtml(errorMsg)}