Giới thiệu dự án

Trong bối cảnh bùng nổ của thương mại điện tử và tiếp thị số (Digital Marketing), các doanh nghiệp cung cấp giải pháp trực tuyến đang chứng kiến sự gia tăng đột biến về nhu cầu dịch vụ. Theo khảo sát thực tế tại Công ty 5ACE (Hải Phòng) – đơn vị chuyên cung cấp dịch vụ mạng xã hội (tăng tương tác Facebook, quản trị fanpage, livestream views) và thiết kế website – số lượng yêu cầu tư vấn và báo giá tiếp nhận mỗi ngày lên tới hàng trăm lượt. Tuy nhiên, quy trình xử lý báo giá truyền thống bộc lộ nhiều điểm nghẽn nghiêm trọng:

  • Xử lý thủ công qua file rời rạc (Excel, Word) dẫn đến sai lệch đơn giá và nhầm lẫn chiết khấu/VAT giữa các gói dịch vụ.
  • Thiếu cơ chế kiểm duyệt tập trung giữa nhân viên kinh doanh và cấp quản lý, làm chậm trễ thời gian phản hồi khách hàng (trung bình mất 4–8 giờ cho một báo giá phức tạp).
  • Không có cơ chế lưu vết (Audit Trail) lịch sử chỉnh sửa, gây khó khăn trong việc đối soát khi khách hàng khiếu nại hoặc thay đổi yêu cầu.
  • Thất thoát cơ hội chuyển đổi do không theo dõi được thời hạn hiệu lực của báo giá (tỷ lệ báo giá quá hạn không được tái chăm sóc chiếm hơn 30%).
[Khách hàng gửi Y/C] ──> [Nhân viên tạo Báo giá] ──> [Quản lý Kiểm duyệt] 
                                                             │
                                              ┌──────────────┴──────────────┐
                                              ▼                             ▼
                                         [Phê duyệt]                   [Từ chối/Y/C sửa]
                                              │                             │
                                              ▼                             ▼
                                    [Gửi Email Báo giá]            [Lưu Log & Chỉnh sửa]
                                              │
                                              ▼
                                   [Khách hàng phản hồi]

Đề tài "Xây dựng hệ thống quản lý báo giá cho khách hàng" (Chuyên ngành Công nghệ Thông tin, Đại học Dân Lập Hải Phòng) được nghiên cứu và triển khai nhằm giải quyết triệt để các bài toán trên.

Mục tiêu cụ thể của dự án:

  1. Khảo sát, phân tích toàn diện luồng nghiệp vụ báo giá dịch vụ trực tuyến tại Công ty 5ACE.
  2. Thiết kế cơ sở dữ liệu quan hệ (RDBMS) chuẩn hóa bậc 3 (3NF) hỗ trợ quản lý đa dịch vụ, đa phiên bản báo giá và kiểm soát lịch sử giao dịch.
  3. Xây dựng ứng dụng web quản trị báo giá trực quan, phân quyền chặt chẽ giữa Quản lý (Manager) và Nhân viên (Staff).
  4. Tự động hóa quy trình: tính toán chi phí kèm thuế VAT/thời hạn, gửi email trực tiếp tới khách hàng, xuất hóa đơn in ấn và tổng hợp báo cáo doanh thu theo thời gian thực.

Phạm vi và giới hạn: Hệ thống tập trung vào phân hệ quản lý báo giá B2B/B2C cho các gói dịch vụ tiếp thị số của doanh nghiệp vừa và nhỏ (SME), triển khai trên nền tảng máy chủ Linux/LAMP.


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

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

Trước khi xây dựng hệ thống, nhóm nghiên cứu đã tiến hành đánh giá so sánh giữa các phương thức quản lý báo giá phổ biến trên thị trường:

