Skip to content

PHÂN TÍCH NGHIỆP VỤ - PHẦN 3: THANH TOÁN & BÁO CÁO

Flow 5: QUẢN LÝ THANH TOÁN & CÔNG NỢ

5.1 Use Cases

UC-401: Thu Tiền Đặt Cọc

Actor: Nhân viên kinh doanh hoặc Kế toán
Trigger: Đơn hàng được xác nhận (UC-004)
Điều kiện tiên quyết: Order status = CONFIRMED && còn tiền cần thu

Luồng chính:

  1. User vào "Tài Chính > Thu Chi"
  2. Nhấn "+ Tạo Phiếu Thu"
  3. Form phiếu thu:
    • Mã phiếu: TT-YYYYMMDD-XXX (auto)
    • Ngày thu: [____] (default = hôm nay)
    • Khách hàng: [____] (search & select)
    • Chọn đơn hàng cần thanh toán
  4. Hệ thống hiển thị thông tin đơn:
    Đơn hàng: DH-20260129-001
    Tổng tiền: 27,500,000 đ
    Đã thu:         0 đ
    Còn phải thu: 27,500,000 đ
    
    Tiền cọc dự kiến: 13,750,000 đ (50%)
  5. Nhập số tiền thu thực tế: [____]
    • Hệ thống validate: 0 < số tiền <= còn phải thu
  6. Chọn phương thức thanh toán:
    • ○ Tiền mặt
    • ○ Chuyển khoản → Nhập mã giao dịch: [____]
    • ○ Quẹt thẻ → Nhập số POS: [____]
    • ○ Ví điện tử (Momo, ZaloPay...) → Nhập mã GD: [____]
  7. Chọn loại thanh toán:
    • ○ Đặt cọc (Deposit)
    • ○ Thanh toán 1 phần (Partial)
    • ○ Thanh toán toàn bộ (Full)
  8. Ghi chú: [____]
  9. Upload hình ảnh/file (optional):
    • Scan biên lai chuyển khoản
    • Ảnh chữ ký khách (nếu tiền mặt)
  10. Nhấn "Lưu Phiếu Thu"
  11. Hệ thống:
    • Lưu payment record
    • Tính toán lại công nợ:
      sql
      debt = total_amount - SUM(payments)
    • IF debt == 0 THEN
      • Đánh dấu đơn hàng: is_fully_paid = TRUE
      • Gửi email cảm ơn khách hàng
    • Log activity
    • In phiếu thu (2 liên: KH, Lưu)
  12. Hiển thị "Thu tiền thành công"

Validation Rules:

VR-400: Số tiền thu > 0 và <= Còn phải thu
VR-401: IF Chuyển khoản THEN Mã GD required (min 6 ký tự)
VR-402: Ngày thu <= Ngày hiện tại
VR-403: Không được thu trùng (check duplicate transaction_ref)

Business Rules:

BR-400: Tiền cọc tối thiểu:
        - Khách mới: >= 50% tổng đơn
        - Khách thường: >= 30%
        - Khách VIP: Tùy thỏa thuận
BR-401: Cho phép thu nhiều lần (partial payments)
BR-402: Mỗi lần thu tiền phải có phiếu thu (để đối chiếu)
BR-403: Tiền mặt > 20 triệu → Phải lập biên bản giao nhận
BR-404: Auto gửi email biên lai cho khách sau mỗi lần thu

Sequence Diagram:

mermaid
sequenceDiagram
    participant User as Sales/Kế toán
    participant UI as Web UI
    participant API as Payment API
    participant DB as Database
    participant Email as Email Service
    
    User->>UI: Nhập thông tin + "Lưu"
    UI->>API: POST /payments
    API->>API: Validate data
    alt Validation Failed
        API-->>UI: Error
        UI-->>User: Hiển thị lỗi
    else Validation OK
        API->>DB: INSERT payment
        API->>DB: UPDATE order debt
        DB-->>API: OK
        alt Thanh toán đủ
            API->>Email: Gửi email cảm ơn
        end
        API-->>UI: Success {payment_id, pdf_url}
        UI-->>User: "Thu tiền thành công"
        UI->>UI: Mở popup in phiếu thu
    end

