Haerte Verwaltungsflows und Zahlungsabgleich
This commit is contained in:
@@ -47,6 +47,8 @@ foreach ($tenants as $tenantIdRaw) {
|
||||
$schwelleCents = (int)$settings['negative_warning_cents']; // <= 0
|
||||
$intervallTage = max(1, (int)$settings['payment_reminder_interval_days']);
|
||||
$jetzt = new DateTimeImmutable('now');
|
||||
$tenantGesendet = 0;
|
||||
$tenantUebersprungen = 0;
|
||||
|
||||
$teilnehmer = ledger_fetch_participant_summaries($pdo, $tenantId, ['active_only' => true]);
|
||||
$letzteErinnerungen = saas_fetch_last_payment_reminders($pdo, $tenantId);
|
||||
@@ -68,11 +70,13 @@ foreach ($tenants as $tenantIdRaw) {
|
||||
try {
|
||||
$letzte = new DateTimeImmutable($letzteErinnerungen[$participantId]);
|
||||
if ($letzte->add(new DateInterval("P{$intervallTage}D")) > $jetzt) {
|
||||
$tenantUebersprungen++;
|
||||
$gesamtUebersprungen++;
|
||||
continue;
|
||||
}
|
||||
} catch (Throwable $e) {
|
||||
// Unparsebares Datum: sicherheitshalber ueberspringen.
|
||||
$tenantUebersprungen++;
|
||||
$gesamtUebersprungen++;
|
||||
continue;
|
||||
}
|
||||
@@ -84,6 +88,7 @@ foreach ($tenants as $tenantIdRaw) {
|
||||
|
||||
if ($dryRun) {
|
||||
echo "[dry-run] Mandant {$tenantId}: {$person['display_name']} <{$email}> offen " . saas_format_money_cents($debtCents) . " EUR\n";
|
||||
$tenantGesendet++;
|
||||
$gesamtGesendet++;
|
||||
continue;
|
||||
}
|
||||
@@ -94,12 +99,16 @@ foreach ($tenants as $tenantIdRaw) {
|
||||
$sendResult['ok'] ? 'sent' : 'failed', $sendResult['error'] ?? null, null
|
||||
);
|
||||
if ($sendResult['ok']) {
|
||||
$tenantGesendet++;
|
||||
$gesamtGesendet++;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$dryRun) {
|
||||
app_audit_log($pdo, $tenantId, null, 'payment_reminder.batch', 'tenant', $tenantId, ['gesendet' => $gesamtGesendet]);
|
||||
app_audit_log($pdo, $tenantId, null, 'payment_reminder.batch', 'tenant', $tenantId, [
|
||||
'gesendet' => $tenantGesendet,
|
||||
'uebersprungen' => $tenantUebersprungen,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user