# Lưu Đồ Quy Trình Sau Khi Áp Dụng ERP: Bán Hàng → Sản Xuất

```mermaid
graph TD
    %% Styles
    classDef auto fill:#b2f2bb,stroke:#2e7d32,stroke-width:2px,color:#000
    classDef human fill:#a5d8ff,stroke:#1e1e1e,stroke-width:2px,color:#000
    classDef xuong fill:#d0bfff,stroke:#1e1e1e,stroke-width:2px,color:#000
    classDef qc fill:#ffc9c9,stroke:#1e1e1e,stroke-width:2px,color:#000
    classDef kho fill:#c3fae8,stroke:#1e1e1e,stroke-width:2px,color:#000
    classDef decision fill:#fff3bf,stroke:#1e1e1e,stroke-width:2px,color:#000
    classDef module fill:#69db7c,stroke:#2e7d32,stroke-width:2px,color:#000,stroke-dasharray: 5 3
    classDef note fill:#e9ecef,stroke:#adb5bd,stroke-width:1px,color:#666

    %% ===== MODULE ERP =====
    subgraph Modules["🏗️ Các Module ERP (theo BluePrint dự án)"]
        M1["🟢 OM - Order Management (Bán hàng / Đơn hàng)"]
        M2["🟢 MFG - Manufacturing (Sản xuất)"]
        M3["🟢 MFG + MRP (Lập KHSX & Cung ứng)"]
        M4["🟢 MFG - Manufacturing (Vận hành SX)"]
        M5["🟢 QM - Quality Management (Chất lượng)"]
        M6["🟢 WMS - Warehouse (Kho / Nhập - Xuất)"]
        M7["🟢 OM + WMS (Giao hàng & Vận chuyển)"]
        M8["🟢 FIN - Finance (Kế toán / Đối chiếu)"]
    end
    class M1,M2,M3,M4,M5,M6,M7,M8 module

    %% ===== Bước 1 =====
    subgraph B1["Bước 1: Tiếp nhận & xử lý đơn hàng"]
        B1a["PKD nhập thông tin đơn hàng<br/>trên ERP"]
        B1auto1["ERP tự động kiểm tra:"]
        B1check1["Mặt hàng có tồn tại?"]
        B1check2["Công nợ KH có OK?"]
        B1check3["Tồn kho đủ đáp ứng?"]
        B1check4["Giá đã được duyệt?"]
        B1result_ok["✅ Tất cả OK → ERP tự động tạo<br/>Sales Order + gửi xác nhận"]
        B1result_fail["❌ Có vấn đề → ERP chặn lại<br/>+ báo lý do cụ thể<br/>(thiếu NVL, vượt công nợ,...)"]
        
        B1a --> B1auto1
        B1auto1 --> B1check1
        B1auto1 --> B1check2
        B1auto1 --> B1check3
        B1auto1 --> B1check4
        B1check1 --> B1result_ok
        B1check2 --> B1result_ok
        B1check3 --> B1result_ok
        B1check4 --> B1result_ok
        B1check1 --> B1result_fail
        B1check2 --> B1result_fail
        B1check3 --> B1result_fail
        B1check4 --> B1result_fail
    end
    class B1a human
    class B1auto1,B1check1,B1check2,B1check3,B1check4,B1result_ok,B1result_fail auto

    %% ===== Bước 2 =====
    subgraph B2["Bước 2: Đơn hàng trên hệ thống"]
        B2a["✅ Sales Order đã có ngay trên ERP<br/>Không cần cập nhật thủ công"]
        B2b["✅ Xưởng & Kho tự động thấy đơn hàng mới<br/>→ chủ động chuẩn bị NVL"]
        B2a --> B2b
    end
    class B2a,B2b auto

    %% ===== Bước 3 =====
    subgraph B3["Bước 3: Lập KHSX tự động (APS)"]
        B3a["ERP (APS) tự động gợi ý:"]
        B3b["Hàng có sẵn → tự động lên lịch giao hàng"]
        B3c["Hàng cần SX → tự động tạo<br/>Production Order từ Sales Order"]
        B3d["Check tồn kho NVL tự động<br/>→ báo thiếu trước khi SX"]
        B3e["PKD chỉ cần xác nhận / điều chỉnh"]
        B3a --> B3b
        B3a --> B3c
        B3a --> B3d
        B3b --> B3e
        B3c --> B3d
        B3d --> B3e
    end
    class B3a,B3b,B3c,B3d auto
    class B3e human

    %% ===== Bước 4 =====
    subgraph B4["Bước 4: Chuẩn bị SX (MRP tự động)"]
        B4a["PKD duyệt KHSX trên ERP"]
        B4b["MRP tự động tính toán:<br/>- Nguyên liệu cần mua<br/>- Nguyên liệu cần điều chuyển<br/>- Tạo Pick List cho kho"]
        B4c["Kho nhận Pick List trên ERP<br/>→ xuất NVL đúng vị trí"]
        B4d["Xưởng nhận thông báo tự động<br/>Không cần email/Zalo"]
        B4a --> B4b --> B4c --> B4d
    end
    class B4a human
    class B4b,B4c,B4d auto

    %% ===== Bước 5 =====
    subgraph B5["Bước 5: Tiến hành sản xuất"]
        B5a["Xưởng SX theo lệnh sản xuất trên ERP"]
        B5b["✅ Báo trạng thái real-time:<br/>- Bắt đầu / Tạm dừng / Hoàn thành<br/>- Trên mobile/web"]
        B5c["Mọi bộ phận thấy được tiến độ:<br/>- PKD biết hàng đang SX<br/>- QC biết hàng chờ kiểm<br/>- KTP biết hàng sắp nhập kho"]
        B5a --> B5b --> B5c
    end
    class B5a xuong
    class B5b,B5c auto

    %% ===== Bước 6 =====
    subgraph B6["Bước 6: Kiểm tra chất lượng (QMS)"]
        B6a["Xưởng báo 'Chờ QC' trên ERP"]
        B6b["QC nhận thông báo trên mobile"]
        B6c["QC nhập kết quả trên mobile/web"]
        B6d_decision{"Đạt?"}
        B6d_pass["✅ Đạt:<br/>Hàng tự động chuyển<br/>trạng thái 'Chờ nhập kho'"]
        B6d_fail["❌ Không đạt:<br/>ERP tự động tạo<br/>Non-Conformance Report (NCR)<br/>+ gửi R&D"]
        B6e["QC 1 xem được quy trình SX<br/>của Kỹ thuật (tích hợp ERP)"]
        B6f["Tiêu chuẩn kiểm tra lưu trung tâm<br/>trên ERP → không còn bản cứng"]

        B6a --> B6b --> B6c --> B6d_decision
        B6d_decision -->|Đạt| B6d_pass
        B6d_decision -->|Không đạt| B6d_fail
        B6d_pass --> B6e
        B6d_fail --> B6e
        B6e --> B6f
    end
    class B6a xuong
    class B6b,B6c qc
    class B6d_decision decision
    class B6d_pass,B6d_fail,B6e,B6f auto

    %% ===== Bước 7 =====
    subgraph B7["Bước 7: Ra hàng, nhập kho (WMS)"]
        B7a["Xưởng quét mã QR/mã lô<br/>để nhập kho trên ERP"]
        B7b["KTP kiểm tra trên ERP<br/>(không cần xuống kho)"]
        B7c["🚫 ENFORCE: Không thể xuất hàng<br/>khi chưa nhập kho!"]
        B7d["Hàng nhập đúng vị trí<br/>→ Sơ đồ kho trên ERP"]
        B7e["BGĐ giám sát real-time"]
        B7a --> B7b --> B7c --> B7d --> B7e
    end
    class B7a xuong
    class B7b kho
    class B7c,B7d,B7e auto

    %% ===== Bước 8 =====
    subgraph B8["Bước 8: Xuất kho, giao hàng (Logistics)"]
        B8a["Customer-Specific Item Alias:<br/>1 mã SP = nhiều tên hiển thị<br/>cho từng KH khác nhau"]
        B8b["✅ KTP không cần đổi tên SP thủ công"]
        B8c["QC thấy Phiếu xuất bán<br/>→ Tự động xuất COA"]
        B8d["✅ Không nhập liệu 2 lần"]
        B8e["ERP gợi ý lịch sắp xe<br/>từ danh sách đơn hàng xuất"]
        B8f["Tài xế ký Biên nhận giao hàng<br/>điện tử trên mobile"]
        B8a --> B8b
        B8c --> B8d
        B8b --> B8e
        B8d --> B8e
        B8e --> B8f
    end
    class B8a,B8b,B8c,B8d,B8e,B8f auto

    %% ===== Bước 9 =====
    subgraph B9["Bước 9: Kiểm tra giao hàng (Invoice Matching)"]
        B9a["ERP tự động đối chiếu 3 chiều:"]
        B9b["Phiếu xuất bán<br/>(ERP)"]
        B9c["Biên nhận giao hàng điện tử<br/>(tài xế ký mobile)"]
        B9d["Hóa đơn<br/>(kế toán tạo từ ERP)"]
        B9e["✅ Tự động khớp → không cần xử lý"]
        B9f["❌ Lệch → Dashboard Exception<br/>Kế toán chỉ xử lý các trường hợp lệch"]
        
        B9a --> B9b
        B9a --> B9c
        B9a --> B9d
        B9b --> B9e
        B9c --> B9e
        B9d --> B9e
        B9b --> B9f
        B9c --> B9f
        B9d --> B9f
    end
    class B9a,B9b,B9c,B9d,B9e,B9f auto

    %% Connections between main steps
    B1result_ok --> B2a
    B1result_fail -.->|Cần xử lý thủ công| B1a
    B2b --> B3a
    B3e --> B4a
    B4d --> B5a
    B5c --> B6a
    B6d_pass --> B7a
    B6d_fail -.->|Xử lý NCR| B6a
    B7e --> B8a
    B8f --> B9a

    %% ---- Tổng quan kết nối Module ----
    M1 -.-> B1
    M2 -.-> B2
    M3 -.-> B3
    M4 -.-> B5
    M5 -.-> B6
    M6 -.-> B7
    M7 -.-> B8
    M8 -.-> B9
```

