Hướng dẫn sử dụng Phiếu đề xuất thanh toán

Dành cho người mới · Cập nhật 2026-05-12 · Bản v2.1

i Tổng quan vòng đời phiếu

Mỗi phiếu đề xuất chi tiền đi qua các trạng thái sau:

📝 Nháp → Gửi → ⏳ Chờ xác nhận → Xác nhận → 🕒 Chờ duyệt → Duyệt → ✅ Đã duyệt → Chi → 💰 Đã thanh toán

Có 3 vai trò chính tham gia vào luồng phiếu:

  • Người đề xuất — tạo phiếu, nhập thông tin chi, đính kèm hóa đơn rồi gửi đi.
  • Người xác nhận (NXN) — kiểm tra sơ bộ, có thể sửa thông tin nếu sai trước khi chuyển cho người duyệt.
  • Người duyệt — duyệt chính thức bằng OTP (nếu hệ thống bật). Có thể từ chối với lý do.
  • Kế toán — xếp lịch, tạo phiếu chi, đánh dấu đã thanh toán.
Mẹo: Một người được phân cả hai vai trò Xác nhận + Duyệt có thể bấm Xác nhận + Duyệt để gộp 2 bước thành 1 click (vẫn cần OTP nếu đang bật).

1 Hướng dẫn TẠO phiếu đề xuất

Phần này dành cho người đề xuất — nhân viên có nhu cầu xin chi tiền (mua hàng, công tác phí, chi phí vận hành...).

Vào trang tạo phiếu
Có 3 cách mở form tạo phiếu:
  • Menu chính → Đề xuất thanh toán → bấm Tạo phiếu ở góc trên phải
  • Vào trực tiếp URL: /expenseproposals/detail
  • Từ trang /myaccount → bấm dropdown Tạo đề xuất → chọn Đề xuất thanh toán
Tạo phiếu đề xuất thanh toánHình mô tả trang tạo phiếu đề xuất thanh toán
Nhập thông tin phiếu
Form chia làm 2 cột:

Cột trái — Thông tin đề xuất:

TrườngBắt buộcQuy tắc
Nội dung chiMô tả khoản chi rõ ràng (có editor định dạng)
Số tiền> 0, tối đa 100 tỷ VNĐ
VAT %Chọn 0% / 8% / 10% / Đã bao gồm VAT
Tổng tiềnTự tính = Số tiền × (1 + VAT%)
Mức ưu tiênKhẩn cấp / Bình thường / Thấp
Ngày thanh toán≥ hôm nay (tạo); cho phép quá khứ khi sửa
Mã đơn hàng liên quanVD: DV193738 — sẽ thành link khi xem chi tiết
Thêm người xác nhậnTick để chỉ định 1 NXN cụ thể. Bỏ trống = mọi NXN active đều có thể xử lý
Ghi chúGhi chú thêm, ≤ 2000 ký tự

Cột phải — Thông tin thanh toán:

TrườngQuy tắc
Hình thức TTChuyển khoản hoặc Tiền mặt
Loại người nhậnCá nhân — gõ STK để tìm khách hàng tự nhập tên
Công ty — gõ tên công ty tìm NCC; nếu chưa có thì bấm "Tạo mới NCC"
Số tài khoảnSố, chữ, dấu cách / gạch ngang. VD: 0123 456 789, IVFCI0311327008
Ngân hàngChọn từ danh sách (có search)
Tạo phiếu đề xuất thanh toánHình mô tả trang tạo phiếu đề xuất thanh toán
Tự động điền NCC: Khi chọn Công ty, gõ tên công ty → click suggestion sẽ tự fill STK + Ngân hàng từ thông tin NCC đã lưu. Tiết kiệm thời gian nhập tay.
Đính kèm hóa đơn / chứng từ
Phần Hóa đơn / Chứng từ ở cuối cột phải:
  • Kéo-thả file vào ô upload, hoặc bấm để chọn
  • Hỗ trợ: ảnh, PDF, Word, Excel — tối đa 10 MB / file, không giới hạn số lượng
  • Tick "Có hóa đơn VAT" nếu khoản chi có hóa đơn đỏ đính kèm
Tạo phiếu đề xuất thanh toánHình mô tả đính kèm hoá đơn
Tạo phiếu đề xuất thanh toánHình mô tả tải hoá đơn
Lưu ý: Người duyệt thường yêu cầu hóa đơn / báo giá trước khi duyệt. Đính kèm trước sẽ giảm thời gian chờ và tránh bị từ chối vì thiếu chứng từ.
Lưu nháp hoặc Gửi duyệt
2 nút ở cuối form:
  • Lưu nháp — Giữ ở trạng thái Nháp, có thể quay lại sửa sau. Người duyệt chưa nhận thông báo.
  • Gửi duyệt — Chuyển ngay sang Chờ xác nhậngửi thông báo tới NXN (in-app + email/Telegram).
