BÀI GIẢNG: APP MUA HÀNG HOÀN CHỈNH


🛒 BÀI GIẢNG: APP MUA HÀNG HOÀN CHỈNH

(APPROVAL + EMAIL + DASHBOARD)


🎯 MỤC TIÊU BUỔI HỌC

Sau bài này, học viên sẽ làm được:

✔ Tạo app đề nghị mua hàng hoàn chỉnh
✔ Duyệt 1 cấp (Manager Approval)
✔ Tự động gửi email khi duyệt / từ chối
✔ Xây Dashboard theo dõi chi phí & trạng thái
✔ Hiểu cách xây hệ thống nội bộ thực tế


🧱 TỔNG QUAN KIẾN TRÚC

👉 Flow hệ thống:

Power Apps → SharePoint → Power Automate → Email + Dashboard


📂 PHẦN 1: CHUẨN HÓA DỮ LIỆU (SHAREPOINT)


1.1 List: PurchaseRequests

(giữ giống bài trước, thêm 2 cột mới)

Cột mớiKiểuÝ nghĩa
ApprovedDateDateNgày duyệt
ApprovedBySingle lineNgười duyệt

💡 Vì sao cần 2 cột này?

  • Làm báo cáo theo thời gian
  • Biết ai đã duyệt
  • Làm dashboard chuẩn doanh nghiệp

🛠️ PHẦN 2: NÂNG CẤP APP (POWER APPS)


2.1 Update nút DUYỆT

👉 Thay code cũ bằng:

Patch(
    PurchaseRequests,
    ThisItem,
    {
        Status: "Approved",
        ApprovedDate: Today(),
        ApprovedBy: User().Email
    }
);

Notify("Đã duyệt!", NotificationType.Success)

2.2 Update nút TỪ CHỐI

Patch(
    PurchaseRequests,
    ThisItem,
    {
        Status: "Rejected",
        ApprovedDate: Today(),
        ApprovedBy: User().Email
    }
);

Notify("Đã từ chối!", NotificationType.Warning)

💡 Giải thích

  • User().Email = người đang đăng nhập
  • Today() = lưu thời điểm duyệt
    👉 Đây là dữ liệu cực kỳ quan trọng cho báo cáo

📧 PHẦN 3: POWER AUTOMATE (EMAIL TỰ ĐỘNG)


3.1 Tạo Flow

Trigger:
👉 When an item is modified (SharePoint)


3.2 Thêm Condition

Status = Approved OR Rejected

3.3 Gửi Email

📌 Trường hợp Approved

To: RequesterEmail
Subject: Đơn mua hàng đã được duyệt

Body:

Chào @{RequesterName},

Đề nghị mua hàng của bạn đã được duyệt.

Sản phẩm: @{ItemName}
Số lượng: @{Quantity}
Chi phí: @{EstimatedCost}

Trân trọng.

📌 Trường hợp Rejected

Đề nghị mua hàng của bạn đã bị từ chối.

💡 Lưu ý quan trọng

  • Dùng đúng: dynamic content
  • Status Value (không phải Status text)

📊 PHẦN 4: DASHBOARD (POWER APPS)


4.1 Tạo màn hình mới

👉 Name: scrDashboard


4.2 Thống kê tổng

Tổng chi phí đã duyệt:

Sum(
    Filter(PurchaseRequests, Status = "Approved"),
    EstimatedCost
)

Tổng đơn Pending:

CountRows(
    Filter(PurchaseRequests, Status = "Pending")
)

Tổng đơn bị từ chối:

CountRows(
    Filter(PurchaseRequests, Status = "Rejected")
)

4.3 Biểu đồ (Chart)

👉 Insert → Column Chart

Items:

AddColumns(
    GroupBy(PurchaseRequests, "Department", "GroupData"),
    "TotalCost",
    Sum(GroupData, EstimatedCost)
)

💡 Ý nghĩa Dashboard

  • Sếp nhìn được tổng chi phí
  • So sánh phòng ban
  • Kiểm soát ngân sách

🧪 PHẦN 5: KIỂM THỬ TOÀN HỆ THỐNG


Test 1 – Tạo đề nghị

👉 Status = Pending


Test 2 – Duyệt

👉 Kiểm tra:

  • Status → Approved
  • Có ApprovedDate
  • Có ApprovedBy

Test 3 – Email

👉 Phải nhận mail


Test 4 – Dashboard

👉 Số liệu phải thay đổi ngay


🏁 KẾT QUẢ CUỐI

Bạn đã có:

✅ App mua hàng hoàn chỉnh
✅ Approval workflow chuẩn
✅ Email automation
✅ Dashboard quản lý chi phí
✅ Có thể deploy cho doanh nghiệp thật


🚀 GỢI Ý NÂNG CAO (LEVEL PRO)

  • Duyệt 2 cấp (Manager → Director)
  • Phân quyền user
  • Upload file báo giá
  • Tích hợp Power BI
  • Tự động tạo PO

💬 THÔNG ĐIỆP CHO HỌC VIÊN

Đây không còn là bài học nữa.
Đây là một hệ thống thật bạn có thể triển khai ngay tại công ty.


Scroll to Top