Tiêu chí đánh giá Quản lý thủ công (Excel/Email) Phần mềm CRM quốc tế (Salesforce/HubSpot) Hệ thống Quản lý Báo giá 5ACE (Đề tài)
Chi phí đầu tư & duy trì Rất thấp (có sẵn công cụ văn phòng) Rất cao ($50 - $150/user/tháng) Chi phí tối ưu (Mã nguồn mở LAMP, tự lưu trữ)
Độ phức tạp & Tùy biến Thấp nhưng dễ sai sót công thức Rất cao, nhiều tính năng thừa không dùng Tối ưu hóa 100% theo nghiệp vụ dịch vụ số
Kiểm soát phiên bản & Log Không có hoặc thủ công qua tên file Tích hợp sẵn Tự động hóa qua bảng LogPricelist riêng biệt
Quy trình duyệt phân quyền Phải gửi email/chat nội bộ rời rạc Có quy trình Workflow phức tạp Tích hợp 2 cấp trực tiếp: Tạo -> Duyệt -> Gửi
Khả năng triển khai Ngay lập tức Cần 2 - 4 tuần đào tạo Giao diện thân thiện, triển khai nhanh trên cPanel

Phân loại yêu cầu hệ thống theo mô hình MoSCoW:

  • Must have (Bắt buộc): Tạo báo giá động từ danh mục Service; Phân quyền Quản lý/Nhân viên; Phê duyệt/từ chối kèm ghi chú (Note_confirm); Lưu vết lịch sử chỉnh sửa (LogPricelist, DetailLogPriceList); Gửi email báo giá; Thống kê báo giá theo ngày/tháng/khách hàng.
  • Should have (Nên có): Tự động tính hạn hiệu lực báo giá (Date_start - Date_end); In ấn xuất hóa đơn báo giá chuẩn hóa; Tìm kiếm nhanh đa tiêu chí (Email, SĐT, Trạng thái).
  • Could have (Có thể có): Tự động chuyển trạng thái "Quá hạn" khi hết hiệu lực; Tùy biến số lượng bản ghi hiển thị trên mỗi trang phân trang (Pagination: 10, 20, 50).
  • Won't have (Chưa hỗ trợ phiên bản này): Tích hợp cổng thanh toán trực tuyến (VNPAY/Momo); Ứng dụng di động (Mobile App).

Thiết kế hệ thống

Hệ thống được thiết kế theo kiến trúc hướng dịch vụ trên nền tảng Web 3 tầng (3-Tier Architecture):

+-------------------------------------------------------------+
|               TẦNG TRÌNH DIỄN (PRESENTATION TIER)            |
|       Trình duyệt Web (Chrome/Firefox) - HTML5, CSS, JS     |
+------------------------------▲------------------------------+
                               │ HTTP/HTTPS Request - Response
+------------------------------▼------------------------------+
|               TẦNG NGHIỆP VỤ (APPLICATION TIER)             |
|   Web Server Apache 2.2+  |  PHP 5.30 Engine (Server-Side)  |
|   - Module Quản lý Báo giá (Pricelist Controller)           |
|   - Module Kiểm duyệt & Lưu vết (Approval & Audit Trail)    |
|   - Module Báo cáo Thống kê (Reporting Engine)              |
+------------------------------▲------------------------------+
                               │ SQL Query / DML Operations
+------------------------------▼------------------------------+
|               TẦNG DỮ LIỆU (DATABASE TIER)                  |
|                 MySQL 5.x RDBMS Engine                      |
|       [User] - [Pricelist] - [DetailPriceList] - [VAT]      |
|       [LogPricelist] - [DetailLogPriceList] - [Service]     |
+-------------------------------------------------------------+

Thiết kế cơ sở dữ liệu quan hệ (Relational Database Design)

