1. Overview
This module enables automated retrieval, recording, and management of traffic fines for vehicles using data from the Tanzania Police Force's TMS system.
2. Key Features
- Auto-fetch of fines using number plate or reference.
- Scheduled fine checks every 2 hours.
- Enqueues background tasks for efficient processing.
- Automatic fine status updates (e.g., marking as PAID).
- Centralized log for all fine records.
3. Pre-Requisites
- Frappe/ERPNext environment.
- Internet access to https://tms.tpf.go.tz.
- Vehicle records with valid
number_plate.
- User with “System Manager” role for full access.
4. Step-by-Step Usage
A. Manual Fine Check:
- Go to Vehicle Fine Record.
- Click New, input
reference or vehicle.
- Save to auto-validate and fetch details.
B. Automated Fine Check:
- Runs every 2 hours (scheduled).
- Background tasks fetch and update fines.
- View logs via Vehicle Fine Record list.
5. Script Customizations
- Hook (Scheduler):
"0 */2 * * *" → Runs every 2 hours.
- Main Function:
check_fine_all_vehicles(batch_size=20)
- Fetch Logic:
Uses CSRF token from TMS portal and POSTs vehicle/reference for fine data.
- Error Logging:
Handled via frappe.log_error() and print_out().
6. Troubleshooting (Common Errors and Resolutions)
| Error |
Cause |
Resolution |
| “Please provide a valid number plate” |
Invalid plate input |
Ensure input has 7+ characters. |
| “CSRF token not found” |
TMS page structure changed |
Update token parsing logic. |
| “Timeout” |
Network issue / TMS downtime |
Retry later or increase timeout. |
| Fine not updating |
Reference mismatch |
Verify reference or number_plate. |
7. User Roles and Permissions
| Role |
Permissions |
| System Manager |
Full access: Create, Read, Write, Delete, Submit, Export, Share, Email. |
8. Key Notes
- Fines are automatically updated and created based on TMS data.
- System sleeps between batches to avoid TMS server overload (optional).
- Only vehicles with valid plates are processed.
- Ensure proper network connectivity for seamless operation.