# ro.status vs ro.workStatus — Field Confusion

Two repair order fields with similar names, completely different meanings. Confusing them causes silent bugs.

## The Fields

| Field | Meaning | Values | Used For |
|-------|---------|--------|----------|
| `ro.status` | Customer service status | `waiter`, `drop-off` | Red/blue badge on RO card |
| `ro.workStatus` | Work progress status | `diagnosing`, `in-progress`, `waiting-for-approval`, `waiting-for-parts`, `waiting-for-pickup`, `completed` | Work progress badge, dashboard counters, overdue filters, completion logic |

## Common Bug: Filtering by `ro.status === 'completed'`

**Symptom:** Dashboard shows "Completed: 0" despite having completed repair orders.

**Root cause:** Code filters by `ro.status === 'completed'` but `status` only stores `waiter` or `drop-off`. Completed orders have `ro.status` = `waiter` or `drop-off`, and `ro.workStatus` = `completed`.

**Wrong:**
```javascript
const completed = orders.filter(ro => ro.status === 'completed');
```

**Correct:**
```javascript
const completed = orders.filter(ro => ro.workStatus === 'completed');
```

## Common Bug: Filtering by `ro.status === 'picked-up'`

There is NO `picked-up` status value. The correct check is `ro.workStatus === 'waiting-for-pickup'`.

**Wrong:**
```javascript
ro.status !== 'completed' && ro.status !== 'picked-up'
```

**Correct:**
```javascript
ro.workStatus !== 'completed' && ro.workStatus !== 'waiting-for-pickup'
```

## Compound Bug: `ro.status` + Completed-Filtered Data Source

**Symptom:** Completed counter stays at 0 even after fixing status field checks.

**Additional cause:** `loadRepairOrders()` in dashboard.js filtered out ALL completed orders:
```javascript
const activeOrders = allOrders.filter(ro => ro.workStatus !== 'completed');
dashboardData.repairOrders = activeOrders; // completed orders NEVER loaded
```

**Fix:** Remove the filter from the data source. Let `dashboardData.repairOrders` contain ALL orders. Each consumer filters as needed.