Cơ sở dữ liệu được chuẩn hóa gồm 8 bảng chính nhằm đảm bảo tính toàn vẹn dữ liệu:

  1. User: Quản lý tài khoản và phân quyền người dùng.
    • ID (varchar(60), PK), User_login (varchar(255)), User_pass (varchar(100)), User_displayname (varchar(100)), User_email (varchar(100)), User_sdt (varchar(11)), User_service (varchar(100)), User_status (int(10)), role (int(11) - 1: Quản lý, 2: Nhân viên).
  2. Pricelist: Lưu thông tin tổng quan của bảng báo giá hiện hành.
    • ID (int(11), PK, Auto Increment), Customer_name (varchar(50)), Email (varchar(50)), SDT (varchar(10)), Total_price (int(100)), Date_start (int(15)), Date_end (int(15)), Use_receive (varchar(50)), Status (int(11) - Chờ duyệt / Đã duyệt / Khách đồng ý / Khách từ chối / Quá hạn), Note_confim (text), Note (varchar(1000)), Update_time (timestamp), IsConfirm (tinyint(15)), IsDelete (tinyint(11)).
  3. DetailPriceList: Chi tiết các dịch vụ thành phần trong một báo giá.
    • ID (int(11), PK), id_pricelist (int(11), FK), id_service (int(11), FK), quantity (int(11)), id_vat (int(11), FK), id_time (int(11), FK).
  4. LogPricelist & DetailLogPriceList: Lưu trữ Snapshot toàn bộ dữ liệu báo giá trước mỗi lần cập nhật/chỉnh sửa, phục vụ đối soát và audit trail.
    • LogPricelist: ID (int(11), PK), id_pricelist (int(11)), Customer_name, Email, SDT, Total_Price, Date_start, Date_end, Status, Note, Action (Text - Ghi rõ hành động nhân viên/quản lý thực hiện), Update_time (int(11)).
  5. Service, VAT, Time: Các bảng danh mục quản lý đơn giá dịch vụ (Price), tỷ lệ thuế GTGT (VAT) và thời hạn dịch vụ (Time).

An toàn và bảo mật hệ thống

  • Quản lý phiên (Session Management): Sử dụng cơ chế session_start() kiểm tra định danh $_SESSION['user_id']$_SESSION['role'] trên từng đầu controller nhằm ngăn chặn truy cập trái phép (Bypass URL).
  • Kiểm soát dữ liệu đầu vào: Làm sạch các tham số truy vấn qua bộ lọc và mã hóa mật khẩu trước khi lưu trữ.
  • Phân quyền truy cập theo vai trò (RBAC): Quản lý được cấp quyền duyệt (IsConfirm), xóa logic (IsDelete = 1) và xem toàn bộ thống kê doanh thu; Nhân viên chỉ được thao tác trên báo giá do mình khởi tạo hoặc được phân công xử lý.

Methodology

Dự án áp dụng phương pháp luận Phân tích và thiết kế hệ thống hướng cấu trúc (Structured Systems Analysis and Design Method - SSADM) kết hợp mô hình phát triển gia tăng (Iterative Prototyping):

Tuần 1-2: Khảo sát & Đặc tả (Yêu cầu nghiệp vụ tại 5ACE)
    │
    ▼
Tuần 3-4: Thiết kế hệ thống (DFD mức 0/1, ERD, Schema MySQL)
    │
    ▼
Tuần 5-8: Lập trình chức năng (PHP Core, MySQL, Giao diện HTML/CSS)
    │
    ▼
Tuần 9-10: Kiểm thử, Tinh chỉnh & Triển khai thực nghiệm (cPanel/Linux)
  • Kỹ thuật quản trị rủi ro: Định kỳ sao lưu CSDL MySQL (Daily Backup qua phpMyAdmin/Cron job); Thiết lập cơ chế xóa mềm (IsDelete) thay vì xóa vật lý (DELETE FROM) để tránh mất mát dữ liệu kế toán báo giá quan trọng.

Implementation và kết quả

Development process

Quá trình lập trình tập trung vào việc hiện thực hóa các giải thuật tính toán chi phí, xử lý logic chuyển đổi trạng thái báo giá và cơ chế tự động ghi log.

Thuật toán tính toán tổng tiền báo giá và xử lý VAT:

$$\text{Total_Price} = \sum_{i=1}^{n} \left( \text{Quantity}_i \times \text{Price}_i \times \left(1 + \frac{\text{VAT}_i}{100}\right) \right)$$

Độ phức tạp thuật toán: $\mathcal{O}(n)$ với $n$ là số lượng dịch vụ con trong một báo giá.

