Vạch đen = mục tiêu hoàn thành (chỉnh trong tab Cài đặt).
⏰ Gap quá hạn / cần ưu tiên xử lý
📊 Thống kê theo Khu vực
Thống kê chi tiết theo Khu vực, Bộ phận (Function) và Loại nguyên nhân — dựa trên trạng thái đóng Gap hiện tại.
🏭 Theo Bộ phận (Function)
🏷️ Theo Loại nguyên nhân
📤 Xuất báo cáo Tổng quan
Xuất nhanh dữ liệu Tổng quan để đưa vào báo cáo/trình bày.
📝 Ghi nhận Finding mới
Nhập nhanh một phát hiện GMP thực tế tại hiện trường — có thể đính kèm ảnh bằng chứng ngay lúc phát hiện.
📊 Nhập / Xuất Finding qua Excel
Dùng khi cần ghi nhận nhiều Finding cùng lúc (khảo sát/audit theo đợt) hoặc cần xuất dữ liệu Finding của một khu vực để báo cáo. Template hỗ trợ đính kèm ảnh bằng chứng theo từng dòng Finding — mở sheet "Hướng dẫn" trong file template để xem cách chèn ảnh đúng chuẩn, tránh bị lệch dòng hoặc lỗi khi nhập lại.
📋 Finding vừa ghi nhận gần đây
Chưa có Finding nào.
🛠️ Đóng Gap (Owner)
Owner (PIC phụ trách khu vực) thêm hành động khắc phục (Action), đính ảnh bằng chứng, rồi gửi để Admin xác nhận. Sau khi gửi, mục "Trạng thái" sẽ hiển thị đang chờ Admin duyệt tại tab ✅ Xác nhận Gap.
📘 Hướng dẫn Đóng Gap dành cho Owner (PIC)
Tài liệu này dành riêng cho Owner / PIC phụ trách khu vực — người trực tiếp thực hiện hành động khắc phục (Corrective Action) khi khu vực của mình có Finding (Gap) được ghi nhận. Vui lòng đọc kỹ trước khi thao tác trên tab 🛠️ Đóng Gap (Owner).
🎯 Mục đích của tab "Đóng Gap (Owner)"
Đây là nơi duy nhất Owner cần vào để xử lý các Gap thuộc khu vực mình phụ trách: nhập hành động khắc phục, phân công người thực hiện, đặt hạn hoàn thành, và đính ảnh bằng chứng sau khi đã khắc phục xong. Sau khi Owner gửi, bộ phận QA/Admin sẽ kiểm tra và xác nhận đóng Gap ở một tab riêng — Owner không cần và không có quyền tự xác nhận đóng Gap của chính mình.
👤 Vai trò & trách nhiệm của Owner
Owner (PIC) được hiểu là người chủ quản, chịu trách nhiệm chính của khu vực (xem cột "Người phụ trách" trong bảng dưới). Trách nhiệm của Owner gồm:
Theo dõi các Finding (Gap) phát sinh tại khu vực mình phụ trách.
Đề xuất và thực hiện hành động khắc phục/phòng ngừa (Corrective/Preventive Action) phù hợp, đúng thời hạn.
Ghi nhận đầy đủ, trung thực bằng chứng đã khắc phục (hình ảnh thực tế tại hiện trường).
Chủ động theo dõi phản hồi từ Admin/QA — nếu bị từ chối, cần xử lý lại và gửi xác nhận lần nữa.
🧭 Quy trình đóng Gap — 5 bước
Tìm Finding của khu vực mình. Dùng bộ lọc "Lọc khu vực" ở đầu trang để chỉ hiển thị Finding thuộc khu vực bạn phụ trách. Mặc định bộ lọc "Trạng thái" đã để sẵn Open (chưa xử lý) để bạn thấy ngay việc cần làm trước.
Thêm Action. Trong thẻ Finding cần xử lý, bấm ➕ Thêm Action để tạo hành động khắc phục (mỗi Finding chỉ có tối đa 1 Action — nút này sẽ tự ẩn sau khi đã thêm).
Nhập đầy đủ thông tin bắt buộc (có dấu *): Hành động khắc phục (mô tả cụ thể việc đã/sẽ làm), PIC (người trực tiếp thực hiện — có thể là chính bạn hoặc người bạn phân công), và Due date (hạn hoàn thành thực tế, khả thi).
Đính ảnh bằng chứng SAU khi đã khắc phục xong thực tế — không đính ảnh trước hoặc ảnh minh hoạ không đúng vị trí. Ảnh cần rõ nét, thể hiện đúng hiện trạng đã được xử lý.
Chuyển "Trạng thái" sang "Gửi xác nhận (Pending)" — hệ thống chỉ cho phép chuyển sang Pending khi đã có ảnh bằng chứng. Sau bước này, Action sẽ nằm trong hàng chờ của Admin/QA tại tab ✅ Xác nhận Gap.
🚦 Ý nghĩa các trạng thái
Open — Chưa xử lý hoặc đang trong quá trình khắc phục, chưa gửi xác nhận.
⏳ Chờ xác nhận — Đã gửi đầy đủ hành động + ảnh bằng chứng, đang chờ Admin/QA kiểm tra và xác nhận đóng Gap.
⚠ Late — Đã quá hạn (Due date) mà vẫn chưa hoàn thành/gửi xác nhận. Cần ưu tiên xử lý ngay.
✔ Closed — Đã được Admin/QA xác nhận đóng Gap, không cần thao tác thêm.
↩️ Khi bị Admin từ chối (Reject)
Nếu bằng chứng chưa đạt yêu cầu, Admin sẽ Từ chối kèm lý do cụ thể — Action tự động quay lại trạng thái Open và lý do từ chối sẽ hiển thị ngay trên thẻ Action. Owner cần đọc kỹ lý do, khắc phục lại/chụp lại ảnh đúng yêu cầu, rồi lặp lại bước 4–5 để gửi xác nhận lần nữa.
✅ Tiêu chuẩn ảnh bằng chứng đạt yêu cầu
Chụp sau khi đã khắc phục xong tại đúng vị trí phát sinh Gap.
Ảnh rõ nét, đủ sáng, thấy được toàn bộ nội dung đã khắc phục (không bị che khuất, không mờ).
Không dùng ảnh cũ, ảnh minh hoạ chung chung, hoặc ảnh của khu vực khác.
Nếu hành động khắc phục cần nhiều hình ảnh minh chứng, có thể tạo thêm Action để đính kèm riêng từng phần.
💡 Mẹo sử dụng
Dùng bộ lọc Năm/Tháng để tập trung vào Finding của giai đoạn đang xử lý, tránh bị rối bởi dữ liệu cũ.
Chuyển bộ lọc "Trạng thái" sang Late định kỳ để rà soát và ưu tiên các Gap quá hạn trước.
Tab 📋 Danh sách Finding cho cái nhìn tổng thể dạng bảng gọn, có ô tìm nhanh theo vị trí/issue nếu cần tra cứu nhanh một Finding cụ thể.
❓ Câu hỏi thường gặp
Vì sao tôi không thấy nút "Xác nhận đóng Gap"? — Vì đó là quyền của Admin/QA, đảm bảo nguyên tắc kiểm tra chéo (người khắc phục không tự xác nhận). Owner chỉ cần gửi (Pending) và chờ phản hồi.
Tôi có thể sửa Action sau khi đã gửi xác nhận (Pending) không? — Không thể sửa khi đang Pending; nếu cần chỉnh sửa, hãy chờ Admin phản hồi (Từ chối để mở lại Open, hoặc liên hệ Admin hỗ trợ).
Một Finding có bắt buộc chỉ 1 Action không? — Có. Finding mới chỉ thêm tối đa 1 Action. Finding cũ có nhiều Action vẫn giữ lịch sử; Finding chỉ được xem là Closed khi tất cả Action đã Closed.
✅ Xác nhận Gap (Admin)
Chỉ Admin/QA mới thấy tab này. Kiểm tra ảnh bằng chứng do Owner gửi, đính ảnh xác nhận riêng, nhập tên người xác nhận rồi bấm Xác nhận đóng Gap để chuyển trạng thái Closed, hoặc Từ chối để trả lại cho Owner xử lý tiếp. Admin cũng có thể xoá vĩnh viễn một Finding tại đây.
📋 Danh sách Finding
Toàn bộ Finding dạng bảng gọn — lọc, tìm nhanh, xuất báo cáo. Admin có thêm cột chọn/xoá Finding (chọn nhiều để xoá hàng loạt).
🕒 Data Input Log — Nhật ký cập nhật dữ liệu
Theo dõi User, Máy tính và thời gian mỗi lần dữ liệu được tạo/sửa/xoá/đồng bộ — giúp biết ai vừa thay đổi dữ liệu, gần như theo thời gian thực. Nhật ký cập nhật được ghi bởi máy chủ Cloudflare; danh sách hiển thị tối đa 20 mục gần nhất.
Tổng số dòng nhật ký
0
✉️ Gửi Mail nhắc Gap chưa đóng
Thiết lập email của Owner (PIC) phụ trách từng khu vực. Bấm ✉️ Gửi mail để tạo sẵn email đính kèm file Excel danh sách Gap chưa đóng của khu vực đó — email mở ra ở dạng nháp trong Outlook, chỉ cần kiểm tra rồi bấm Gửi. Email được lưu lại trong máy này (đồng bộ cùng Cài đặt) để dùng cho các lần sau.
⚙️ Cài đặt
🔀 Thứ tự Tab
Chỉ Admin thấy và chỉnh được mục này. Dùng nút ▲▼ để đổi vị trí tab hiển thị trên thanh menu — áp dụng ngay cho mọi người dùng, đồng bộ cùng Cài đặt qua tab 🔄 Đồng bộ hoặc bản sao lưu.
🔐 Phân quyền Tab cho User
Chỉ Admin thấy và chỉnh được mục này. Chọn những tab mà tài khoản User thường được phép thấy khi đăng nhập — Admin luôn thấy đủ mọi tab, không bị ảnh hưởng bởi mục này. Bấm "Bỏ giới hạn" để User lại thấy tất cả như mặc định (không cần chọn từng ô).
🛡️ Data & Egress Control
Chỉ Admin thấy và chỉnh được mục này. Ước tính lưu lượng app tạo ra trên Cloudflare mỗi ngày và tự giảm tải khi gần/vượt hạn mức — không bao giờ khoá việc ghi nhận Finding/Action, chỉ tạm hoãn ảnh gốc, đồng bộ nền và Data Input Log khi cần.
Today's estimated traffic: — / — MB
Effective Hard Limit hôm nay: — MB · Ảnh gốc đang chờ tải: 0
🧹 Dọn Finding trùng lặp
Chỉ Admin dùng được. Quét toàn bộ Finding hiện có, phát hiện các Finding trùng nội dung (cùng khu vực + ngày + mô tả) — thường phát sinh khi 2 người cùng ghi nhận độc lập trên 2 máy rồi mới đồng bộ — rồi gộp Action của các bản trùng lại thành 1 Finding duy nhất, xoá các bản dư. Ngoài ra: Finding nào hoàn toàn không có Mô tả Finding (Issue) — thường do tạo/nhân bản nhầm — sẽ được xoá thẳng luôn, không cần chờ tìm bản trùng.
🧹 Dọn Action trống / trùng lặp (nhân bản nhầm)
Chỉ Admin dùng được. Quét toàn bộ Finding, tìm (1) các Action còn ở trạng thái Open mà thiếu Hành động khắc phục HOẶC thiếu Ảnh bằng chứng (kể cả chỉ thiếu 1 trong 2) và (2) các Action trùng nội dung trong CÙNG 1 Finding (cùng Hành động + PIC + Due date, thường phát sinh khi 2 máy cùng nhập Action gần giống nhau cho cùng 1 Finding rồi bị gộp lại lúc đồng bộ) — với trường hợp (2), chỉ giữ lại 1 bản hoàn thiện nhất (đã có bằng chứng/đã Closed được ưu tiên giữ), xoá các bản dư. Lưu ý: vì tiêu chí (1) là "HOẶC", Action đang làm dở hợp lệ (đã ghi Hành động, chỉ chưa kịp đính ảnh vì chưa khắc phục xong) cũng sẽ bị xoá — app tự tải bản sao lưu .json trước khi xoá để phòng ngừa.
🗜️ Dọn ảnh Finding cũ (giảm dung lượng lưu trữ)
Chỉ Admin dùng được. Xoá toàn bộ ảnh (ảnh lúc phát hiện, ảnh khắc phục, ảnh xác nhận) của các Finding đã Closed (Done) và đã đóng xong quá thời hạn bên dưới — chỉ giữ lại nội dung chữ (Ngày, Khu vực, Vị trí, Owner, Mô tả, Action...). Dữ liệu ảnh đã xoá không thể khôi phục trong app — nên tải bản sao lưu (.json) trước khi dùng nếu cần lưu trữ lâu dài.
💾 Sao lưu & phục hồi dữ liệu
Finding, Action và ảnh nén được lưu trên Cloudflare (D1) sau khi đồng bộ thành công; IndexedDB giữ bản cục bộ khi mất mạng. Nên tải bản sao lưu định kỳ để tránh mất dữ liệu khi xoá cache trình duyệt. Nút "Xoá toàn bộ dữ liệu" đưa app về trạng thái trắng hoàn toàn (không Finding; tài khoản giữ nguyên) — KHÔNG tự nạp lại dữ liệu mẫu; muốn có dữ liệu trở lại thì dùng "Phục hồi từ file .json" ở trên.
☁️ Đồng bộ Cloudflare
Dữ liệu được gửi tự động sau khi lưu và cập nhật từ máy khác mỗi 30 giây khi bạn không nhập liệu. Khi mất mạng, thay đổi chờ trên máy này.
Đang kết nối…
Ảnh nén lưu cùng Finding. Ảnh gốc mới đính kèm được đưa vào kho riêng Mediasave; lỗi tải ảnh gốc sẽ có thông báo.
👥 Quản lý người dùng
Quản lý danh sách tài khoản, phân quyền và trạng thái hoạt động trên hệ thống.
Tạo nhiều tài khoản cùng lúc: tải Template Excel, điền Họ tên / Tên đăng nhập / Mật khẩu / Vai trò mỗi người 1 dòng, rồi bấm Nhập từ Excel. File Xuất Excel không chứa mật khẩu (máy chủ chỉ lưu dạng băm, không đọc lại được).
Họ và tên
Đăng nhập
Vai trò
Trạng thái
Thao tác
Đang tải danh sách người dùng...
📖 Hướng dẫn bản web
Nhân viên đăng nhập bằng Tên đăng nhập + mật khẩu do Admin cấp (không cần email). Admin đăng nhập bằng Email + mật khẩu. Tài khoản phải có trong danh sách thành viên được duyệt.
Ghi nhận Finding → thêm tối đa một Action → bổ sung PIC, hạn xử lý và ảnh → gửi xác nhận. Admin/QA duyệt, từ chối hoặc mở lại Finding.
Thanh trạng thái cho biết thay đổi đã lên Cloudflare hay còn chờ gửi. Nếu có xung đột, tải bản sao lưu để đối chiếu trước khi chọn bản trên máy chủ.
Dữ liệu cũ trong file HTML không tự chuyển lên web. Admin xuất JSON từ app cũ, rồi nhập tại Cài đặt. Tài khoản và mật khẩu cũ không được nhập.
Xuất Excel, CSV, báo cáo HTML và email .eml vẫn dùng như trước. CSV xuất toàn bộ Finding; Excel và HTML theo bộ lọc hiện có.
Ảnh gốc nằm trong Cloudflare R2 → gmp-mediasave (riêng tư). JSON sao lưu chứa ảnh nén, không bao gồm ảnh gốc trong R2.
✉️ Soạn nội dung email nhắc xử lý Gap
💡 File Excel danh sách Gap chưa đóng sẽ được đính kèm tự động khi tạo email. Nội dung bên trên sẽ được TỰ ĐỘNG định dạng đẹp hơn khi gửi (banner màu, badge số liệu, biểu đồ) — không cần gõ mã HTML, cứ soạn văn bản thường như bình thường.