Adds Kasse (Cash Register) module and related components

Introduces comprehensive cash management functionality with multiple view components for tracking daily transactions, filtering, and reconciliation

Implements:
- Cash calculation and difference tracking
- Dynamic tab switching
- Checkbox selection and row expansion
- Date filtering and approval mechanisms
This commit is contained in:
Janus C. H. Knudsen 2026-01-11 21:08:56 +01:00
parent 12869e35bf
commit 754681059d
31 changed files with 2904 additions and 28 deletions

View file

@ -126,6 +126,50 @@ The solution follows a clean architecture pattern with these main projects:
- `global.json` - .NET SDK version configuration (currently .NET 9.0)
## CSS Guidelines
### Grid + Subgrid for Table-like Layouts
**ALWAYS** use CSS Grid with subgrid for table-like layouts (lists, data tables, card grids with aligned columns). This ensures columns align correctly across header, body, and rows.
**Pattern:**
```css
/* Parent container defines the grid columns */
swp-my-table {
display: grid;
grid-template-columns: 40px 1fr 100px 80px; /* Define columns here */
}
/* Intermediate containers span all columns and use subgrid */
swp-my-table-header,
swp-my-table-body {
display: grid;
grid-column: 1 / -1;
grid-template-columns: subgrid;
}
/* Row items span all columns and use subgrid */
swp-my-table-row {
display: grid;
grid-column: 1 / -1;
grid-template-columns: subgrid;
align-items: center;
}
```
**Key principles:**
1. Column definitions go on the **parent container only**
2. All children use `grid-column: 1 / -1` to span all columns
3. All children use `grid-template-columns: subgrid` to inherit columns
4. Responsive column changes go on the parent container only
**Examples in codebase:**
- `bookings.css` - swp-booking-list / swp-booking-item
- `notifications.css` - swp-notification-list / swp-notification-item
- `attentions.css` - swp-attention-list / swp-attention-item
- `kasse.css` - swp-kasse-table / swp-kasse-table-row
## NEVER Lie or Fabricate
<CRITICAL> NEVER lie or fabricate. Violating this = immediate critical failure.