UC-402: Thu Tiền Còn Lại (Sau Nghiệm Thu)

Actor: Kế toán
Trigger: Order status = ACCEPTED (đã nghiệm thu)
Điều kiện tiên quyết: Còn tiền chưa thu (debt > 0)

Luồng chính:

  1. Hệ thống tự động gửi email cho khách:

    Subject: Thông báo thanh toán đơn hàng DH-XXX
    
    Kính gửi Quý khách,
    
    Đơn hàng của Quý khách đã được giao và nghiệm thu thành công.
    Vui lòng thanh toán số tiền còn lại:
    
    Tổng đơn hàng: 27,500,000 đ
    Đã thanh toán: 13,750,000 đ (Cọc 50%)
    Còn phải trả: 13,750,000 đ
    
    Hạn thanh toán: [Ngày]
    
    Thông tin chuyển khoản:
    - Ngân hàng: Vietcombank
    - Số TK: 1234567890
    - Chủ TK: Công ty Sản Xuất Giấy ABC
    - Nội dung: DH-XXX [Tên khách hàng]
  2. Kế toán theo dõi thanh toán:

    • Vào "Tài Chính > Công Nợ"
    • Lọc: "Chờ thanh toán sau nghiệm thu"
    • Danh sách đơn hàng cần thu tiền
  3. Khi khách chuyển khoản:

    • Nhận thông báo từ bank (nếu tích hợp SMS)
    • Hoặc check thủ công
  4. Thực hiện thu tiền (tương tự UC-401)

    • Chọn đơn hàng
    • Nhập số tiền
    • Nhập mã giao dịch
    • Lưu phiếu thu
  5. Hệ thống tự động:

    • Cập nhật công nợ
    • IF debt == 0 THEN
      • Đánh dấu completed_at = NOW()
      • Gửi email "Cảm ơn, đơn hàng đã hoàn tất"
      • Chuyển đơn sang trạng thái CLOSED
    • Log activity

Business Rules:

BR-410: Hạn thanh toán sau nghiệm thu:
        - Khách mới: Ngay sau nghiệm thu (0 ngày)
        - Khách thường: 7 ngày
        - Khách VIP: 15-30 ngày
BR-411: Nhắc nhở thanh toán:
        - Ngay sau nghiệm thu: Gửi email thông báo
        - Trước hạn 2 ngày: Gửi email nhắc nhở
        - Đúng hạn: Gửi SMS nhắc nhở
        - Quá hạn 1 ngày: Gọi điện
        - Quá hạn 7 ngày: Tạm ngưng nhận đơn mới
BR-412: Chiết khấu thanh toán sớm:
        - Thanh toán full ngay lúc xác nhận đơn: -3%
        - Thanh toán trong 3 ngày sau nghiệm thu: -1%

UC-403: Quản Lý Công Nợ

Actor: Kế toán, Manager
Mục đích: Theo dõi và quản lý công nợ của tất cả khách hàng

