BÀI GIẢNG: APP ĐỀ NGHỊ MUA HÀNG (DUYỆT 1 CẤP)


🛒 BÀI GIẢNG: APP ĐỀ NGHỊ MUA HÀNG (DUYỆT 1 CẤP)

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

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

✔ Nhân viên tạo đề nghị mua hàng và lưu vào SharePoint
✔ Trưởng phòng duyệt / từ chối ngay trên app
✔ Theo dõi trạng thái: Pending / Approved / Rejected
✔ (Nâng cao) Có thể mở rộng gửi email giống bài trước


📂 PHẦN 1: CHUẨN BỊ DỮ LIỆU (SHAREPOINT)


1.1 Tạo SharePoint List: PurchaseRequests

Tạo list mới với các cột sau:

Tên cộtKiểu dữ liệuÝ nghĩa
TitleSingle lineTiêu đề đề nghị
RequesterNameSingle lineNgười đề nghị
RequesterEmailSingle lineEmail
DepartmentSingle linePhòng ban
ItemNameSingle lineTên hàng hóa
QuantityNumberSố lượng
EstimatedCostCurrencyChi phí dự kiến
ReasonMultiple linesLý do
StatusChoiceTrạng thái
ManagerEmailSingle lineEmail trưởng phòng

Thiết lập Choice:

Status:

  • Pending
  • Approved
  • Rejected

👉 Giải thích:

  • Pending = chờ duyệt
  • Approved = đã duyệt
  • Rejected = từ chối

1.2 DỮ LIỆU MẪU (15 DÒNG)

👉 Copy vào Edit in grid view

TitleRequesterNameRequesterEmailDepartmentItemNameQuantityEstimatedCostReasonStatusManagerEmail
PR-001Nguyễn Văn Aa@contoso.comITLaptop Dell230000000Làm việc dự ánPendingit.manager@contoso.com
PR-002Trần Thị Bb@contoso.comHRMáy in15000000In tài liệuPendinghr.manager@contoso.com
PR-003Lê Văn Cc@contoso.comSalesiPad320000000Demo khách hàngPendingsales.manager@contoso.com
PR-004Phạm Thị Dd@contoso.comMarketingCamera115000000Quay videoPendingmkt.manager@contoso.com
PR-005Nguyễn Văn Ee@contoso.comFinanceMáy scan17000000Lưu chứng từPendingfin.manager@contoso.com
PR-006Hoàng Aa1@contoso.comITChuột102000000Thiết bị phụApprovedit.manager@contoso.com
PR-007Hoàng Bb1@contoso.comHRBàn làm việc24000000Nhân sự mớiApprovedhr.manager@contoso.com
PR-008Hoàng Cc1@contoso.comSalesĐiện thoại210000000Gọi kháchRejectedsales.manager@contoso.com
PR-009Hoàng Dd1@contoso.comMarketingMicro13000000LivestreamApprovedmkt.manager@contoso.com
PR-010Hoàng Ee1@contoso.comFinanceMáy tính112000000Kế toánRejectedfin.manager@contoso.com
PR-011Minh Am1@contoso.comITServer150000000Hệ thốngPendingit.manager@contoso.com
PR-012Minh Bm2@contoso.comHRGhế55000000Văn phòngPendinghr.manager@contoso.com
PR-013Minh Cm3@contoso.comSalesTablet215000000Trình diễnPendingsales.manager@contoso.com
PR-014Minh Dm4@contoso.comMarketingĐèn33000000StudioPendingmkt.manager@contoso.com
PR-015Minh Em5@contoso.comFinanceMáy in màu18000000Báo cáoPendingfin.manager@contoso.com

🛠️ PHẦN 2: TẠO APP (POWER APPS)


2.1 Tạo Canvas App

  • Vào: make.powerapps.com
  • Create → Blank app
  • Name: App Đề Nghị Mua Hàng
  • Format: Phone

2.2 Kết nối dữ liệu

  • Data → Add data → SharePoint
  • Chọn list: PurchaseRequests

👤 PHẦN 3: MÀN HÌNH NHÂN VIÊN


3.1 Tạo screen

👉 Name: scrCreatePR


3.2 Thêm control

ControlName
Text inputtxtName
Text inputtxtEmail
Text inputtxtDepartment
Text inputtxtItem
Text inputtxtQuantity
Text inputtxtCost
Text input (Multiline)txtReason

3.3 Nút “GỬI ĐỀ NGHỊ”

👉 OnSelect:

Patch(
    PurchaseRequests,
    Defaults(PurchaseRequests),
    {
        Title: txtName.Text & "-" & Text(Today(),"yyyymmdd"),
        RequesterName: txtName.Text,
        RequesterEmail: txtEmail.Text,
        Department: txtDepartment.Text,
        ItemName: txtItem.Text,
        Quantity: Value(txtQuantity.Text),
        EstimatedCost: Value(txtCost.Text),
        Reason: txtReason.Text,
        Status: "Pending",
        ManagerEmail: "manager@contoso.com"
    }
);

Notify("Đã gửi đề nghị!", NotificationType.Success);

Reset(txtName);
Reset(txtEmail);
Reset(txtDepartment);
Reset(txtItem);
Reset(txtQuantity);
Reset(txtCost);
Reset(txtReason);

💡 Giải thích

  • Value() → chuyển text → số
  • Patch() → ghi dữ liệu
  • Defaults() → tạo bản ghi mới
  • Status = Pending → chờ duyệt

3.4 Gallery “Đề nghị của tôi”

Filter(PurchaseRequests, RequesterEmail = txtEmail.Text)

👨‍💼 PHẦN 4: MÀN HÌNH DUYỆT


4.1 Tạo screen

👉 Name: scrManager


4.2 Gallery Pending

Filter(PurchaseRequests, Status = "Pending")

4.3 Nút DUYỆT

Patch(
    PurchaseRequests,
    ThisItem,
    { Status: "Approved" }
);

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

4.4 Nút TỪ CHỐI

Patch(
    PurchaseRequests,
    ThisItem,
    { Status: "Rejected" }
);

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

🧪 PHẦN 5: KIỂM THỬ (BẮT BUỘC)


Test 1 – Gửi đề nghị

👉 Kết quả:

  • SharePoint có dòng mới
  • Status = Pending

Test 2 – Duyệt

👉 Kết quả:

  • Status → Approved
  • Biến mất khỏi danh sách

Test 3 – Từ chối

👉 Kết quả:

  • Status → Rejected

🏁 KẾT QUẢ CUỐI

Bạn đã có:

✅ App đề nghị mua hàng
✅ Quy trình duyệt 1 cấp
✅ Dữ liệu tập trung SharePoint
✅ Có thể mở rộng email / báo cáo


🚀 GỢI Ý NÂNG CAO (CHO TỰ THỰC HÀNH)

  • Tự động chọn Manager theo phòng ban
  • Gửi email khi Approved
  • Dashboard tổng chi phí
  • Phân quyền (nhân viên vs manager)

Scroll to Top