Kein Zugriff"; include "footer.php"; exit; } /** * Liefert die Teilnehmerliste fuer die Vorder-/Rueckseiten- oder * Alle-Auswahl. Vorderseite sind die Vieltrinker (>= 10 Striche im * Listenfenster), Rueckseite der Rest. * * @return list */ function stricheintragen_fetch_participants(PDO $pdo, int $tenantId, string $action): array { if ($action === 'vorderseite' || $action === 'rueckseite') { $settings = saas_fetch_tenant_settings($pdo, $tenantId); $windowDays = $settings['sheet_window_days'] ?? 100; return ledger_fetch_participants_by_window_marks($pdo, $tenantId, $windowDays, $action === 'vorderseite'); } return ledger_fetch_participant_summaries($pdo, $tenantId, ['active_only' => true]); } $eingetragen = 0; $fehlgeschlagen = false; $hatGespeichert = false; // Verarbeitung des Formulars, wenn es gesendet wurde if ($_SERVER["REQUEST_METHOD"] == "POST") { $hatGespeichert = true; $kostenproStrich = floatval($_POST["kostenproStrich"] ?? 0); $unitPriceCents = (int)round($kostenproStrich * 100); // Teilnehmer des Mandanten - dient der Zugehoerigkeitspruefung, damit ueber // das Formular keine fremden IDs bebucht werden koennen. $eigeneTeilnehmer = []; $stmt = $pdo->prepare('SELECT id FROM participants WHERE tenant_id = ?'); $stmt->execute([$tenantId]); foreach ($stmt->fetchAll(PDO::FETCH_COLUMN) as $id) { $eigeneTeilnehmer[(int)$id] = true; } try { $pdo->beginTransaction(); foreach ($_POST["anzahlStriche"] ?? [] as $participantId => $anzahlStriche) { $participantId = (int)$participantId; $anzahlStriche = (int)$anzahlStriche; if ($participantId <= 0 || $anzahlStriche === 0 || !isset($eigeneTeilnehmer[$participantId])) { continue; } ledger_record_consumption($pdo, $tenantId, $participantId, $anzahlStriche, $unitPriceCents, 'manual_bulk'); $eingetragen++; } $pdo->commit(); } catch (Throwable $e) { if ($pdo->inTransaction()) { $pdo->rollBack(); } $fehlgeschlagen = true; } $action = 'alle'; } else { $action = (string)($_GET['action'] ?? 'alle'); } $mitarbeiter = stricheintragen_fetch_participants($pdo, $tenantId, $action); $settings = saas_fetch_tenant_settings($pdo, $tenantId); $kostenproStrichAnzeige = number_format(($settings['mark_price_cents'] ?? 20) / 100, 2, '.', ''); ?>

Anzahl der Striche für alle Mitarbeiter

Die Einträge konnten nicht gespeichert werden.

Einträge erfolgreich hinzugefügt.

"> Kosten pro Strich:
"; echo ""; echo " "; foreach ($mitarbeiter as $teilnehmer) { $participantId = $teilnehmer['participant_id']; $name = saas_html($teilnehmer['display_name']); echo ""; echo ""; echo ""; echo ""; } echo "
Mitarbeiter Anzahl Striche
"; ?>