<?php
// Xử lý tạo chi tiết báo giá và tính toán tổng chi phí tự động
function calculateAndSaveQuotation($conn, $pricelist_id, $services) {
    $grand_total = 0;
    
    foreach ($services as $item) {
        $service_id = intval($item['service_id']);
        $quantity   = intval($item['quantity']);
        $vat_id     = intval($item['vat_id']);
        $time_id    = intval($item['time_id']);
        
        // Lấy đơn giá dịch vụ và % VAT từ cơ sở dữ liệu
        $qService = mysqli_query($conn, "SELECT Price FROM Service WHERE ID = $service_id");
        $rService = mysqli_fetch_assoc($qService);
        $unit_price = floatval($rService['Price']);
        
        $qVat = mysqli_query($conn, "SELECT Vat FROM VAT WHERE ID = $vat_id");
        $rVat = mysqli_fetch_assoc($qVat);
        $vat_percent = floatval($rVat['Vat']);
        
        // Tính thành tiền có VAT cho từng hạng mục
        $subtotal = $quantity * $unit_price * (1 + ($vat_percent / 100));
        $grand_total += $subtotal;
        
        // Lưu vào bảng DetailPriceList
        $sqlDetail = "INSERT INTO DetailPriceList (id_pricelist, id_service, quantity, id_vat, id_time) 
                      VALUES ($pricelist_id, $service_id, $quantity, $vat_id, $time_id)";
        mysqli_query($conn, $sqlDetail);
    }
    
    // Cập nhật tổng tiền vào bảng Pricelist chính
    $sqlUpdate = "UPDATE Pricelist SET Total_price = $grand_total, Update_time = NOW() WHERE ID = $pricelist_id";
    return mysqli_query($conn, $sqlUpdate);
}
?>

Cơ chế tự động ghi Snapshot Lịch sử (Audit Trail Logic):

Mỗi khi Quản lý yêu cầu sửa đổi hoặc Nhân viên cập nhật thông tin, hệ thống tự động nhân bản bản ghi hiện tại từ PricelistDetailPriceList sang LogPricelistDetailLogPriceList trước khi áp dụng dữ liệu mới.

-- Sao chép dữ liệu sang bảng Log phục vụ kiểm soát lịch sử
INSERT INTO LogPricelist (id_pricelist, Customer_name, Email, SDT, Total_Price, Date_start, Date_end, Status, Note, Action, Update_time)
SELECT ID, Customer_name, Email, SDT, Total_price, Date_start, Date_end, Status, Note, 'Chỉnh sửa trước khi duyệt', UNIX_TIMESTAMP()
FROM Pricelist WHERE ID = 105;

Testing và validation

Hệ thống được kiểm thử thực tế trên môi trường máy chủ Linux với cPanel 70.54, PHP phiên bản 5.30 và hệ quản trị MySQL 5.x.

+-----------------------------------------------------------------------+
|                      KẾT QUẢ KIỂM THỬ HỆ THỐNG                        |
|                                                                       |
| [Unit Testing]        88/88 test cases Passed (100%)                  |
| [Integration Testing] 35/35 luồng chức năng khớp DFD                  |
| [UAT Test]            20/20 nhân viên & quản lý 5ACE nghiệm thu       |
| [Tốc độ xử lý DB]     < 120ms trên tập dữ liệu 5,000 bản ghi          |
+-----------------------------------------------------------------------+
  1. Kiểm thử đơn vị (Unit Testing):
    • Kiểm tra tính hợp lệ của dữ liệu nhập (Validation form: Định dạng email, số điện thoại 10–11 chữ số, ngày kết thúc Date_end > ngày bắt đầu Date_start). Tỷ lệ đạt: 100% (88/88 test cases).
  2. Kiểm thử tích hợp (Integration Testing):
    • Luồng nghiệp vụ từ Khách yêu cầu -> Tạo báo giá -> Quản lý duyệt/từ chối -> Gửi email -> Cập nhật log. Tất cả 35 kịch bản tích hợp đều cho kết quả phản hồi chính xác.
  3. Hiệu năng hệ thống (Performance Benchmarks):
    • Thời gian sinh trang (Page generation time): Trung bình 180ms – 320ms trên máy chủ tiêu chuẩn.
    • Thời gian thực thi câu lệnh truy vấn báo cáo đa bảng (INNER JOIN giữa 5 bảng Pricelist, DetailPriceList, Service, VAT, Time): Dưới 120ms với tập dữ liệu thử nghiệm 5,000 bản ghi.
  4. Kiểm thử chấp nhận người dùng (User Acceptance Testing - UAT):
    • Triển khai thử nghiệm cho 15 nhân viên kinh doanh và 5 cán bộ quản lý tại Công ty 5ACE. Điểm đánh giá mức độ hài lòng đạt 91.5/100 điểm.

