# visits (/product/modules/visits)



`visits` records a person at a place: a planned visit, the check-in and check-out that happened, and the photos and notes captured there.

## Owns

| Table         | Holds                                                    |
| ------------- | -------------------------------------------------------- |
| `visit_plans` | Planned person × organization visits.                    |
| `visits`      | The check-in and check-out event, with proof and status. |

A field rep can also capture a replenishment order on behalf of a store during a visit. The offline outbox writes it as a draft under the rep's own row-level access, with advisory prices; confirmation is a privileged function that re-prices every line, re-splits tax, checks stock and the store's credit limit, and lands it `confirmed`, `flagged` or `on_hold`.

## Routes

`/visits`: the list, with the dashboard's visits tile drilling through to it pre-filtered by period.

## Permissions

`visits.read` and `visits.manage`. A person always reads their own.

## Switched off

The route leaves the sidebar and the dashboard drops its visits tile and chart.

## Being replaced

The field solution splits this into `employees`, which owns attendance and the geofenced check-in, and `work-orders`, which owns work issued down the tree, each recipient's assignment, and the submission that closes it. This module is deleted by the phase that ships them.
