🏠 Trang chủ Hướng dẫn sử dụng Đóng gói
📦 Hướng dẫn chi tiết

Quản lý Đóng gói

Hướng dẫn tạo phiếu đóng gói theo PO & bản vẽ, theo dõi số lượng gửi thực tế, tạo mã QR tra cứu nhanh và quản lý toàn bộ phiếu đóng gói.

🔗 Đi đến
📋 Tổng quan — Module Đóng gói

Module Đóng gói quản lý việc đóng gói hàng hoá theo từng đơn hàng (PO)bản vẽ trước khi giao cho khách hàng. Mỗi phiếu đóng gói ghi nhận số kiện, trọng lượng, kích thước và số lượng thực gửi của từng bản vẽ, đồng thời sinh mã QR để tra cứu và quét nhanh.

👤 Chọn khách hàng
📑 Chọn PO & Bản vẽ
📦 Tạo phiếu đóng gói
🔲 Mã QR tra cứu

Module gồm 2 trang chính:

📊 Quản lý đóng gói
Trang packaging_management.php — Xem danh sách phiếu, chi tiết từng bản vẽ, tạo/quét mã QR, tìm kiếm và lọc.
➕ Tạo phiếu đóng gói
Trang add_packagings.php — Chọn khách hàng, chọn PO & bản vẽ cần đóng gói, nhập số lượng gửi thực tế.
Tạo phiếu đóng gói — Các bước thực hiện

Truy cập add_packagings.php hoặc bấm nút + Tạo phiếu đóng gói trên trang danh sách.

  • 1
    Mã phiếu
    Hệ thống tự sinh mã theo định dạng PKG-YYYYMMDD-XXXX (ví dụ PKG-20260729-0001). Có thể sửa tay, nhưng nếu mã đã tồn tại trong doanh nghiệp, hệ thống sẽ báo lỗi và yêu cầu đổi mã khác.
  • 2
    Chọn khách hàng *
    Bắt buộc. Sau khi chọn, hệ thống tự tải danh sách PO (đơn hàng) của khách hàng đó qua get_po_by_customer.php.
  • 3
    Chọn PO & bản vẽ cần đóng gói
    Tick chọn một hoặc nhiều PO, mở rộng để chọn bản vẽ và nhập số lượng gửi thực tế cho từng bản vẽ. Xem chi tiết ở mục 📐 Chọn PO & Bản vẽ.
  • 4
    Nhập số kiện *
    Số kiện hàng thực tế của phiếu đóng gói. Bắt buộc, mặc định là 1.
  • 5
    Nhập trọng lượng & kích thước
    Tổng trọng lượng (kg) và kích thước kiện hàng theo định dạng DxRxC cm, ví dụ 60x40x30. Không bắt buộc — nếu bỏ trống, trọng lượng được lưu là 0.
  • 6
    Chọn trạng thái
    Mặc định ⏳ Chờ đóng gói. Có thể chọn sẵn 📦 Đang đóng gói, ✅ Hoàn thành hoặc 🚚 Đã giao nếu phiếu tạo sau khi đã xử lý xong.
  • 7
    👷 Nhân viên đóng gói
    Admin: chọn tự do bất kỳ nhân viên nào trong danh sách. Nhân viên thường: trường này tự động khoá về chính tài khoản đang đăng nhập, không thể đổi.
  • 8
    Nhập ghi chú (tuỳ chọn)
    Ghi chú thêm về phiếu đóng gói: yêu cầu đặc biệt khi giao hàng, đóng gói chống ẩm, v.v.
  • 9
    Bấm "Tạo phiếu đóng gói" để lưu
    Sau khi lưu thành công, hệ thống chuyển về trang danh sách và hiển thị thông báo "✅ Đã tạo phiếu đóng gói.".
⚠️
Điều kiện bắt buộcPhải chọn khách hàng và nhập số kiện lớn hơn 0, nếu không hệ thống sẽ báo lỗi "Vui lòng chọn khách hàng và nhập số kiện." và không lưu phiếu.
📑 Giải thích các trường dữ liệu
TrườngBắt buộcMô tả
Mã phiếu Tự động Sinh tự động theo định dạng PKG-YYYYMMDD-XXXX, có thể sửa tay nhưng phải là duy nhất trong doanh nghiệp.
Khách hàng Bắt buộc Khách hàng nhận hàng. Quyết định danh sách PO được tải lên để chọn bản vẽ đóng gói.
Trạng thái Tuỳ chọn Một trong 4 trạng thái: Chờ đóng gói / Đang đóng gói / Hoàn thành / Đã giao. Mặc định "Chờ đóng gói".
Nhân viên đóng gói Tuỳ chọn Admin chọn tự do; nhân viên thường bị khoá về chính mình.
PO & Bản vẽ Tuỳ chọn Danh sách bản vẽ được chọn kèm số lượng gửi, lưu dưới dạng JSON (items_json). Một phiếu có thể không gắn bản vẽ nào.
Số kiện Bắt buộc Số kiện hàng thực tế của phiếu, tối thiểu là 1.
Trọng lượng Tuỳ chọn Tổng trọng lượng theo kg. Nếu bỏ trống, hệ thống lưu giá trị 0.
Kích thước Tuỳ chọn Kích thước kiện hàng theo định dạng DxRxC (cm), ví dụ 60x40x30.
Ghi chú Tuỳ chọn Thông tin bổ sung về phiếu đóng gói.
Ngày tạo Tự động Hệ thống tự ghi nhận thời điểm tạo phiếu (created_at = NOW()).
📐 Chọn PO & Bản vẽ cần đóng gói

