flowchart TD
A[User Login ke System] --> B[Select Bulk Upload Option]
B --> C{Choose Upload Type}
C --> D1[Premises Upload]
C --> D2[Inspections Upload]
C --> D3[Food Handlers Upload]
C --> D4[Users Upload]
D1 --> E1[Download Premises Template]
D2 --> E2[Download Inspections Template]
D3 --> E3[Download Food Handlers Template]
D4 --> E4[Download Users Template]
E1 --> F1[Fill Excel: business_name, license_number, owner_name, etc.]
E2 --> F2[Fill Excel: premise_id, inspector_id + ALL criteria scores
a1_score, a2_1_score, a2_2_score, etc.]
E3 --> F3[Fill Excel: premise_id, name, ic_number, vaccination_date]
E4 --> F4[Fill Excel: name, email, role, department]
F1 --> G[Upload Excel File]
F2 --> G
F3 --> G
F4 --> G
G --> H[Pre-Upload Validation]
H --> I{File Structure Valid?}
I -->|No| J[Show Validation Errors
- Missing columns
- Wrong format
- File size too large]
J --> K[Fix Excel & Re-upload]
K --> G
I -->|Yes| L[Create BulkUploadLog Record
status: processing]
L --> M[Process Each Row]
M --> N{Row Processing}
N --> O[Validate Row Data]
O --> P{Data Valid?}
P -->|No| Q[Log Error
- Row number
- Error message
- Continue to next row]
P -->|Yes| R{Upload Type?}
R -->|Premises| S1[Create Premise Record]
R -->|Inspections| S2[Process Complex Inspection]
R -->|Food Handlers| S3[Create Food Handler Record]
R -->|Users| S4[Create User Record]
S1 --> T1[Validate category_id exists
Check duplicate license_number]
S2 --> T2[Create Inspection Record
Process ALL Criteria Details
Calculate Final Grade]
S3 --> T3[Validate premise_id exists
Check vaccination dates]
S4 --> T4[Validate unique email
Hash password
Assign role]
T1 --> U{Save Success?}
T2 --> U
T3 --> U
T4 --> U
U -->|No| V[Log Database Error
error_count++]
U -->|Yes| W[success_count++]
V --> X{More Rows?}
W --> X
Q --> X
X -->|Yes| M
X -->|No| Y[Update BulkUploadLog
- Total processed
- Success count
- Error count
- Status: completed/failed]
Y --> Z[Show Results Summary]
Z --> AA{Has Errors?}
AA -->|No| BB[Success Message
All records imported successfully]
AA -->|Yes| CC[Partial Success Message
Show success/error counts
Offer error report download]
BB --> DD[View Upload History]
CC --> EE[Download Error Report CSV
- Row numbers
- Error messages
- Suggested fixes]
EE --> FF[Fix Data & Re-upload Failed Records]
FF --> G
DD --> GG[End Process]
style A fill:#e1f5fe
style G fill:#fff3e0
style L fill:#f3e5f5
style S2 fill:#ffebee
style Y fill:#e8f5e8
style BB fill:#c8e6c9
style CC fill:#ffcdd2