---

## 📖 Danh Mục Ký Tự Viết Tắt (Module ERP)

Các module dưới đây được thống nhất theo **BluePrint dự án BTChem (Microsoft Dynamics 365 Business Central)**:

| Viết tắt | Tên đầy đủ (tiếng Anh) | Tên tiếng Việt | Ghi chú |
|:---------|:----------------------|:--------------|:--------|
| **OM** | Order Management | Quản lý Bán hàng / Đơn hàng | Đơn hàng, bảng giá, công nợ |
| **MFG** | Manufacturing | Quản lý Sản xuất | KHSX, lệnh SX, định mức, khai báo SX |
| **INV** | Inventory | Quản lý Tồn kho | Hàng tồn, theo dõi số lượng |
| **FIN** | Finance / Accounting | Tài chính / Kế toán | Hóa đơn, công nợ, đối chiếu, giá thành |
| **PO** | Purchasing | Mua hàng / Thu mua | Mua NVL, đơn mua hàng |
| **QM** | Quality Management | Quản lý Chất lượng | QC, NCR, tiêu chuẩn kiểm tra, COA |
| **WMS** | Warehouse Management | Quản lý Kho vận | Nhập/xuất kho, sơ đồ kho, vị trí lưu trữ |
| **MRP** | Material Requirements Planning | Hoạch định Nhu cầu Nguyên vật liệu | Tính toán NVL cần mua / cần điều chuyển |
| **CRM** | Customer Relationship Management | Quản lý Quan hệ Khách hàng | Tương tác KH, lịch sử, chăm sóc |