Sau khi gửi: Phiếu vào trạng thái Chờ xác nhận. Bạn KHÔNG sửa được nữa — chỉ Hủy (kèm lý do) hoặc nhờ NXN sửa giúp. Theo dõi tiến trình ở mục Đề xuất thanh toán trên profile.

2 Hướng dẫn DUYỆT phiếu

Phần này dành cho Người xác nhận (NXN)Người duyệt. Mở danh sách phiếu chờ duyệt qua menu Đề xuất → Duyệt phiếu hoặc bell khi có thông báo.

A. Bước 1 — Xác nhận (cho NXN)

Mở phiếu chờ xác nhận
Danh sách lọc theo trạng thái Chờ xác nhận. Click Xem để mở modal chi tiết (hiển thị giống phiếu in).
Kiểm tra & sửa thông tin (nếu cần)
Trước khi xác nhận, đối chiếu:
  • Nội dung chi rõ ràng, có đính kèm hóa đơn/báo giá?
  • Số tiền + VAT đúng?
  • Người nhận, STK, NH khớp chứng từ?
  • Mức ưu tiên hợp lý?
Nếu sai sót nhỏ → sửa trực tiếp (mỗi field đều sửa được khi phiếu ở status Chờ xác nhận). Nếu sai cơ bản → từ chối với lý do cụ thể (ít nhất 5 ký tự).
Bấm "Xác nhận"
Nút Xác nhận nằm ở ô chữ ký người xác nhận trong modal chi tiết (hoặc cuối form). Có thể thêm ghi chú trong ô "Ghi chú xác nhận".

Sau xác nhận: phiếu chuyển sang Chờ duyệt, gửi thông báo tới tất cả Người duyệt active.

Mẹo: Bước xác nhận không cần OTP. Mục đích là sàng lọc lỗi sớm để giảm gánh nặng cho Người duyệt.

B. Bước 2 — Duyệt (cho Người duyệt)

Mở phiếu chờ duyệt
Danh sách trạng thái Chờ duyệt. Phiếu đã có dấu "Đã xác nhận" của NXN ở chữ ký giữa.
Kiểm tra kỹ trước khi duyệt
  • Số tiền có vượt định mức duyệt của mình? (xem cấu hình NXN/NĐ ở /admin)
  • Đã có hóa đơn VAT đối ứng (nếu khoản này yêu cầu)?
  • Mức ưu tiên + ngày thanh toán hợp lý không?
  • Nội dung khoản chi có thuộc thẩm quyền đề xuất của người tạo?
Bấm "Duyệt" — nhập OTP
Bấm Duyệt → hệ thống gửi mã OTP 6 chữ số qua email (hoặc Telegram nếu đã bật) — TTL 5 phút.

Nhập đúng OTP → phiếu chuyển sang Đã duyệt. Người đề xuất + phòng kế toán nhận thông báo.

Không nhận được OTP? Kiểm tra:
  • Hồ sơ nhân viên có email không?
  • Vào /myaccount/settings → bật Email/Telegram
  • Spam folder

C. Từ chối phiếu

Cả NXN (ở status 7) và Người duyệt (status 2) đều có nút Từ chối. Bắt buộc nhập lý do từ chối ≥ 5 ký tự, càng cụ thể càng tốt để người đề xuất biết cách sửa.

Sau khi từ chối: Phiếu vào trạng thái Từ chối (Terminal — không sửa, không gửi lại được). Người đề xuất phải tạo phiếu mới nếu vẫn cần khoản chi này.

3 Hướng dẫn XẾP LỊCH THANH TOÁN (Kế toán)

Phần này dành cho Kế toán. Sau khi phiếu chuyển sang Đã duyệt, bạn nhận thông báo và bắt đầu quy trình thanh toán.

Mở Lịch thanh toán
Menu Đề xuất → Lịch thanh toán (URL: /expenseproposals/schedule).

Trang này hiển thị các phiếu đã duyệt theo ngày thanh toán dự kiến. Sắp xếp theo ưu tiên — phiếu Khẩn cấp luôn trên đầu.

Điều chỉnh ngày thanh toán (nếu cần)
Kế toán (user id = 53, hoặc user thuộc phòng Kế toán) có thể cập nhật lại Ngày thanh toán ngay cả sau khi phiếu đã được duyệt — phục vụ trường hợp dời lịch chi.
  • Vào chi tiết phiếu
  • Đổi ô "Ngày thanh toán" → bấm nút Cập nhật ngày TT
  • Xác nhận trong dialog → phiếu cập nhật lịch mới