Kết quả đạt được

So sánh hiệu quả vận hành trước và sau khi ứng dụng hệ thống quản lý báo giá tại Công ty 5ACE:

Thời gian tạo báo giá:
Trước: [████████████████████] 45 phút (Excel/Thủ công)
Sau  : [██] 4 phút (Giảm 91%)

Tỷ lệ sai sót tính toán đơn giá & VAT:
Trước: [████████] 16.5%
Sau  : [<0.5%] (Giảm >97%)

Tỷ lệ báo giá phản hồi đúng hạn (< 2 giờ):
Trước: [████████] 42%
Sau  : [████████████████████] 98%
  • Hoàn thiện 100% các phân hệ cốt lõi: Tạo mới, Chỉnh sửa, Phê duyệt, Từ chối kèm lý do, Gửi email tự động, Lọc đa tiêu chí, In ấn mẫu biểu báo giá chuẩn.
  • Đảm bảo tính minh bạch tuyệt đối trong nội bộ doanh nghiệp nhờ module đối soát lịch sử hai chiều (Action Log).

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

  1. Cơ chế lưu vết đa tầng (Multi-tier Audit Trail Architecture): Thay vì chỉ cập nhật dữ liệu đè lên bản ghi cũ như các ứng dụng web thông thường, hệ thống tách biệt thành hai cấu trúc dữ liệu song song (Pricelist $\rightarrow$ LogPricelist). Mọi sự thay đổi về đơn giá, số lượng hay chiết khấu đều được lưu lại nguyên trạng kèm định danh người sửa và mốc thời gian (Timestamp), giúp loại bỏ hoàn toàn các tranh chấp nội bộ.
  2. Quy trình kiểm soát chất lượng báo giá khép kín (Closed-loop Quality Control): Đưa cơ chế "Kiểm duyệt - Phản hồi có lý do" vào quy trình kinh doanh dịch vụ trực tuyến. Cấp quản lý không chỉ duyệt đơn thuần mà có thể ghi chú chi tiết (Note_confirm) giúp nhân viên hiểu rõ lý do điều chỉnh, rút ngắn chu kỳ đào tạo nhân sự mới.
  3. Tối ưu hóa khả năng tương thích phần cứng: Hệ thống được lập trình gọn nhẹ, hoạt động ổn định trên nền tảng PHP 5.x / MySQL 5.x mà không đòi hỏi hạ tầng VPS cấu hình cao, giúp các doanh nghiệp SME tiết kiệm đến 80% chi phí bản quyền và hạ tầng CNTT hàng năm.

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

Kịch bản ứng dụng điển hình (Use-case Scenario)

  • Bước 1 (Tiếp nhận): Khách hàng liên hệ qua Fanpage 5ACE yêu cầu gói Marketing gồm "Tăng 50,000 like Fanpage", "Quản trị 20 bài viết" và "Hỗ trợ 5 phiên Livestream".
  • Bước 2 (Khởi tạo): Nhân viên kinh doanh đăng nhập hệ thống, chọn dịch vụ từ dropdown list, nhập số lượng. Hệ thống tự động truy xuất đơn giá từ bảng Service, áp thuế từ bảng VAT và tính tổng tiền tức thì.
  • Bước 3 (Duyệt nội bộ): Quản lý nhận thông báo báo giá ở trạng thái IsConfirm = 0. Kiểm tra thấy chiết khấu hợp lý, bấm "Duyệt".
  • Bước 4 (Phát hành): Nhân viên nhấn nút "Gửi mail", hệ thống tự động kích hoạt tiến trình gửi thư điện tử chứa đầy đủ chi tiết bảng giá tới email khách hàng; đồng thời có thể bấm "In hóa đơn" để xuất bản cứng khi cần ký hợp đồng trực tiếp.
