# v76 — Full E2E Business Simulation + POS Operational Stabilization

v76 is the integrated roadmap sprint following the v75 consolidated checkpoint.

## POS operational contract
The retail POS is not considered ready merely because the screen renders. The accepted
business flow is now:

Open/current shift → current-or-new server cart → barcode scan → quantity → checkout →
atomic cash completion → shift cash posting → inventory posting → receipt → next sale.

### Shift
- The demo seeder now creates the missing active Register ↔ Cashbox link.
- POS scan and checkout are blocked until a shift is open.
- Missing cashbox link and missing permissions receive actionable localized messages.

### Cart recovery
- `GET /sales/carts/current` restores the latest open cart for the authenticated user
  in the active register/branch scope.
- Reloading the POS no longer blindly abandons the previous server cart.

### Cash completion
- `POST /pos/sales/{sale}/cash-complete` orchestrates cash capture and completed-sale
  inventory posting inside one outer database transaction.
- Cash shift posting remains owned by the existing payment/cash contract.
- Inventory posting remains owned by the existing Inventory application action.
- If inventory posting fails, the outer transaction prevents a partially committed POS
  cash completion.
- The endpoint is idempotent and requires both payment collection and inventory sale-post
  permissions.

### Warehouse
- POS resolves the active default warehouse for the selected branch.
- Cash completion cannot proceed without an active branch warehouse.

## Shortcuts
- Ctrl+Alt+O — open POS immediately from Back Office.
- F2 — barcode focus/select; gives visible feedback.
- Ctrl+Enter — primary checkout shortcut.
- F4 remains a legacy secondary shortcut only and is not the documented primary action.
- Ctrl+Alt+H — reliable shortcut-help fallback.
- Ctrl+/ remains as a browser-dependent alternative.

## E2E simulation
`PosBusinessSimulationV76Test` validates the connected retail flow:
- current shift absent
- shift open
- cart creation and current-cart recovery
- barcode and pricing
- checkout
- atomic cash completion
- cash shift update
- inventory decrement
- retry idempotency

The release gate also runs the complete Laravel suite, which covers restaurant,
purchasing, production, printing, returns, reporting, IAM, cash, payments and other
existing business paths.
