# Thiết kế nghiệp vụ tổng thể

## 1. Loại phiếu trong hệ thống

### 1.1. Phiếu thủ công
Do quản lý, HR hoặc người có thẩm quyền tạo trực tiếp.

Ví dụ:
- thưởng hiệu suất
- phạt vi phạm nội quy
- thưởng đột xuất
- phạt do quyết định quản lý

### 1.2. Phiếu tự động
Giai đoạn 1 chỉ có 1 loại:
- **Phiếu phạt nộp tiền trễ của lái xe**

## 2. Bài toán nghiệp vụ nộp tiền lái xe

Hàng ngày lái xe phát sinh số tiền phải nộp về công ty.

Quy tắc mặc định:
- tiền phát sinh của **ngày N**
- phải được nộp chậm nhất vào **giờ cutoff của ngày N+1**
- ví dụ: tiền của ngày 12 phải nộp chậm nhất **10:00 ngày 13**
- nếu quá hạn mà chưa nộp đủ thì hệ thống tự động lập biên bản / phiếu phạt

## 3. Các khái niệm chính

### 3.1. Ngày phát sinh công nợ nộp tiền
Là ngày tài xế/lái xe phát sinh khoản tiền cần nộp về công ty.

### 3.2. Hạn chót nộp tiền
Là thời điểm cuối cùng được phép nộp mà không bị ghi nhận vi phạm.

Ví dụ:
- cấu hình mặc định: 10:00 ngày hôm sau
- có thể đổi thành 17:00 ngày hôm sau

### 3.3. Vi phạm nộp tiền trễ
Được xác định khi:
- đã qua hạn chót
- và số tiền đã nộp vẫn chưa đạt số tiền phải nộp

### 3.4. Số lần vi phạm
Là số lần lái xe vi phạm theo rule đang áp dụng.

Số lần vi phạm được dùng để xác định mức xử lý:
- lần 1: nhắc nhở
- lần 2: phạt 100.000
- lần 3: phạt 200.000
- ...

## 4. Mô hình xử lý đề xuất
Để dễ triển khai, mỗi ngày hệ thống nên xử lý theo quy trình:

1. xác định số tiền lái xe phải nộp của ngày N
2. xác định tổng số tiền đã nộp liên quan đến ngày N
3. tính hạn chót nộp tiền của ngày N
4. sau khi qua hạn chót, nếu chưa nộp đủ thì ghi nhận 1 lần vi phạm
5. sinh 1 phiếu tự động tương ứng
6. cập nhật bộ đếm số lần vi phạm
7. xác định mức xử lý theo cấu hình

## 5. Cách hiểu “lập biên bản tự động”
Trong hệ thống, “lập biên bản tự động” có thể được biểu diễn bằng:
- 1 bản ghi vi phạm tự động
- và/hoặc 1 phiếu phạt tự động

Khuyến nghị:
- luôn tạo **bản ghi vi phạm**
- sau đó sinh **phiếu xử lý**
- mức xử lý có thể là:
  - nhắc nhở
  - phạt tiền
  - chờ duyệt

Cách làm này giúp lịch sử minh bạch và dễ mở rộng.