Giới thiệu dự án

Trong kỷ nguyên chuyển đổi số và sự phát triển mạnh mẽ của thương mại điện tử, quản trị chuỗi cung ứng đóng vai trò xương sống trong sự tồn tại và phát triển của doanh nghiệp. Theo các khảo sát thị trường logistics, chi phí lưu kho và tổn thất do sai lệch tồn kho chiếm từ 20% đến 30% tổng chi phí vận hành doanh nghiệp. Việc quản lý kho bãi bằng phương pháp thủ công, sổ sách truyền thống hoặc các tệp Excel phân mảnh bộc lộ nhiều lỗ hổng nghiêm trọng: thất thoát hàng hóa, sai lệch số liệu thực tế so với sổ sách từ 15% đến 25%, tốc độ xử lý đơn hàng chậm trễ và hoàn toàn thiếu khả năng truy vết lịch sử luân chuyển hàng hóa.

Đồ án môn học Công nghệ Phần mềm tại Khoa Công nghệ Thông tin – Trường Đại học Sài Gòn (do nhóm sinh viên thực hiện dưới sự hướng dẫn của TS. Nguyễn Quốc Huy) tập trung giải quyết bài toán cốt lõi: Phân tích và thiết kế chi tiết module Quản lý Kho Vận dựa trên nền tảng mã nguồn mở Odoo ERP. Đồ án tiếp cận bài toán theo quy trình kỹ thuật phần mềm chuẩn mực từ mức Quan niệm (Conceptual), Logic đến Vật lý (Physical).

+-----------------------------------------------------------------------------+
|                      MÔ HÌNH NGHIỆP VỤ KHO VẬN TỔNG QUÁT                     |
+-----------------------------------------------------------------------------+
|                                                                             |
|  [Nhà Cung Cấp] ---> (Phiếu Nhận Hàng)                                      |
|                             |                                               |
|                             v                                               |
|                     [ KHO TIẾP NHẬN ]                                       |
|                             |                                               |
|             +---------------+---------------+                               |
|             | (Điều Chuyển Nội Bộ)          | (Hàng Hỏng/Lỗi)               |
|             v                               v                               |
|     [ KHO LƯU TRỮ CHÍNH ] ----------> [ PHẾ LIỆU KHO ]                      |
|             |                                                               |
|             +--------------> [ KIỂM KÊ KHO ] (Đối soát định kỳ)             |
|             |                                                               |
|             v (Quy tắc Bổ sung Min-Max)                                     |
|     (Phiếu Giao Hàng)                                                       |
|             |                                                               |
|             v                                                               |
|       [ Khách Hàng ]                                                        |
+-----------------------------------------------------------------------------+

Mục tiêu dự án

  1. Khảo sát toàn diện quy trình vận hành kho đa điểm, nhận diện các điểm nghẽn trong khâu quản lý luồng hàng và dữ liệu tồn kho.
  2. Thiết kế hoàn chỉnh mô hình hướng đối tượng cho 10 chức năng nghiệp vụ trọng yếu: Xác thực/Phân quyền, Quản lý kho, Cấu hình tuyến cung ứng, Quản lý phế liệu, Bổ sung hàng tự động, Điều chuyển hàng hóa, Quản lý danh mục sản phẩm và Kiểm kê định kỳ.
  3. Xây dựng tài liệu kỹ thuật chi tiết gồm Focused Use Case, Activity Diagram, Sequence Diagram (phân tầng Boundary – Control – Entity) và Sơ đồ thực thể liên kết (ERD).
  4. Thiết lập các ràng buộc toàn vẹn dữ liệu nghiêm ngặt, ngăn ngừa xung đột dữ liệu và loại bỏ hoàn toàn các thao tác sai lệch trong môi trường đa người dùng.

Phạm vi và giới hạn

  • Phạm vi nghiên cứu: Tập trung phân tích chuyên sâu phân hệ Inventory (Quản lý kho), hệ thống định tuyến cung ứng (Routes/Push-Pull Rules), cơ chế kiểm soát tồn kho đa địa điểm và phân quyền người dùng (Admin/User).
  • Giới hạn kỹ thuật: Đồ án tập trung vào giai đoạn phân tích và thiết kế phần mềm phục vụ kiến trúc ERP quy mô vừa và lớn; chưa bao gồm tích hợp phần cứng máy quét mã vạch chuyên dụng hoặc tự động hóa kho hàng bằng robot (ASRS).

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Quản lý kho hiện đại đòi hỏi sự chính xác tuyệt đối theo thời gian thực (Real-time Inventory Tracking). Khi quy mô mở rộng, các doanh nghiệp thường đối mặt với sự phân mảnh giữa các bộ phận bán hàng, kế toán và vận hành kho.