Luồng chính:

  1. Vào "Tài Chính > Công Nợ"

  2. Hệ thống hiển thị dashboard công nợ:

    ┌─────────────────────────────────┐
    │  TỔNG QUAN CÔNG NỢ              │
    ├─────────────────────────────────┤
    │  Tổng phải thu: 250,000,000 đ   │
    │  Trong hạn:     180,000,000 đ   │
    │  Quá hạn:        70,000,000 đ ⚠│
    │                                 │
    │  Số KH còn nợ: 25               │
    │  Số KH quá hạn: 8 ⚠            │
    └─────────────────────────────────┘
  3. Bảng chi tiết công nợ theo khách hàng:

    Mã KHTên KHLoạiTổng NợHạn TTQuá HạnHành Động
    KH001Cty ABCVIP50M15/02-[Gửi Email]
    KH025Cty XYZMới20M28/011 ngày[Gọi Điện] ⚠
    KH010Cá nhân AThường5M10/0119 ngày[Ngưng ĐH] 🚫
  4. Bộ lọc:

    • Theo trạng thái: Trong hạn / Sắp đến hạn (3 ngày) / Quá hạn
    • Theo loại KH: VIP / Thường / Mới
    • Theo số tiền: < 10M / 10-50M / > 50M
  5. Hành động:

    A. Gửi Email Nhắc Nhở:

    • Chọn khách hàng
    • Nhấn "Gửi Email Nhắc"
    • Chọn template:
      • Email lịch sự (khách VIP, chưa quá hạn)
      • Email nhắc nhở (quá hạn 1-7 ngày)
      • Email cảnh báo (quá hạn > 7 ngày)
    • Review và gửi

    B. Gọi Điện:

    • Click vào số điện thoại → Tự động gọi (nếu tích hợp)
    • Ghi chú cuộc gọi:
      • Khách đã nhận máy? [Có/Không]
      • Khách cam kết thanh toán khi nào? [____]
      • Ghi chú: [____]
    • Lưu lịch sử cuộc gọi

    C. Tạm Ngưng Nhận Đơn:

    • Chọn khách hàng quá hạn > 7 ngày
    • Nhấn "Tạm Ngưng"
    • Hệ thống:
      • Cập nhật customer.status = BLOCKED
      • Khi Sales tạo đơn cho KH này → Warning "KH bị khóa do nợ quá hạn"
      • Không cho phép xác nhận đơn mới

    D. Đối Chiếu Công Nợ:

    • Chọn khách hàng
    • Nhấn "Tạo Bảng Đối Chiếu"
    • Hệ thống generate file Excel/PDF:
      BẢNG ĐỐI CHIẾU CÔNG NỢ
      Từ ngày: 01/01/2026 - Đến ngày: 31/01/2026
      
      | Ngày | Diễn Giải | Phát Sinh Nợ | Phát Sinh Có | Tồn |
      |------|-----------|--------------|--------------|-----|
      | 15/01| Đơn DH-001| 27,500,000   | -            | 27,500,000 |
      | 20/01| Thu cọc   | -            | 13,750,000   | 13,750,000 |
      | 30/01| Thu còn lại| -           | 13,750,000   | 0 |
    • Gửi email cho khách xác nhận

Business Rules:

BR-420: Hạn mức công nợ:
        - Khách mới: 0 (không cho nợ)
        - Khách thường: 20-50 triệu
        - Khách VIP: 100-500 triệu (theo phê duyệt)
BR-421: Cảnh báo khi:
        - Tổng nợ > 80% hạn mức
        - Quá hạn > 3 ngày
        - Có đơn hàng mới mà chưa thanh toán đơn cũ
BR-422: Tự động khóa khách hàng khi:
        - Quá hạn > 14 ngày
        - Hoặc tổng nợ > hạn mức
BR-423: Đối chiếu công nợ định kỳ:
        - Khách VIP: Mỗi tháng
        - Khách thường: Mỗi quý

UC-404: Xuất Hóa Đơn VAT

Actor: Kế toán
Điều kiện tiên quyết:

  • Order đã thanh toán (full hoặc theo phần)
  • Khách yêu cầu xuất hóa đơn (có MST)

Luồng chính:

  1. Khách hàng yêu cầu xuất hóa đơn (qua email/điện thoại)
  2. Kế toán vào "Tài Chính > Hóa Đơn"
  3. Nhấn "+ Tạo Hóa Đơn Mới"
  4. Chọn đơn hàng cần xuất HĐ
  5. Hệ thống tự động điền thông tin:
    • Tên công ty (từ customer.name)
    • Mã số thuế (từ customer.tax_code)
    • Địa chỉ (từ customer.address)
    • Danh sách sản phẩm (từ order_items)
    • Thành tiền (từ order.subtotal)
    • VAT 10% (từ order.vat_amount)
    • Tổng cộng (từ order.total_amount)
  6. Kế toán review và điều chỉnh (nếu cần):
    • Tên sản phẩm (gộp nhiều SP thành 1 dòng)
    • Đơn vị tính
    • Ghi chú
  7. Nhấn "Xuất Hóa Đơn"
  8. Hệ thống:
    • IF tích hợp với hóa đơn điện tử (Viettel, VNPT...) THEN
      • Call API tạo hóa đơn
      • Lấy mã tra cứu HĐ
      • Lưu link HĐ điện tử
    • ELSE
      • Generate PDF hóa đơn (theo mẫu pháp lý)
      • Lưu file PDF
    • Cập nhật order.invoice_issued = TRUE
    • Gửi email HĐ cho khách
    • Log activity
  9. In hóa đơn (nếu cần bản giấy)

