Danh sách lỗi nghiệp vụ và cách xử lý
Edge Cases
1. Đồng thời nhiều giao dịch trên cùng sản phẩm
- Khi có 2 yêu cầu xuất hàng cùng lúc trên cùng sản phẩm:
- Giao dịch đầu tiên được xử lý bình thường
- Giao dịch thứ hai sẽ nhận lỗi
STOCK_001 - Không có giao dịch nào được đợi trong hàng đợi
2. Hàng bán được trả lại
- Khi khách hàng trả hàng đã bán:
- Hệ thống không tự động trả lại vào lô hàng cũ
- Tạo một giao dịch nhập kho riêng biệt với lý do “Trả hàng”
- Giá vốn lấy theo giá bán của hóa đơn gốc
3. Sản phẩm đổi tên
- Khi đổi tên sản phẩm:
- Tất cả lô hàng cũ sẽ được cập nhật tên mới
- Tất cả log cũ vẫn giữ nguyên tên lúc tạo giao dịch
- Sẽ có ghi chú rõ ràng về lịch sử thay đổi tên sản phẩm
Fail-safe
- Nếu database bị sập: Tất cả thao tác ghi sẽ bị chặn, chỉ cho phép xem dữ liệu
- Nếu không ghi được log: Toàn bộ giao dịch sẽ bị rollback hoàn toàn
- Nếu phát hiện số liệu không cân bằng: Hệ thống tự động vào chế độ chỉ đọc
- Mọi lỗi ngoại lệ không được liệt kê: Hệ thống luôn từ chối giao dịch thay vì cho phép thực hiện với dữ liệu sai