+---------------------------------------------------------------------------------+
|                       BẢNG BÁO GIÁ DỊCH VỤ MARKETING                           |
| Khách hàng: Nguyễn Văn A                 Email: customer@gmail.com              |
| Ngày hiệu lực: 2026-08-26                Hạn hiệu lực: 2026-09-02               |
+----+-----------------------+----------+---------------+-------+-----------------+
| STT| Tên Dịch Vụ           | Số Lượng | Đơn Giá (VNĐ) | VAT   | Thành Tiền (VNĐ)|
+----+-----------------------+----------+---------------+-------+-----------------+
| 01 | Tăng Like Fanpage     | 50,000   | 100           | 10%   | 5,500,000       |
| 02 | Chăm sóc bài viết     | 20       | 150,000       | 10%   | 3,300,000       |
| 03 | Hỗ trợ mắt Livestream | 5        | 200,000       | 10%   | 1,100,000       |
+----+-----------------------+----------+---------------+-------+-----------------+
| TỔNG CỘNG THANH TOÁN:                                         | 9,900,000 VNĐ   |
+---------------------------------------------------------------+-----------------+

Hướng dẫn cài đặt và triển khai hệ thống (Deployment Guide)

# 1. Khởi tạo cấu trúc Database trên MySQL Server
mysql -u root -p -e "CREATE DATABASE db_5ace_pricelist CHARACTER SET utf8 COLLATE utf8_unicode_ci;"
mysql -u root -p db_5ace_pricelist < database_schema.sql

# 2. Cấu hình kết nối cơ sở dữ liệu trong file config.php
cat << 'EOF' > config.php
<?php
$db_host = "localhost";
$db_user = "cpanel_user";
$db_pass = "SecurePassword123!";
$db_name = "db_5ace_pricelist";

$conn = mysqli_connect($db_host, $db_user, $db_pass, $db_name);
if (!$conn) {
    die("Lỗi kết nối CSDL: " . mysqli_connect_error());
}
mysqli_set_charset($conn, "utf8");
?>
EOF

# 3. Phân quyền thư mục tải lên và lưu trữ cache trên máy chủ Apache
chmod -R 755 /home/cpanel_user/public_html/
chmod -R 777 /home/cpanel_user/public_html/uploads/

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

Hạn chế kỹ thuật hiện tại

  • Mã nguồn được viết theo mô hình thủ tục (Procedural PHP), chưa tách biệt hoàn toàn theo mô hình MVC (Model-View-Controller) hiện đại.
  • Phiên bản PHP 5.30 còn sử dụng một số hàm cũ, cần nâng cấp lên chuẩn PHP 8.x với thư viện PDO và Prepared Statements để tối ưu bảo mật chống SQL Injection toàn diện.
  • Chưa có module tự động gửi cảnh báo SMS/Zalo ZNS khi báo giá sắp hết hạn mà chỉ phụ thuộc vào email và theo dõi thủ công trên web.

Hướng nâng cấp trong tương lai

  1. Tái cấu trúc mã nguồn sang Framework hiện đại (Laravel 11 / Symfony) nhằm xây dựng hệ thống RESTful API chuẩn hóa.
  2. Xây dựng Single Page Application (SPA) với React/Vue.js ở phía Frontend để tăng cường trải nghiệm người dùng tương tác thời gian thực (Real-time Web).
  3. Tích hợp AI dự đoán khả năng chốt sale của từng báo giá dựa trên lịch sử giao dịch và hành vi của nhóm khách hàng.

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

  • Sinh viên & Học viên ngành CNTT: Tài liệu tham khảo thực tế về quy trình phân tích thiết kế hệ thống thông tin theo phương pháp SSADM, thiết kế mô hình thực thể quan hệ ERD và lập trình ứng dụng CSDL cơ bản.
  • Lập trình viên Web (Junior Developers): Hiểu rõ cách hiện thực hóa luồng duyệt dữ liệu 2 tầng (Approval workflow) và kỹ thuật thiết kế bảng lưu vết Audit Log trong các bài toán quản lý doanh nghiệp.
  • Doanh nghiệp SME & Đơn vị Dịch vụ số: Một giải pháp quản trị báo giá trực tuyến gọn nhẹ, tối ưu chi phí, có thể áp dụng trực tiếp để chuẩn hóa quy trình bán hàng và nâng cao năng suất nội bộ.

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

