From 72695ea172a322b6277d6955fcbbef659bfee372 Mon Sep 17 00:00:00 2001 From: philipp lang Date: Tue, 23 Jun 2026 13:20:49 +0200 Subject: [PATCH] Move sent function --- app/Invoice/Actions/InvoiceSendAction.php | 4 ++-- app/Invoice/Actions/MassPostPdfAction.php | 4 ++-- app/Invoice/BillDocument.php | 7 +++++-- app/Invoice/InvoiceDocument.php | 1 + app/Invoice/Models/Invoice.php | 20 +++++--------------- app/Invoice/RememberDocument.php | 7 +++++-- 6 files changed, 20 insertions(+), 23 deletions(-) diff --git a/app/Invoice/Actions/InvoiceSendAction.php b/app/Invoice/Actions/InvoiceSendAction.php index f6e504f2..4df0ea61 100644 --- a/app/Invoice/Actions/InvoiceSendAction.php +++ b/app/Invoice/Actions/InvoiceSendAction.php @@ -38,14 +38,14 @@ class InvoiceSendAction $document = BillDocument::fromInvoice($invoice); $path = Storage::disk('temp')->path(Tex::compile($document)->storeIn('', 'temp')); Mail::to($invoice->getRecipient())->send(new BillMail($invoice, $path)); - $invoice->sent($document); + $document->sent($invoice); } foreach (Invoice::whereNeedsRemember()->where('via', BillKind::EMAIL)->get() as $invoice) { $document = RememberDocument::fromInvoice($invoice); $path = Storage::disk('temp')->path(Tex::compile($document)->storeIn('', 'temp')); Mail::to($invoice->getRecipient())->send(new RememberMail($invoice, $path)); - $invoice->sent($document); + $document->sent($invoice); } return 0; diff --git a/app/Invoice/Actions/MassPostPdfAction.php b/app/Invoice/Actions/MassPostPdfAction.php index c57f1f7f..c57f20dc 100644 --- a/app/Invoice/Actions/MassPostPdfAction.php +++ b/app/Invoice/Actions/MassPostPdfAction.php @@ -22,13 +22,13 @@ class MassPostPdfAction foreach (Invoice::whereNeedsBill()->where('via', BillKind::POST)->get() as $invoice) { $document = BillDocument::fromInvoice($invoice); $documents[] = $document; - $invoice->sent($document); + $document->sent($invoice); } foreach (Invoice::whereNeedsRemember()->where('via', BillKind::POST)->get() as $invoice) { $document = RememberDocument::fromInvoice($invoice); $documents[] = $document; - $invoice->sent($document); + $document->sent($invoice); } if (!count($documents)) { diff --git a/app/Invoice/BillDocument.php b/app/Invoice/BillDocument.php index f71bebde..6c8fa55a 100644 --- a/app/Invoice/BillDocument.php +++ b/app/Invoice/BillDocument.php @@ -2,8 +2,7 @@ namespace App\Invoice; -use App\Payment\Payment; -use Illuminate\Database\Eloquent\Relations\HasMany; +use App\Invoice\Models\Invoice; class BillDocument extends InvoiceDocument { @@ -17,4 +16,8 @@ class BillDocument extends InvoiceDocument { return 'tex.invoice.bill'; } + + public function sent(Invoice $invoice): void { + $invoice->sentNow(); + } } diff --git a/app/Invoice/InvoiceDocument.php b/app/Invoice/InvoiceDocument.php index b23c661c..7c379c03 100644 --- a/app/Invoice/InvoiceDocument.php +++ b/app/Invoice/InvoiceDocument.php @@ -12,6 +12,7 @@ abstract class InvoiceDocument extends Document { abstract public function getSubject(): string; abstract public function view(): string; + abstract public function sent(Invoice $invoice): void; public string $until; public string $filename; diff --git a/app/Invoice/Models/Invoice.php b/app/Invoice/Models/Invoice.php index ebd62cac..cc7e62c6 100644 --- a/app/Invoice/Models/Invoice.php +++ b/app/Invoice/Models/Invoice.php @@ -101,22 +101,12 @@ class Invoice extends Model return $this->to; } - public function sent(InvoiceDocument $document): void - { - if (is_a($document, BillDocument::class)) { - $this->update([ - 'sent_at' => now(), - 'status' => InvoiceStatus::SENT, - 'last_remembered_at' => now(), - ]); - } + public function rememberedNow(): void { + $this->update(['last_remembered_at' => now(), 'status' => InvoiceStatus::SENT]); + } - if (is_a($document, RememberDocument::class)) { - $this->update([ - 'last_remembered_at' => now(), - 'status' => InvoiceStatus::SENT, - ]); - } + public function sentNow(): void { + $this->update(['sent_at' => now(), 'status' => InvoiceStatus::SENT, 'last_remembered_at' => now()]); } /** diff --git a/app/Invoice/RememberDocument.php b/app/Invoice/RememberDocument.php index 8299e897..ca1f5bcc 100644 --- a/app/Invoice/RememberDocument.php +++ b/app/Invoice/RememberDocument.php @@ -2,8 +2,7 @@ namespace App\Invoice; -use App\Payment\Payment; -use Illuminate\Database\Eloquent\Relations\HasMany; +use App\Invoice\Models\Invoice; class RememberDocument extends InvoiceDocument { @@ -17,4 +16,8 @@ class RememberDocument extends InvoiceDocument { return 'tex.invoice.remember'; } + + public function sent(Invoice $invoice): void { + $invoice->rememberedNow(); + } }