Tiêu chí đánh giá Quản lý thủ công / Excel Phần mềm WMS đóng gói rời rạc Module Kho Odoo ERP
Tính toàn vẹn dữ liệu Rất thấp, dễ bị ghi đè/xóa nhầm Trung bình, đồng bộ qua API trung gian Rất cao, liên kết chặt chẽ trên cơ sở dữ liệu chung
Khả năng mở rộng đa kho Kém, file dữ liệu phình to gây treo máy Tốt nhưng chi phí license mở rộng rất cao Rất linh hoạt, hỗ trợ cấu hình đa địa điểm không giới hạn
Tự động hóa chuỗi cung ứng Không có, phụ thuộc 100% vào con người Có quy tắc cơ bản Đa dạng: Bổ sung tự động (Min-Max), Dropshipping, Cross-docking
Chi phí triển khai & sở hữu Thấp ban đầu nhưng chi phí lỗi vận hành cao Rất cao (Vendor lock-in) Tối ưu nhờ nền tảng mã nguồn mở linh hoạt

Phân tích yêu cầu người dùng (Mô hình MoSCoW)

  • Must Have (Bắt buộc có):
    • Đăng nhập, phân quyền người dùng (RBAC giữa Quản trị viên và Nhân viên kho).
    • Quản lý thông tin kho hàng, tạo mới và cấu hình địa chỉ lưu kho.
    • Tạo và xử lý phiếu điều chuyển hàng hóa (Stock Picking/Stock Transfer).
    • Kiểm kê kho và tự động tính toán chênh lệch tồn kho thực tế so với sổ sách.
    • Bổ sung hàng tự động theo ngưỡng tồn kho tối thiểu/tối đa.
  • Should Have (Nên có):
    • Quản lý đơn hàng phế liệu (Scrap Management) nhằm loại bỏ hàng hư hỏng ra khỏi tồn kho khả dụng.
    • Nhân bản cấu hình kho hàng nhanh chóng (nhanBanKho).
    • Cơ chế tách phiếu dở dang (TaoPhanDangDo) khi số lượng tồn không đáp ứng đủ nhu cầu giao.
  • Could Have (Có thể có):
    • Xuất báo cáo dữ liệu định dạng .csv.xlsx cho mọi bảng biểu.
    • Khóa tự động các chứng từ kho đã hoàn tất để bảo đảm an toàn dữ liệu kế toán.

Thiết kế hệ thống

Hệ thống được thiết kế theo kiến trúc 3 lớp hướng đối tượng với sự phân tách rõ ràng giữa giao diện (Boundary), bộ điều khiển nghiệp vụ (Control) và mô hình dữ liệu (Entity).

+-----------------------------------------------------------------------+
|                    SƠ ĐỒ THỰC THỂ LIÊN KẾT (ERD CORE)                 |
+-----------------------------------------------------------------------+
|  +---------------+       1:N       +-------------------------------+  |
|  |    KhoHang    | <-------------> |          ChiTietKho           |  |
|  +---------------+                 +-------------------------------+  |
|  | PK IDKhoHang  |                 | FK IDKhoHang                  |  |
|  |    tenKho     |                 | FK IDSanPham                  |  |
|  |    tenVietTat |                 |    SoLuongThucTe              |  |
|  | FK IDDiaChi   |                 |    SoLuongDuBao               |  |
|  +---------------+                 +-------------------------------+  |
|         |                                          ^                  |
|         | 1:N                                      | 1:N              |
|         v                                          |                  |
|  +---------------+                 +-------------------------------+  |
|  | TuyenCungUng  |                 |            SanPham            |  |
|  +---------------+                 +-------------------------------+  |
|  | PK IDTuyen    |                 | PK IDSanPham                  |  |
|  | FK IDKhoNguon |                 |    tenSanPham                 |  |
|  | FK IDKhoDich  |                 |    giaVon, giaBan             |  |
|  |    DSApDung   |                 |    loaiSanPham                |  |
|  +---------------+                 +-------------------------------+  |
|                                                    ^                  |
|         +------------------------------------------+                  |
|         | 1:N                        1:N                              |
|         v                             v                               |
|  +--------------------+      +--------------------+                   |
|  |    DonPheLieu      |      |    PhieuKiemKe     |                   |
|  +--------------------+      +--------------------+                   |
|  | PK IDDonPheLieu    |      | PK IDPhieuKiemKe   |                   |
|  | FK IDSanPham       |      | FK IDSanPham       |                   |
|  | FK IDKhoHang       |      | FK IDDiaChi        |                   |
|  |    SoLuong         |      |    SLDaDem         |                   |
|  |    TrangThai       |      |    SLThucTe        |                   |
|  +--------------------+      +--------------------+                   |
+-----------------------------------------------------------------------+