Tạo Phiếu Chi đối ứng
Vào chi tiết phiếu → bấm Tạo phiếu chi. Hệ thống mở modal Phiếu Chi với data đã pre-fill:
  • Số tiền + người nhận + STK + Ngân hàng tự copy từ phiếu đề xuất
  • Liên kết NCC nếu Loại = Công ty
  • Nội dung lấy từ "Nội dung chi"
Kiểm tra lại → bấm Lưu phiếu chi. Hệ thống tự link phiếu chi vào phiếu đề xuất (cột "Phiếu chi" trong list).
Đánh dấu Đã thanh toán
Sau khi chuyển khoản / chi tiền mặt thực tế:
  • Vào chi tiết phiếu → bấm Xác nhận thanh toán
  • Phiếu chuyển sang Đã thanh toánTerminal, không sửa lại được
  • Liên kết phiếu chi (`paymentSlipId` + `paymentSlipCode`) được lưu để kiểm toán sau này
Trước khi bấm: Đảm bảo đã thực sự chi tiền và số tiền + STK khớp chứng từ chuyển khoản. Sau khi đánh dấu, phiếu vào Terminal — không hủy được.

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

Tôi gửi nhầm phiếu, làm sao sửa lại?
Một khi phiếu rời Nháp, bạn không sửa được nữa. Có 2 cách: (1) Liên hệ NXN/Người duyệt sửa giúp (họ có quyền sửa trong status 7/2). (2) Vào chi tiết phiếu → bấm Hủy phiếu (nhập lý do) rồi tạo phiếu mới.
Phiếu bị từ chối — tôi gửi lại được không?
Không. Phiếu Từ chối là Terminal. Đọc lý do từ chối, sửa nội dung tương ứng, rồi tạo phiếu mới. Có thể copy thông tin cũ bằng cách mở phiếu cũ trong tab khác.
Người duyệt không nhận được OTP?
Kiểm tra theo thứ tự:
  • Hồ sơ Nhân viên có email không (Admin → Quản lý nhân viên)?
  • Vào /myaccount/settings → tab Thông báo → bật Email/Telegram
  • Kiểm tra Spam/Junk folder
  • Bấm Gửi lại OTP sau 15 giây (TTL của OTP cũ = 5 phút, OTP mới sẽ thay thế)
  • Nếu vẫn không có — liên hệ Admin để check setting bật/tắt OTP toàn cục
Số tiền phiếu vượt định mức của tôi (Người duyệt)?
Hệ thống chặn ngay khi bấm Duyệt với thông báo "Số tiền phiếu (X) vượt định mức duyệt (Y) của người dùng". Phiếu cần chuyển sang Người duyệt có định mức cao hơn — liên hệ Admin để reassign hoặc bỏ chỉ định.
Có thể chỉ định 1 NXN cụ thể không?
Có. Khi tạo phiếu, tick ô "Thêm người xác nhận" → chọn từ Select2 (có search theo tên/phòng ban). Bỏ trống = mọi NXN active đều có thể xử lý. Đã chọn = chỉ NXN đó nhận notify và thấy phiếu.
Làm sao xem lịch sử thay đổi của phiếu?
Vào chi tiết phiếu (modal hoặc trang detail) → cuộn xuống mục "Lịch sử trạng thái". Hiển thị toàn bộ action: tạo, sửa (kèm diff field cụ thể), gửi, xác nhận, duyệt, từ chối, hủy, thanh toán — đều ghi lại ai làm + lúc nào.
Phiếu của tôi đã duyệt nhưng chưa thanh toán — bao lâu kế toán mới chi?
Tùy theo ngày thanh toán dự kiến + ưu tiên. Phiếu Khẩn cấp luôn ở đầu danh sách. Có thể chat với kế toán hoặc xem ở mục Lịch thanh toán để biết thứ tự xếp lịch.
Tôi muốn duyệt nhanh — phải ai làm cả 2 vai trò?
Admin cần thêm user đó vào cả bảng Người xác nhận và Người duyệt (xem /admin/expense-proposals-config). Khi đó user sẽ thấy nút Xác nhận + Duyệt ở phiếu Chờ xác nhận — chuyển từ 7 → 3 trong 1 click (vẫn cần OTP nếu đang bật).
Hướng dẫn này là tài liệu rút gọn cho người mới.
Tài liệu API đầy đủ (FE dev): /docs/ExpenseProposal_User_Guide.md/docs/ExpenseProposal_Approver_Guide.md