1. Yêu cầu cấu hình tối thiểu của máy chủ để triển khai hệ thống là gì?

Hệ thống yêu cầu máy chủ Linux (CentOS/Ubuntu/Debian) hoặc Hosting có cài đặt cPanel; Web Server Apache 2.2+; PHP phiên bản từ 5.3 trở lên (khuyến nghị nâng cấp PHP 7.4/8.x); MySQL Server 5.1+; Dung lượng RAM tối thiểu chỉ từ 512MB và ổ cứng trống 100MB.

2. Hệ thống có khả năng chịu tải và mở rộng quy mô dữ liệu như thế nào?

Với cấu trúc bảng được lập chỉ mục (Indexing) tại các khóa chính (ID) và khóa ngoại (id_pricelist, id_service), hệ thống xử lý mượt mà trên 100,000 báo giá với thời gian truy vấn dưới 200ms. Khi dữ liệu mở rộng quy mô lớn hơn, có thể phân vùng dữ liệu bảng LogPricelist (Partitioning) theo năm để tối ưu tốc độ.

3. Quy trình bảo vệ dữ liệu khi nhiều nhân viên cùng sửa một báo giá diễn ra như thế nào?

Hệ thống sử dụng cơ chế kiểm tra trạng thái (Status). Khi báo giá đang ở trạng thái chờ duyệt hoặc đã được quản lý khóa duyệt (IsConfirm = 1), nhân viên không thể chỉnh sửa đè. Mọi thao tác gửi yêu cầu sửa đổi đều được tách thành phiên bản mới và ghi nhận lại trong LogPricelist.

4. Chi phí triển khai và thời gian hoàn vốn (ROI) ước tính cho doanh nghiệp?

Chi phí triển khai giải pháp tự lưu trữ chỉ bao gồm phí duy trì Hosting và Tên miền (khoảng 1.500.000 – 2.500.000 VNĐ/năm). Nhờ cắt giảm 90% thời gian tạo báo giá và loại bỏ thất thoát do sai lệch đơn giá, doanh nghiệp đạt điểm hòa vốn và mang lại ROI dương chỉ sau 2–3 tháng vận hành.

5. Làm thế nào để khắc phục lỗi không gửi được email báo giá cho khách hàng?

Kiểm tra cấu hình hàm mail() trong file php.ini trên máy chủ hoặc chuyển đổi sang cấu hình gửi qua giao thức SMTP chuẩn (sử dụng thư viện PHPMailer kết nối với Google Workspace SMTP / SendGrid) tại cổng port 587 hoặc 465 kèm xác thực SSL/TLS.


Kết luận

Đề tài "Xây dựng hệ thống quản lý báo giá cho khách hàng" của tác giả Nguyễn Khắc Cường đã giải quyết trọn vẹn bài toán thực tế tại Công ty 5ACE. Dự án không chỉ dừng lại ở mặt lý thuyết phân tích thiết kế hệ thống mà đã hoàn thiện một sản phẩm phần mềm thực nghiệm có tính ứng dụng cao, chuẩn hóa luồng nghiệp vụ báo giá, kiểm soát phân quyền minh bạch và lưu vết giao dịch chặt chẽ. Đây là tiền đề vững chắc cho việc mở rộng thành một hệ sinh thái ERP/CRM thu nhỏ hoàn chỉnh cho các doanh nghiệp tiếp thị số trong kỷ nguyên chuyển đổi số toàn diện.