Sau khi chọn khách hàng, khu vực "Chọn PO & Bản vẽ" hiển thị danh sách PO của khách hàng dưới dạng các khối có thể mở/đóng (accordion):

  • 1
    Tick chọn PO
    Bấm vào checkbox hoặc tên PO để mở rộng khối, hệ thống tự động tải danh sách bản vẽ thuộc PO đó qua get_drawings_by_po.php.
  • 2
    Chọn bản vẽ cần đóng gói
    Mỗi bản vẽ hiển thị mã bản vẽ, mô tảsố lượng yêu cầu. Tick chọn bản vẽ để mở ô nhập số lượng gửi.
  • 3
    Nhập số lượng gửi
    Nhập số lượng thực tế đóng gói cho bản vẽ đó. Hệ thống tự so sánh với số lượng yêu cầu và hiển thị badge tình trạng ngay lập tức: ✅ Đủ hàng ⚠️ Thiếu ➕ Dư
💾
Lưu trữ dưới dạng JSONToàn bộ danh sách bản vẽ đã chọn (PO, mã bản vẽ, số lượng yêu cầu, số lượng gửi) được đóng gói thành JSON và lưu vào cột items_json của phiếu khi bấm lưu.
🔁
Chống trùng dữ liệuVì giao diện có cả bản Desktop và Mobile cùng tồn tại trên trang, hệ thống tự loại bỏ các bản vẽ trùng (cùng PO + cùng bản vẽ) trước khi lưu và khi hiển thị lại.
↩️
Bỏ chọn POBỏ tick một PO sẽ tự động bỏ chọn toàn bộ bản vẽ đã tick bên trong PO đó.
📊 Quản lý danh sách đóng gói

Trang Quản lý đóng gói (packaging_management.php) hiển thị toàn bộ phiếu đóng gói, mới nhất lên trước, dưới dạng bảng (Desktop) hoặc card (Mobile). Mỗi phiếu có thể chứa nhiều bản vẽ — bảng sẽ gộp các dòng theo phiếu và theo PO bằng rowspan.

📦 Bảng đóng gói — Desktop
#Mã phiếuKhách hàngTrạng tháiKiệnPOMã bản vẽSL YCSL gửiTình trạng
1 PKG-20260601-0001 Công ty TNHH ABC ⏳ Chờ đóng gói 3 PO-2405 DWG-001 50 50 ✅ Đủ
2 DWG-002 30 20 ⚠️ Thiếu 10

Riêng cột "File / Tình trạng" hiển thị các nút tải xem file bản vẽ đính kèm (PDF, Ảnh, AutoCAD, SolidWorks, STEP, IGS, DXF, HTML) ngay tại chỗ, không cần mở trang khác.

✏️
Nút SửaMở trang edit_packaging.php?id={id} để chỉnh sửa thông tin phiếu đóng gói.
📄
Xem file bản vẽBấm vào nút định dạng file (VD: PDF, STEP...) để mở trình xem file ngay trên trang, không cần tải về.
🗑️
Nút XoáChỉ hiển thị với tài khoản Admin (role = 0). Hệ thống yêu cầu xác nhận trước khi xoá. Hành động này không thể hoàn tác.
🏷️ Trạng thái đóng gói & Tình trạng bản vẽ

Mỗi phiếu đóng gói có một trong 4 trạng thái xử lý:

⏳ Chờ đóng gói — Phiếu vừa tạo, chưa xử lý 📦 Đang đóng gói — Đang trong quá trình đóng gói ✅ Hoàn thành — Đã đóng gói xong 🚚 Đã giao — Đã giao cho khách hàng

Riêng từng bản vẽ bên trong phiếu có tình trạng riêng, tính bằng cách so sánh số lượng yêu cầusố lượng gửi:

