design anpassung

This commit is contained in:
2026-06-23 00:06:31 +02:00
parent 1891ec0a51
commit cbea23083d
30 changed files with 785 additions and 547 deletions
+62 -19
View File
@@ -1,17 +1,23 @@
<?php
$tenantRole = (string) ($authState['tenant_role'] ?? 'member');
$isSelfService = $tenantRole === 'member';
$sourceLabels = [
'digital_self' => 'Selbst gebucht',
'paper_sheet' => 'Papierliste',
'admin_backoffice' => 'Nachgetragen durch Verwaltung',
'rfid_reader' => 'Kartenleser',
];
require __DIR__ . '/../partials/layout-top.php';
?>
<section class="page-head inline-head">
<div>
<span class="eyebrow"><?= e($isSelfService ? 'Member-Self-Service' : ucfirst((string) $tenant['plan']) . ' Paket') ?></span>
<span class="eyebrow"><?= e($isSelfService ? 'Mein Kaffeekonto' : 'Kaffeekasse') ?></span>
<h1><?= e($tenant['name']) ?></h1>
<?php if ($isSelfService): ?>
<p>Rolle: <?= e($tenantRole) ?>. Dieser Zugang ist fuer die taegliche Selbstbuchung gedacht; Stammdaten, Saldenpflege und Korrekturen bleiben beim Standortteam.</p>
<p>Buchen Sie hier Ihren Kaffee oder andere Produkte und sehen Sie Ihren aktuellen offenen Betrag. Korrekturen übernimmt die verantwortliche Person.</p>
<?php else: ?>
<p>Rolle: <?= e($tenantRole) ?>. Hier laufen digitale Buchungen, Backoffice-Korrekturen und Standortzahlen zusammen.</p>
<p>Hier sehen Sie, wer Kaffee gebucht hat, welche Beträge offen sind und was als Nächstes in der Kaffeekasse gepflegt werden muss.</p>
<?php endif; ?>
</div>
<form method="post" action="<?= e(tenant_url($tenant['slug'], 'logout')) ?>">
@@ -20,31 +26,67 @@ require __DIR__ . '/../partials/layout-top.php';
</form>
</section>
<section class="action-strip">
<a class="quick-action primary" href="<?= e(tenant_url($tenant['slug'], 'bookings')) ?>">
<strong><?= e($isSelfService ? 'Kaffee buchen' : 'Kaffee oder Produkt buchen') ?></strong>
<span><?= e($isSelfService ? 'Kaffee, Getränke oder Snacks auf Ihren Namen buchen' : 'Verbrauch direkt einem Mitglied zuordnen') ?></span>
</a>
<?php if ($isSelfService): ?>
<a class="quick-action" href="<?= e(tenant_url($tenant['slug'], 'bookings/export')) ?>">
<strong>Verlauf exportieren</strong>
<span>Eigene Buchungen als Tabelle herunterladen</span>
</a>
<?php else: ?>
<a class="quick-action" href="<?= e(tenant_url($tenant['slug'], 'members')) ?>">
<strong>Mitglied anlegen</strong>
<span>Person für Buchung, Papierliste oder Login hinzufügen</span>
</a>
<a class="quick-action" href="<?= e(tenant_url($tenant['slug'], 'payments')) ?>">
<strong>Geld einzahlen</strong>
<span>Barzahlung, Überweisung oder Sammelkasse zuordnen</span>
</a>
<a class="quick-action" href="<?= e(tenant_url($tenant['slug'], 'products')) ?>">
<strong>Produkte verwalten</strong>
<span>Kaffee, Getränke und Preise pflegen</span>
</a>
<?php endif; ?>
</section>
<?php if ($isSelfService): ?>
<section class="metric-cards">
<article class="metric-card">
<span>Produkte</span>
<strong><?= e((string) $summary['product_count']) ?></strong>
</article>
<article class="metric-card">
<span>Offener Betrag</span>
<strong><?= e(money_from_cents((int) $summary['open_balance_cents'])) ?></strong>
</article>
</section>
<div class="two-column">
<section class="card">
<span class="eyebrow">Was du hier tun kannst</span>
<span class="eyebrow">Ihr Kaffeekonto</span>
<ul class="feature-list">
<li>Digitale Buchungen fuer deinen Standort erfassen</li>
<li>Produktpreise vor dem Buchen einsehen</li>
<li>Passwort-Reset oder Buchungskorrekturen ueber das Standortteam anstossen</li>
<li>Kaffee, Getränke oder Snacks auf Ihren Namen buchen</li>
<li>Preise vor dem Buchen einsehen</li>
<li>Bei Fragen die verantwortliche Person informieren</li>
</ul>
<p class="muted">Die Navigation zeigt hier bewusst nur Self-Service-Seiten, damit dieser Zugang nicht wie Volladministration wirkt.</p>
</section>
<section class="card">
<span class="eyebrow">Pilotbetrieb</span>
<span class="eyebrow">Kaffeekasse</span>
<ul class="stack-list">
<li>
<strong>Stammdaten und Mitglieder</strong>
<small>Pflegt weiterhin das Standortteam im Backoffice.</small>
<small>Pflegen die verantwortlichen Personen der Kaffeeliste.</small>
</li>
<li>
<strong>Einzahlungen und Papierlisten</strong>
<small>Werden separat verbucht und bei Bedarf dort korrigiert.</small>
<small>Werden von den verantwortlichen Personen verbucht und bei Bedarf korrigiert.</small>
</li>
<li>
<strong>Exporte und persoenliche Historie</strong>
<small>Werden im Pilot noch schrittweise nachgezogen.</small>
<strong>Eigener Verlauf</strong>
<small>Kann über den Export heruntergeladen werden.</small>
</li>
</ul>
</section>
@@ -64,7 +106,7 @@ require __DIR__ . '/../partials/layout-top.php';
<strong><?= e((string) $summary['paper_sheet_count']) ?></strong>
</article>
<article class="metric-card">
<span>Offene Salden</span>
<span>Offene Beträge</span>
<strong><?= e(money_from_cents((int) $summary['open_balance_cents'])) ?></strong>
</article>
</section>
@@ -76,25 +118,26 @@ require __DIR__ . '/../partials/layout-top.php';
<?php if ($latestEvents === []): ?>
<li>
<strong>Noch keine Buchungen</strong>
<small>Die letzten Ereignisse erscheinen hier, sobald der Pilotstandort aktiv bucht.</small>
<small>Die letzten Buchungen erscheinen hier, sobald die erste Kaffeebuchung erfasst wurde.</small>
</li>
<?php endif; ?>
<?php foreach ($latestEvents as $event): ?>
<?php $sourceLabel = $sourceLabels[(string) ($event['source_code'] ?? '')] ?? (string) $event['source_name']; ?>
<li>
<strong><?= e($event['member_name']) ?></strong>
<span><?= e($event['product_name']) ?> via <?= e($event['source_name']) ?></span>
<span><?= e($event['product_name']) ?>, gebucht über <?= e($sourceLabel) ?></span>
<small><?= e(money_from_cents((int) $event['total_cents'])) ?> am <?= e($event['recorded_at']) ?></small>
</li>
<?php endforeach; ?>
</ul>
</section>
<section class="card">
<span class="eyebrow">Hohe Salden</span>
<span class="eyebrow">Offene Beträge</span>
<ul class="stack-list">
<?php if ($memberBalances === []): ?>
<li>
<strong>Noch keine Salden</strong>
<small>Sobald Buchungen oder Einzahlungen vorliegen, erscheint hier die Uebersicht.</small>
<strong>Noch keine offenen Beträge</strong>
<small>Sobald Buchungen oder Einzahlungen vorliegen, erscheint hier die Übersicht.</small>
</li>
<?php endif; ?>
<?php foreach ($memberBalances as $balance): ?>