Để 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.
BỘ TƯ PHÁP | CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM |
Số: 213/HTQTCT-HT | Hà Nội, ngày 10 tháng 3 năm 2023 |
Kính gửi: Sở Tư pháp tỉnh, thành phố trực thuộc Trung ương
Thực hiện quy định tại Điều 38 Luật Cư trú, Nghị định số 87/2020/NĐ-CP ngày 28/7/2020 quy định về Cơ sở dữ liệu hộ tịch điện tử, đăng ký hộ tịch trực tuyến, Nghị định số 104/2022/NĐ-CP ngày 21/12/2022 của Chính phủ sửa đổi, bổ sung một số điều của các nghị định liên quan đến việc nộp, xuất trình sổ hộ khẩu, sổ tạm trú, Cục Hộ tịch, quốc tịch, chứng thực đã có Công văn đề nghị Sở Tư pháp chủ động thực hiện các phương thức theo hướng dẫn của Bộ Công an để kiểm tra thông tin nơi cư trú của công dân, không yêu cầu công dân nộp/xuất trình giấy tờ chứng minh nơi cư trú khi giải quyết thủ tục đăng ký hộ tịchTuy nhiên, qua công tác quản lý cũng như phản ánh của các cơ quan báo chí cho thấy tình trạng yêu cầu công dân nộp/xuất trình sổ hộ khẩu, sổ tạm trú khi đăng ký hộ tịch, từ chối yêu cầu đăng ký hộ tịch khi người dân không xuất trình giấy tờ chứng minh nơi cư trú vẫn xảy ra ở một số cơ quan đăng ký hộ tịch; việc triển khai số hóa sổ hộ tịch còn nhiều vướng mắc, một số địa phương mới chỉ ban hành kế hoạch, chưa được bố trí kinh phí hoặc chưa nắm được bản chất của việc số hóa, nhầm lẫn giữa số hóa theo quy định của Nghị định số 87/2020/NĐ-CP với việc nhập dữ liệu hộ tịch từ sổ hộ tịch trên nền CSDLQGVDC.
Để thực hiện đúng quy định pháp luật về cư trú và bảo đảm tiến độ số hóa sổ hộ tịch, Cục Hộ tịch, quốc tịch, chứng thực đề nghị Sở Tư pháp tỉnh, thành phố trực thuộc Trung ương thực hiện các nội dung như sau:
(i) Tham mưu UBND tỉnh chỉ đạo UBND các cấp quán triệt công chức tư pháp thực hiện nghiêm quy định tại Điều 14 Nghị định số 104/2022/NĐ-CP, chủ động sử dụng các phương thức để khai thác, sử dụng thông tin về cư trú của công dân trong CSDLQGVDC trong quá trình giải quyết thủ tục hành chính lĩnh vực hộ tịch, quốc tịch, chứng thực.
(ii) Trong quá trình giải quyết thủ tục đăng ký hộ tịch (nhất là thủ tục cấp giấy xác nhận tình trạng hôn nhân, đăng ký kết hôn), nếu cần làm rõ tình trạng hôn nhân tại nơi thường trú trước đây của công dân, cơ quan đăng ký hộ tịch có trách nhiệm chủ động, phối hợp với cơ quan công an có thẩm quyền kiểm tra, xác minh theo quy định tại Điều 73 Luật Hộ tịch, không yêu cầu người dân nộp/xuất trình giấy tờ chứng minh thông tin về cư trú; nếu quá thời hạn không nhận được kết quả xác minh thì tiếp tục giải quyết hồ sơ theo quy định tại Điều 4 Thông tư số 04/2020/TT-BTP ngày 28/5/2020 của Bộ Tư pháp quy định chi tiết thi hành một số điều của Luật Hộ tịch và Nghị định số 123/2015/NĐ-CP.
(iii) Báo cáo tiến độ và kết quả triển khai thực hiện việc số hóa dữ liệu hộ tịch(iv) Đối với các tỉnh, thành phố đang nhập dữ liệu hộ tịch từ sổ hộ tịch trên nền CSDLQGVDC theo hướng dẫn tại Quy trình số 1292/HTQTCT-QLHC ngày 20/12/2022, đề nghị Sở Tư pháp báo cáo kết quả nhập dữ liệu, việc tiếp nhận dữ liệu do Cục Cảnh sát quản lý hành chính về trật tự xã hội bàn giao và tiếp tục hoàn thiện việc số hóa (scan, đính kèm trang sổ) tương ứng để cập nhật vào CSDLHTĐT theo quy định.
(v) Trước mắt, để phục vụ hoàn thiện Báo cáo thường kỳ Tổ công tác triển khai Đề án 06 của Chính phủ, đề nghị Sở Tư pháp cập nhật tình hình tại các mục iii, iv và gửi qua địa chỉ thư điện tử: chuyendd@moj.gov.vn trước ngày 20/3/2023. Định kỳ (trước ngày 15 hàng tháng) thông tin về tiến độ số hóa dữ liệu hộ tịch, kết quả nhập dữ liệu hộ tịch từ sổ hộ tịch trên nền CSDLQGVDC (qua địa chỉ thư điện tử: chuyendd@moj.gov.vn).
Trong quá trình tổ chức thực hiện nếu phát sinh khó khăn, vướng mắc, đề nghị Sở Tư pháp tổng hợp, báo cáo về Cục Hộ tịch, quốc tịch, chứng thực (Phòng Quản lý hộ tịch: đồng chí Nghiêm Hà Hải - Trưởng phòng, đồng chí Đỗ Đình Chuyền - Chuyên viên, điện thoại: 024.6273.9498) để được kịp thời tháo gỡ./.
Cục Hộ tịch, quốc tịch, chứng thực trao đổi để Sở Tư pháp tỉnh, thành phố trực thuộc Trung ương triển khai thực hiện.
| CỤC TRƯỞNG |
lồng nhau (bên trong) hay không
const memberID = 0;
const vbID = 'f911fe477e0fa4b38db7a21a5e483a9f';
// 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)}