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

@ -0,0 +1,51 @@
<swp-card>
<swp-card-header>
<swp-card-title>Kontanter i kassen</swp-card-title>
</swp-card-header>
<swp-card-content>
<swp-calc-row>
<swp-calc-label>
<span>Startbeholdning</span>
<small>Overført fra sidste afstemning</small>
</swp-calc-label>
<swp-calc-value class="muted">2.000,00</swp-calc-value>
</swp-calc-row>
<swp-calc-row>
<swp-calc-label>
<span>Udbetalinger / Bilag</span>
<small>Sammentæl bilag betalt kontant</small>
</swp-calc-label>
<swp-calc-input>
<input type="text" id="payouts" placeholder="0,00" />
</swp-calc-input>
</swp-calc-row>
<swp-calc-row>
<swp-calc-label>
<span>Udtaget til bank</span>
<small>Kontanter lagt til side</small>
</swp-calc-label>
<swp-calc-input>
<input type="text" id="toBank" placeholder="0,00" />
</swp-calc-input>
</swp-calc-row>
<swp-calc-row>
<swp-calc-label>
<span>Forventet kontantbeholdning</span>
</swp-calc-label>
<swp-calc-value id="expectedCash">5.220,00</swp-calc-value>
</swp-calc-row>
<swp-calc-row class="input-row">
<swp-calc-label>
<span>Optalt kontantbeholdning <span style="color: var(--color-red)">*</span></span>
<small>Hvad ligger der faktisk i kassen?</small>
</swp-calc-label>
<swp-calc-input>
<input type="text" id="actualCash" placeholder="0,00" />
</swp-calc-input>
</swp-calc-row>
</swp-card-content>
</swp-card>

View file

@ -0,0 +1,15 @@
using Microsoft.AspNetCore.Mvc;
namespace PlanTempus.Application.Features.Kasse.Components;
/// <summary>
/// ViewComponent for cash calculation section.
/// Handles starting balance, payouts, bank deposits, and actual cash count.
/// </summary>
public class KasseKontanterViewComponent : ViewComponent
{
public IViewComponentResult Invoke()
{
return View();
}
}