# ListOpenTimecards

## Overview

Lists Timecards currently in OPEN status, paginated. This is the review queue for periods that have been aggregated but not yet submitted for approval — the starting point for workers or admins to find work still awaiting submission.

OPEN is now the only Timecard status permitting supersede corrections (CorrectReportedBlock/DeclareReportedBlock/ImportReportedBlocks/FormReportedBlocks); this query is also useful as the "can still be corrected without reopening" work queue for that reason.

## Business Rules

- Returns only Timecards with `status = OPEN`; SUBMITTED, APPROVED, and LOCKED Timecards are excluded
- Results are paginated
- Category totals on returned Timecards reconcile to the sum of covered CalculatedTimeBlocks as of the query time

## Process Flow

```mermaid
flowchart TD
    A[Caller supplies pagination params] --> B[Look up Timecards with status = OPEN]
    B --> C[Return paginated page of OPEN Timecards]
```

## External Dependencies

- [time-tracking::Timecard](../model/Timecard.md) model — entity being queried

## Error Scenarios

- **INVALID_PAGINATION_CURSOR**: supplied pagination cursor is not valid for this query

## Test Cases

- returns only Timecards with status OPEN
- excludes SUBMITTED, APPROVED, and LOCKED Timecards
- returns an empty page when no Timecards are OPEN
- returns paginated results across multiple pages when many Timecards are OPEN