Validation Rules:

VR-430: Mã số thuế: 10 hoặc 13 số
VR-431: Địa chỉ xuất HĐ: Required, min 10 ký tự
VR-432: Tên công ty: Required, min 5 ký tự
VR-433: Không được xuất HĐ trùng cho 1 đơn hàng

Business Rules:

BR-430: Chỉ xuất HĐ khi đã thanh toán >= 50%
BR-431: HĐ điện tử phải ký số (nếu dùng e-invoice)
BR-432: Lưu trữ HĐ tối thiểu 10 năm (theo luật)
BR-433: Hóa đơn sai → Phải lập hóa đơn điều chỉnh (không xóa được)

Flow 6: BÁO CÁO & PHÂN TÍCH

6.1 Các Báo Cáo Quan Trọng

UC-501: Dashboard Tổng Quan

Actor: Tất cả users (theo quyền)
Mục đích: Xem tổng quan tình hình kinh doanh

Nội dung Dashboard:

1. KPIs Chính (Cards):

┌────────────────┬────────────────┬────────────────┬────────────────┐
│ Doanh Thu      │ Đơn Hàng       │ Đang SX        │ Công Nợ        │
│ Tháng Này      │ Mới Hôm Nay    │ Hiện Tại       │ Phải Thu       │
├────────────────┼────────────────┼────────────────┼────────────────┤
│ 450,000,000 đ  │ 12 đơn         │ 25 lệnh        │ 85,000,000 đ   │
│ ↑ 15% so t.trước│ ↑ 3 so h.qua  │ ⚠ 5 trễ hạn   │ ⚠ 20M quá hạn │
└────────────────┴────────────────┴────────────────┴────────────────┘

2. Biểu Đồ Doanh Thu (Line Chart):

  • Trục X: Ngày trong tháng
  • Trục Y: Doanh thu (VNĐ)
  • 2 đường: Tháng này vs Tháng trước

3. Biểu Đồ Sản Lượng (Bar Chart):

  • Trục X: Loại sản phẩm
  • Trục Y: Số lượng
  • So sánh theo tuần

4. Đơn Hàng Theo Trạng Thái (Pie Chart):

Confirmed: 30%
In Production: 40%
Completed: 20%
Delivered: 10%

5. Bảng Công Việc Hôm Nay:

  • Đơn hàng cần giao hôm nay: [Danh sách]
  • Đơn hàng đến hạn trong 3 ngày: [Danh sách]
  • Lệnh SX cần bắt đầu: [Danh sách]
  • Công nợ cần thu hôm nay: [Danh sách]

6. Cảnh Báo:

⚠ 3 NVL sắp hết hàng
⚠ 5 đơn hàng trễ tiến độ
⚠ 8 khách hàng nợ quá hạn
⚠ 2 máy in cần bảo trì

Business Rules:

BR-500: Dashboard tự động refresh mỗi 5 phút
BR-501: Mỗi role thấy metrics khác nhau:
        - SALES: Doanh thu, Đơn hàng, Công nợ
        - PRODUCTION: Lệnh SX, Tiến độ, NVL
        - WAREHOUSE: Tồn kho, Nhập/Xuất
        - ACCOUNTANT: Doanh thu, Thu chi, Công nợ
BR-502: Cảnh báo màu đỏ khi vượt ngưỡng:
        - Trễ tiến độ > 2 ngày
        - Nợ quá hạn > 7 ngày
        - Tồn kho < min_stock

UC-502: Báo Cáo Doanh Thu

Actor: Manager, Accountant
Mục đích: Phân tích doanh thu theo nhiều chiều