Technology Stack

  • Ngôn ngữ phát triển: Python 3.10+
  • Framework: Odoo Open Source Framework (v15/v16)
  • Cơ sở dữ liệu: PostgreSQL 14+ với cơ chế Transaction Isolation Level đạt chuẩn ACID.
  • Giao diện & Mô hình hóa: XML/QWeb Engine, Enterprise Architect / StarUML chuẩn UML 2.5.

Thiết kế Schema Cơ sở Dữ liệu (DDL trích xuất từ phân tích ERD)

-- Bảng quản lý thông tin kho hàng
CREATE TABLE kho_hang (
    id_kho_hang SERIAL PRIMARY KEY,
    ten_kho VARCHAR(255) NOT NULL,
    ten_viet_tat VARCHAR(50) UNIQUE NOT NULL,
    id_dia_chi INT NOT NULL,
    trang_thai_luu_tru BOOLEAN DEFAULT FALSE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

-- Bảng chi tiết tồn kho thực tế và dự báo
CREATE TABLE chi_tiet_kho (
    id_kho_hang INT REFERENCES kho_hang(id_kho_hang) ON DELETE RESTRICT,
    id_san_pham INT REFERENCES san_pham(id_san_pham) ON DELETE RESTRICT,
    so_luong_thuc_te NUMERIC(12, 2) DEFAULT 0.00 CHECK (so_luong_thuc_te >= 0),
    so_luong_du_bao NUMERIC(12, 2) DEFAULT 0.00,
    PRIMARY KEY (id_kho_hang, id_san_pham)
);

-- Bảng phiếu kiểm kê kho và đối soát tồn thực tế
CREATE TABLE phieu_kiem_ke (
    id_phieu_kiem_ke SERIAL PRIMARY KEY,
    id_san_pham INT REFERENCES san_pham(id_san_pham),
    id_dia_chi INT NOT NULL,
    sl_da_dem NUMERIC(12, 2) NOT NULL,
    sl_thuc_te NUMERIC(12, 2) NOT NULL,
    chenh_lech NUMERIC(12, 2) GENERATED ALWAYS AS (sl_da_dem - sl_thuc_te) STORED,
    trang_thai VARCHAR(30) DEFAULT 'draft',
    flag_kiem_tra INT DEFAULT 0
);

Phương pháp luận phát triển (Methodology)

Dự án áp dụng mô hình phát triển Thác nước (Waterfall Model) kết hợp cấu trúc phân rã công việc WBS (Work Breakdown Structure) chặt chẽ kéo dài từ Tuần 4 đến Tuần 10:

[Tuần 4 - 5] Khảo sát nghiệp vụ & Thu thập yêu cầu (SRS)
      │
      ▼
[Tuần 6 - 7] Phân tích Usecase & Mô hình hóa Activity/Sequence Diagrams
      │
      ▼
[Tuần 8] Thiết kế Cơ sở dữ liệu mức logic/vật lý (ERD & Data Dictionary)
      │
      ▼
[Tuần 9] Đánh giá ràng buộc nghiệp vụ (Validations & Constraint Checks)
      │
      ▼
[Tuần 10] Hoàn thiện báo cáo, thẩm định tính toàn vẹn hệ thống & Nghiệm thu

Quản lý rủi ro và giải pháp khắc phục

  • Rủi ro mâu thuẫn dữ liệu loại sản phẩm: Thay đổi loại sản phẩm (loaiSanPham) từ hàng lưu kho (storable) sang dịch vụ (service) khi đã phát sinh phiếu chuyển kho. Giải pháp: Hệ thống kích hoạt hàm ngoại lệ ExceptionHoatDongbySanPham(), chặn cập nhật và thông báo cảnh báo.
  • Rủi ro xóa kho đang hoạt động: Xóa kho có hàng tồn hoặc chứng từ đang mở. Giải pháp: Kiểm tra toàn vẹn ràng buộc qua kiemTraXoaKho(maKhoHang) trước khi cấp phép xóa trong cơ sở dữ liệu.

Implementation và kết quả

Quy trình nghiệp vụ và thuật toán kiểm tra logic

Hệ thống thiết lập các hàm kiểm soát nghiệp vụ nghiêm ngặt trong tầng Controller nhằm ngăn ngừa sai lệch dữ liệu. Dưới đây là hiện thực thuật toán cho các nghiệp vụ chính:

1. Thuật toán kiểm tra điều kiện xóa và lưu trữ kho hàng

Đảm bảo kho hàng chỉ được xóa hoặc lưu trữ khi không còn ràng buộc dữ liệu hoạt động.

class KhoHangController:
    def kiem_tra_xoa_kho(self, ma_kho_hang: int) -> bool:
        """
        Kiểm tra ràng buộc khóa ngoại và tồn kho trước khi xóa kho hàng.
        Exception Path: E1 (Khóa tham chiếu), E2 (Sản phẩm tồn), E3 (Phiếu chưa xử lý)
        """
        # 1. Kiểm tra sản phẩm tồn trong kho
        ton_kho = db.session.query(ChiTietKho).filter(
            ChiTietKho.id_kho_hang == ma_kho_hang,
            ChiTietKho.so_luong_thuc_te > 0
        ).first()
        if ton_kho:
            raise BusinessLogicError("Lỗi: Kho vẫn còn hàng tồn thực tế, không thể xóa.")

        # 2. Kiểm tra các phiếu kho dở dang đang xử lý
        phieu_cho = db.session.query(PhieuXuLy).filter(
            PhieuXuLy.id_kho_hang == ma_kho_hang,
            PhieuXuLy.trang_thai.in_(['draft', 'waiting', 'confirmed'])
        ).count()
        if phieu_cho > 0:
            raise BusinessLogicError(f"Lỗi: Còn {phieu_cho} phiếu kho chưa hoàn tất xử lý.")

        return True

    def kiem_tra_nhan_ban(self, ten_viet_tat: str) -> bool:
        """Kiểm tra tính duy nhất của mã viết tắt khi nhân bản cấu hình kho."""
        ton_tai = db.session.query(KhoHang).filter(KhoHang.ten_viet_tat == ten_viet_tat).first()
        if ton_tai:
            raise DuplicateKeyError(f"Tên viết tắt '{ten_viet_tat}' đã tồn tại trong hệ thống.")
        return True

2. Thuật toán xử lý điều chuyển và tạo đơn dở dang (Backorder)

Xử lý trường hợp xuất kho khi số lượng tồn khả dụng nhỏ hơn nhu cầu yêu cầu.

class DieuChuyenController:
    def xu_ly_dieu_chuyen(self, id_phieu: int, sl_nhu_cau: float, sl_thuc_xuat: float):
        """
        Xử lý hoàn thành phiếu chuyển kho và tự động tách phần dở dang (Backorder)
        """
        if sl_thuc_xuat < sl_nhu_cau:
            # Tính toán lượng thiếu hụt
            sl_con_lai = sl_nhu_cau - sl_thuc_xuat
            
            # Cập nhật số lượng hoàn thành cho phiếu hiện tại
            phieu_hien_tai = db.session.query(PhieuDieuChuyen).get(id_phieu)
            phieu_hien_tai.so_luong_hoan_thanh = sl_thuc_xuat
            phieu_hien_tai.trang_thai = 'done'
            
            # Tự động tạo phiếu điều chuyển mới cho phần dở dang
            phieu_dang_do = PhieuDieuChuyen(
                tai_lieu_goc=f"Backorder of {phieu_hien_tai.ma_phieu}",
                id_san_pham=phieu_hien_tai.id_san_pham,
                so_luong_nhu_cau=sl_con_lai,
                trang_thai='confirmed',
                id_kho_nguon=phieu_hien_tai.id_kho_nguon,
                id_kho_dich=phieu_hien_tai.id_kho_dich
            )
            db.session.add(phieu_dang_do)
            db.session.commit()
            return {"status": "BACKORDER_CREATED", "new_picking_id": phieu_dang_do.id}
        else:
            # Hoàn tất toàn bộ
            self.set_trang_thai(id_phieu, 'done')
            return {"status": "COMPLETED"}

Kiểm thử và đánh giá độ bao phủ

Hệ thống được kiểm thử dựa trên các kịch bản kiểm thử biên (Boundary Value Analysis) và kiểm thử nhánh ngoại lệ (Exception Paths E1 - E5):

+-----------------------------------------------------------------------------+
|                     MA TRẬN ĐỘ BAO PHỦ KIỂM THỬ NGOẠI LỆ                     |
+-----------------------------------------------------------------------------+
|                                                                             |
|  [Đăng nhập / Đăng ký]                                                      |
|   ├── E1: Bỏ trống text field ──────────────────> PASS (Validation Form)    |
|   └── E2: Trùng lặp Email trong DB ─────────────> PASS (Chặn POST Request)  |
|                                                                             |
|  [Quản lý Kho & Phế liệu]                                                   |
|   ├── E1: Xóa kho đang có khóa tham chiếu ──────> PASS (Chặn ON DELETE)     |
|   ├── E2: Nhập số lượng phế liệu âm (< 0) ──────> PASS (Báo lỗi Input)      |
|   └── E3: Xóa đơn phế liệu đã 'Hoàn thành' ─────> PASS (Khóa trạng thái)    |
|                                                                             |
|  [Điều chuyển & Bổ sung]                                                    |
|   ├── E1: Kiểu hoạt động không tồn tại ─────────> PASS (Fallback GUI)       |
|   ├── E2: Tồn kho không đủ nhu cầu ─────────────> PASS (Tách Backorder)     |
|   └── E3: Thay đổi loại SP khi có giao dịch ────> PASS (Exception Catched)  |
+-----------------------------------------------------------------------------+
  • Kết quả thực nghiệm:
    • 100% các trường hợp nhập liệu không hợp lệ (số lượng âm, chuỗi rỗng) bị chặn tại tầng View/Controller.
    • Toàn bộ 10 ca sử dụng trọng yếu đạt tính nhất quán dữ liệu ở mức tối đa, không để xảy ra tình trạng Deadlock hoặc dữ liệu rác (Orphan Records).

Đổi mới và đóng góp

  1. Chuẩn hóa kiến trúc phân tích hướng đối tượng cho ERP mã nguồn mở: Đồ án chuyển ngữ thành công mô hình nghiệp vụ phức tạp của Odoo Inventory thành hệ thống biểu đồ UML 2.5 chuẩn mực, giúp các kỹ sư phần mềm dễ dàng nắm bắt cách tổ chức module lớn.
  2. Cơ chế tách phiếu dở dang (Backorder Management): Xử lý linh hoạt bài toán thiếu hàng tức thời mà không làm gián đoạn toàn bộ đơn hàng giao nhận của chuỗi cung ứng.
  3. Cơ chế kiểm soát xung đột thay đổi danh mục sản phẩm: Ngăn ngừa triệt để lỗi logic hạch toán kho bằng thuật toán đối soát giao dịch phát sinh trước khi thay đổi thuộc tính Product Type.
+-----------------------------------------------------------------------------+
|             SO SÁNH CÁC GIẢI PHÁP QUẢN TRỊ KHO VẬN HIỆN NAY                 |
+-----------------------------------------------------------------------------+
|                                                                             |
|  Tính năng / Giải pháp   │  KiotViet / Sapo  │   SAP WM / EWM   │ Module Odoo|
|  ────────────────────────┼───────────────────┼──────────────────┼────────────|
|  Kiến trúc đa kho phức hợp│ Giới hạn chi nhánh│ Rất mạnh         │ Rất mạnh   |
|  Định tuyến Rules linh hoạt│ Cố định 1 bước   │ Tùy biến cao     │ 1, 2, 3 bcs|
|  Tách đơn dở dang        │ Thủ công          │ Tự động          │ Tự động    |
|  Khả năng mở rộng mã nguồn│ Đóng hoàn toàn   │ Phức tạp (ABAP)  │ Mở (Python)|
|  Chi phí bản quyền/năm   │ Thấp              │ Rất đắt ($$$$)   │ 0đ (CE)    |
+-----------------------------------------------------------------------------+

Ứng dụng thực tế và triển khai

Trường hợp ứng dụng thực tế

  • Doanh nghiệp bán lẻ & Thương mại điện tử chuỗi: Quản lý mạng lưới 10-50 kho phân phối vệ tinh, tự động điều chuyển hàng hóa giữa kho trung tâm và điểm bán lẻ dựa trên quy tắc Min-Max.
  • Doanh nghiệp gia công sản xuất: Kiểm soát chi tiết tỷ lệ hao hụt phế liệu (Scrap Orders) trong từng công đoạn lắp ráp, bảo đảm hạch toán giá vốn chính xác.

Kiến trúc triển khai hạ tầng khuyến nghị

                        [ Nginx Reverse Proxy / SSL ]
                                      │
                                      ▼
                        [ Gunicorn WSGI Workers ]
                                      │
                                      ▼
                      [ Odoo Application Service ]
                                      │
                 +────────────────────┴────────────────────+
                 ▼                                         ▼
     [ PostgreSQL Database ]                     [ Filestore Storage ]
     - Master DB (Read/Write)                    - Chứng từ kho (PDF/Images)
     - Hot Standby Replica                       - Tệp đính kèm phiếu nhập
  • Yêu cầu hạ tầng tối thiểu:
    • CPU: 4 Cores (hỗ trợ tối thiểu 50 người dùng đồng thời).
    • RAM: 8 GB ECC RAM (khuyến nghị 16 GB nếu có đồng bộ API đơn hàng liên tục).
    • Storage: 100 GB SSD NVMe (tốc độ đọc/ghi cao phục vụ truy vấn tồn kho tức thời).
    • Hệ điều hành: Ubuntu Server 20.04 / 22.04 LTS.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Đồ án triển khai theo mô hình Thác nước truyền thống, dẫn đến việc khó thay đổi tức thì các yêu cầu nghiệp vụ phát sinh giữa chừng.
  • Các biểu đồ tương tác chưa mô hình hóa giao thức quét mã Barcode/RFID qua WebSocket theo thời gian thực.

Hướng phát triển mở rộng

  1. Tích hợp thuật toán học máy (Machine Learning): Dự báo nhu cầu bổ sung hàng tự động (Demand Forecasting) dựa trên chuỗi thời gian (Time-series Analysis) thay cho quy tắc Min-Max tĩnh.
  2. Xây dựng hệ thống Open API (RESTful / GraphQL): Đồng bộ hai chiều với các sàn thương mại điện tử (Shopee, Lazada, TikTok Shop) và các đơn vị vận chuyển (GHN, GHTK, Viettel Post).
  3. Ứng dụng Mobile App cho nhân viên kho: Phát triển ứng dụng Flutter/React Native kết nối trực tiếp với camera điện thoại để thực hiện kiểm kê kho bằng mã QR Code nhanh chóng.

Đối tượng hưởng lợi

+-----------------------------------------------------------------------------+
|                      GIÁ TRỊ MANG LẠI CHO CÁC ĐỐI TƯỢNG                     |
+-----------------------------------------------------------------------------+
|                                                                             |
|  [ SINH VIÊN & GIẢNG VIÊN ]                                                 |
|   └── Tài liệu mẫu chuẩn mực về phân tích thiết kế hệ thống ERP lớn.         |
|   └── Hiểu sâu phương pháp luận mô hình hóa UML 3 tầng (BCE).                |
|                                                                             |
|  [ KỸ SƯ PHẦN MỀM ]                                                         |
|   └── Nắm vững kiến trúc dữ liệu và logic nghiệp vụ kho chuyên sâu.         |
|   └── Tham khảo mẫu thiết kế ràng buộc dữ liệu toàn vẹn trong PostgreSQL.   |
|                                                                             |
|  [ DOANH NGHIỆP VẬN HÀNH ]                                                  |
|   └── Tiết kiệm 30-40% thời gian khảo sát khi triển khai phân hệ kho Odoo.  |
|   └── Giảm 90% lỗi nghiệp vụ sai lệch tồn kho nhờ chuẩn hóa quy trình.      |
+-----------------------------------------------------------------------------+

Câu hỏi thường gặp

1. Yêu cầu kỹ thuật cốt lõi để triển khai hệ thống quản lý kho Odoo là gì?

Hệ thống yêu cầu máy chủ chạy hệ điều hành Linux (Ubuntu/Debian), cài đặt môi trường Python 3.10+, PostgreSQL 14+, cùng Web Server Nginx đóng vai trò Reverse Proxy. Về phía người dùng cuối, hệ thống chỉ yêu cầu trình duyệt web tiêu chuẩn (Chrome, Firefox, Edge) mà không cần cài đặt phần mềm phụ trợ.

2. Cơ chế tách phần dở dang (Backorder) hoạt động ra sao khi kho thiếu hàng?

Khi số lượng thực tế trong kho không đủ để đáp ứng toàn bộ nhu cầu của phiếu điều chuyển, hệ thống sẽ chốt số lượng thực xuất cho phiếu hiện tại và tự động khởi tạo một phiếu điều chuyển phụ thuộc mới (Backorder) với số lượng bằng đúng phần chênh lệch còn thiếu, giữ nguyên các thông tin nguồn/đích ban đầu.

3. Làm thế nào để tích hợp hệ thống quản lý kho này với phần mềm kế toán hoặc bán hàng?

Nhờ kiến trúc module đồng nhất của Odoo, dữ liệu từ phân hệ Quản lý Kho được liên kết trực tiếp với phân hệ Bán hàng (Sales) và Kế toán (Invoicing/Accounting) thông qua các Model ORM chung mà không cần viết các tác vụ middleware đồng bộ trung gian.

4. Chi phí bảo trì và mở rộng hệ thống quản lý kho Odoo có tốn kém không?

Với phiên bản Odoo Community Edition (Mã nguồn mở), doanh nghiệp không phải trả chi phí license định kỳ. Chi phí chủ yếu tập trung vào hạ tầng máy chủ Cloud (VPS/Dedicated Server) và đội ngũ kỹ thuật vận hành nội bộ, giúp tiết kiệm từ 60% đến 80% so với các giải pháp phần mềm độc quyền như SAP hay Oracle WMS.

5. Cơ chế phân quyền (RBAC) giữa Quản trị kho và Nhân viên được kiểm soát như thế nào?

Hệ thống phân tầng bảo mật chặt chẽ: Nhân viên kho chỉ có quyền tạo và cập nhật trạng thái phiếu kho được phân công; chỉ Quản trị viên (Admin) mới có quyền tạo kho mới, xóa kho, thay đổi cấu hình tuyến cung ứng, nhân bản kho hoặc phê duyệt các điều chỉnh sai lệch số lượng sau kiểm kê.


Kết luận

Đồ án môn học "Phân Tích và Thiết Kế Hệ Thống Quản Lý Kho Vận Odoo" của sinh viên Khoa Công nghệ Thông tin – Trường Đại học Sài Gòn đã hoàn thành xuất sắc các mục tiêu đề ra trong việc chuẩn hóa quy trình kỹ thuật phần mềm. Thông qua việc phân tích chuyên sâu 10 ca sử dụng cốt lõi, xây dựng hệ thống biểu đồ UML chi tiết và thiết kế cơ sở dữ liệu quan hệ chặt chẽ, đồ án đã mang đến một giải pháp công nghệ toàn diện cho bài toán số hóa kho vận doanh nghiệp.

Kết quả của đề tài không chỉ là tài liệu tham khảo học thuật giá trị cao cho sinh viên ngành Công nghệ thông tin và Hệ thống thông tin quản lý, mà còn là bản thiết kế kiến trúc hoàn chỉnh để các doanh nghiệp vừa và lớn tự tin triển khai, tùy biến hệ thống ERP thực tế, hướng tới tối ưu hóa hiệu suất chuỗi cung ứng trong thời đại số.