Chưa gửi — Chưa nhập số lượng gửi ✅ Đủ — Gửi đúng số lượng yêu cầu ⚠️ Thiếu N — Gửi ít hơn yêu cầu N cái ➕ Dư N — Gửi nhiều hơn yêu cầu N cái
📱
Badge tổng hợp trên MobileTrên giao diện Mobile, mỗi phiếu hiển thị thêm một badge tổng hợp tính trên tổng số lượng yêu cầu và tổng số lượng gửi của tất cả bản vẽ trong phiếu, giúp đánh giá nhanh tình trạng cả phiếu.
🔲 Mã QR — Tạo & Quét

Mỗi phiếu đóng gói có thể sinh một mã QR chứa thông tin phiếu để dán lên kiện hàng, phục vụ tra cứu nhanh khi xuất/nhập kho.

  • 1
    Tạo mã QR
    Bấm nút 🔲 QR trên phiếu tương ứng trong danh sách để mở cửa sổ hiển thị mã QR cùng bảng thông tin: mã phiếu, khách hàng, nhân viên đóng gói, PO, trọng lượng, kích thước, ngày tạo, ghi chú và chi tiết từng bản vẽ.
  • 2
    In phiếu QR
    Bấm nút In trong cửa sổ QR để in trực tiếp mã QR kèm bảng thông tin — phù hợp dán lên thùng/kiện hàng trước khi giao.
  • 3
    Quét mã QR để tìm phiếu
    Bấm nút Scan QR cạnh ô tìm kiếm để bật camera, quét mã QR trên kiện hàng — hệ thống tự điền mã phiếu vào ô tìm kiếm và tìm ngay lập tức.
📷
Quyền truy cập cameraTính năng quét QR cần trình duyệt cấp quyền truy cập camera thiết bị. Nếu bị từ chối, hệ thống hiển thị thông báo lỗi và người dùng có thể nhập mã phiếu thủ công thay thế.
🔍 Lọc & Tìm kiếm

Hệ thống cung cấp các tuỳ chọn lọc và tìm kiếm trên trang danh sách đóng gói:

🔎
Tìm kiếm phiếuNhập mã phiếu hoặc tên khách hàng vào ô tìm kiếm ở đầu trang (tự tìm khi gõ, không cần bấm nút). Từ khoá tìm được sẽ được tô sáng trong bảng kết quả.
🏷️
Lọc theo trạng tháiDropdown "Tất cả trạng thái" lọc phiếu theo: Chờ đóng gói / Đang đóng gói / Hoàn thành / Đã giao. Tự áp dụng ngay khi chọn.
🔄
Xoá bộ lọcBấm nút ↺ Tất cả để quay về danh sách đầy đủ không có bộ lọc nào.
🔐 Phân quyền người dùng

Module đóng gói áp dụng phân quyền dựa trên biến $role (system_role trong session):

Hành độngAdmin (role = 0)Người dùng thường
Xem danh sách phiếu ✅ Có ✅ Có
Tạo / Sửa phiếu ✅ Có ✅ Có
Xoá phiếu đóng gói ✅ Có ❌ Không
Chọn nhân viên đóng gói bất kỳ ✅ Có ❌ Không (tự khoá về chính mình)
Tạo / Quét mã QR ✅ Có ✅ Có
⚠️
Lưu ý bảo mậtTất cả thao tác đều kiểm tra bussines_id trong session để đảm bảo dữ liệu chỉ thuộc về doanh nghiệp của người dùng đang đăng nhập. Không thể xem hoặc sửa phiếu đóng gói của doanh nghiệp khác.
⚠️ Lưu ý quan trọng
🚨
Xoá phiếu là vĩnh viễnKhi xoá một phiếu đóng gói, toàn bộ dữ liệu bản vẽ, số lượng đã gửi đi kèm cũng bị xoá. Chỉ Admin mới có quyền thực hiện thao tác này.
🔢
Mã phiếu phải là duy nhấtNếu nhập tay mã phiếu trùng với phiếu đã có trong doanh nghiệp, hệ thống sẽ báo lỗi và yêu cầu đổi mã khác trước khi lưu.
✍️
Số lượng gửi phải nhập tayHệ thống không tự tính số lượng gửi từ số lượng yêu cầu — người dùng cần nhập chính xác số lượng thực tế đóng gói cho từng bản vẽ.
📱
Tối ưu cho MobileToàn bộ module hiển thị dạng card trên điện thoại (màn hình <768px), bao gồm cả tính năng chọn PO & bản vẽ, quét và tạo mã QR.
🏢
Dữ liệu độc lập theo doanh nghiệpMỗi doanh nghiệp (bussines_id) có danh sách phiếu đóng gói riêng. Không có sự chia sẻ dữ liệu giữa các doanh nghiệp trên cùng hệ thống.

Tiếp tục khám phá các chức năng liên quan:

Quản lý đóng gói Tạo phiếu đóng gói Mục lục hướng dẫn