> 📌 **Nguồn:** BluePrint dự án tại `ERP\BluePrint\BP_OM_BTChem_V1.md` và `ERP\BluePrint\BP_MFG_BTChem_V1.md` — tài liệu do FPT tư vấn.

## Tổng Quan Lưu Đồ (Sau ERP)

| Bước | Mô tả | Bộ phận chính | Module ERP | Trạng thái |
|:-----|:------|:-------------|:-----------|:-----------|
| 1 | Tiếp nhận & xử lý đơn hàng | PKD (nhập) / ERP (tự check) | **OM** (Order Management) | 🟢 Tự động |
| 2 | Đơn hàng trên hệ thống | Tự động | **OM + MFG** | 🟢 Tự động |
| 3 | Lập KHSX | ERP gợi ý / PKD duyệt | **MFG + MRP** | 🟢 Tự động |
| 4 | Chuẩn bị SX | ERP tự tính NVL | **MFG + MRP + PO** | 🟢 Tự động |
| 5 | Tiến hành SX | Xưởng (báo trạng thái) | **MFG** (Manufacturing) | 🟢 Real-time |
| 6 | Kiểm tra chất lượng | QC (mobile) | **QM** (Quality Management) | 🟢 Tự động |
| 7 | Ra hàng, nhập kho | Kho (quét mã) | **WMS + INV** (Warehouse + Inventory) | 🟢 Tự động |
| 8 | Xuất kho, giao hàng | Tự động | **OM + WMS** | 🟢 Tự động |
| 9 | Kiểm tra giao hàng | Tự động | **FIN** (Finance / Kế toán) | 🟢 Tự động |

---

## So Sánh Nhanh: Trước vs Sau ERP

| Tiêu chí | 🔴 Hiện tại | 🟢 Sau ERP |
|:----------|:-----------|:-----------|
| PKD nhập đơn → check tồn kho | Gọi KTP hỏi | Xem real-time |
| Công nợ | Gửi Base, chờ PKT | Auto block nếu vượt |
| KHSX | PKD làm tay | ERP gợi ý từ đơn hàng |
| QC nhập kết quả | FAST + sổ tay | Mobile + auto NCR |
| KTP đổi tên SP | Từng cái 1 | Alias tự động |
| Xuất COA | Nhập 2 lần | QC tự xuất từ phiếu bán |
| Lịch xe | Excel tay | Auto gợi ý |
| Đối chiếu giao hàng | Hôm sau, giấy tờ | Real-time, số hóa |
| BGĐ xem tiến độ | Hỏi từng phòng | Dashboard 1 nút |

---

*Tài liệu này sử dụng Mermaid.js để vẽ lưu đồ. Có thể import vào các công cụ hỗ trợ Mermaid như: Obsidian, Notion, GitLab, GitHub, Mermaid Live Editor (mermaid.live), draw.io, v.v.*