Các Tham Số:

  • Khoảng thời gian: [Từ ngày] - [Đến ngày]
  • Nhóm theo: Ngày / Tuần / Tháng / Quý
  • Loại sản phẩm: Tất cả / In ấn / Biển QC
  • Khách hàng: Tất cả / Theo phân loại
  • Nhân viên kinh doanh: Tất cả / Chọn 1 người

Nội Dung Báo Cáo:

1. Tổng Hợp:

Tổng doanh thu: 1,250,000,000 đ
Số đơn hàng: 125
Giá trị TB/đơn: 10,000,000 đ
Khách hàng mới: 25
Khách hàng quay lại: 40

2. Biểu Đồ Xu Hướng:

  • Line chart doanh thu theo thời gian
  • So sánh với kỳ trước

3. Top Sản Phẩm:

Loại SPSố ĐơnDoanh Thu%
Catalogue50500M40%
Tờ rơi40300M24%
Biển hiflex20400M32%
Khác1550M4%

4. Top Khách Hàng:

Khách HàngSố ĐơnDoanh Thu
Công ty ABC10150M
Công ty XYZ8120M
.........

5. Doanh Thu Theo Nhân Viên:

NV Kinh DoanhSố ĐơnDoanh ThuHoa Hồng (2%)
Nguyễn Văn A30300M6M
Trần Thị B25250M5M

Action:

  • Export Excel
  • Export PDF
  • Gửi email báo cáo định kỳ (cuối tháng)

UC-503: Báo Cáo Sản Xuất

Actor: Production Manager

Nội Dung:

  1. Năng Suất:

    • Số lệnh SX hoàn thành: X
    • Tỷ lệ đúng hạn: Y%
    • Tỷ lệ trễ hạn: Z%
  2. Hiệu Suất Nhân Viên:

    Nhân ViênSL LàmSL LỗiTỷ Lệ LỗiThời Gian TB
    Thợ A5024%3.5h
  3. Hiệu Suất Máy Móc:

    MáyThời Gian ChạyDowntimeTỷ Lệ Sử Dụng
    Máy in 1160h8h95%
  4. Phế Phẩm:

    • Tổng phế phẩm: X kg
    • Giá trị: Y đ
    • Nguyên nhân chính: [...]

UC-504: Báo Cáo Tồn Kho

Actor: Warehouse Manager

Nội Dung:

  1. Tồn Kho Hiện Tại:

    Mã NVLTênTồnĐơn VịGiá TrịTrạng Thái
    G-C250Giấy C2501000Tờ25M
    M-CYANMực Cyan10Kg2M⚠ Sắp hết
  2. Biến Động Kho:

    • Nhập trong kỳ: X
    • Xuất trong kỳ: Y
    • Tồn cuối kỳ: Z
  3. Cảnh Báo:

    • NVL sắp hết: [Danh sách]
    • NVL tồn lâu: [Danh sách]
    • NVL cần đặt hàng: [Danh sách]

TỔNG KẾT & GHI CHÚ

Functional Requirements Summary

Tổng Cộng: 25 Use Cases Chính

FlowSố UCMức Độ Ưu Tiên
1. Đơn Hàng4CAO
2. Sản Xuất4CAO
3. Kho5CAO
4. Giao Hàng4TRUNG BÌNH
5. Thanh Toán4CAO
6. Báo Cáo4TRUNG BÌNH

Non-Functional Requirements

1. Performance:

  • Thời gian load trang: < 2s
  • API response time: < 500ms
  • Hỗ trợ 50 users đồng thời

2. Security:

  • HTTPS bắt buộc
  • Password mã hóa bcrypt
  • Session timeout: 8h
  • Role-based access control

3. Usability:

  • Responsive design (mobile-friendly)
  • Hỗ trợ tiếng Việt có dấu
  • UI trực quan, dễ sử dụng

4. Reliability:

  • Uptime: 99.5%
  • Backup hàng ngày
  • Disaster recovery plan

5. Scalability:

  • Hỗ trợ mở rộng số lượng user
  • Hỗ trợ multi-warehouse (nhiều kho)
  • Có thể tích hợp module mới

Kết thúc Flow 6: Báo Cáo & Phân Tích

💡 Lưu ý: Đây là phần cuối của bộ SRS.

Tài liệu hệ thống quản lý sản xuất giấy