option('dry-run'); $limit = max(1, (int) $this->option('limit')); $due = $service->duePaymentOptions(limit: $limit); if ($due->isEmpty()) { $this->info('Keine fälligen Zahlungsvereinbarungen gefunden.'); return self::SUCCESS; } $created = 0; $skipped = 0; foreach ($due as $option) { if ($dryRun) { $this->line(sprintf( '[dry-run] Fällig: Vereinbarung #%d (User #%s, Periode bis %s)', $option->id, $option->user_id, $option->current_period_end->toDateString(), )); continue; } $invoice = $service->invoiceFor($option); if ($invoice) { $created++; $this->line(sprintf('Rechnung %s für Vereinbarung #%d erstellt.', $invoice->number, $option->id)); } else { $skipped++; $this->warn(sprintf('Vereinbarung #%d übersprungen (siehe Log).', $option->id)); } } if (! $dryRun) { $this->info(sprintf('%d Rechnung(en) erstellt, %d übersprungen.', $created, $skipped)); } return self::SUCCESS; } }