Improved handling for new invoices

This commit is contained in:
2026-04-18 23:42:39 +02:00
parent 33a9271013
commit 4878f750bd
16 changed files with 206 additions and 32 deletions

View File

@@ -5,6 +5,7 @@ namespace App\Resources;
use App\Enumerations\InvoiceStatus;
use App\Enumerations\InvoiceType;
use App\Models\Invoice;
use App\Models\User;
use App\ValueObjects\Amount;
class InvoiceResource {
@@ -20,6 +21,13 @@ class InvoiceResource {
if ($this->invoice->invoiceType()->slug === InvoiceType::INVOICE_TYPE_OTHER) {
$returnData['invoiceType'] .= ' (' . $this->invoice->type_other . ')';
}
$approvedBy = '--';
$approvedAt = '--';
if ($this->invoice->approved_at !== null) {
$approvedBy = User::findOrFail($this->invoice->approved_by)->getOfficialName();
$approvedAt = \DateTime::createFromFormat('Y-m-d H:i:s', $this->invoice->approved_at)->format('d.m.Y H:i');
}
$returnData['invoiceTypeShort'] = $this->invoice->invoiceType()->name;
$returnData['costUnitName'] = $this->invoice->costUnit()->first()->name;
@@ -40,6 +48,7 @@ class InvoiceResource {
$returnData['changes'] = $this->invoice->changes ?? '--';
$returnData['deniedReason'] = $this->invoice->denied_reason ?? '--';
$returnData['travelDirection'] = $this->invoice->travel_direction ?? '--';
$returnData['travelReason'] = $this->invoice->travel_reason ?? '--';
$returnData['distance'] = $this->invoice->distance;
$returnData['distanceAllowance'] = new Amount($this->invoice->costUnit()->first()->distance_allowance, '')->toString();
$returnData['passengers'] = $this->invoice->passengers ? 'Ja' : 'Nein';
@@ -50,8 +59,8 @@ class InvoiceResource {
$returnData['internalType'] = $this->invoice->type;
$returnData['donationText'] = $this->invoice->donation ? 'Ja' : 'Nein';
$returnData['createdAt'] = \DateTime::createFromFormat('Y-m-d H:i:s', $this->invoice->created_at)->format('d.m.Y H:i');
$returnData['approvedAt'] = '--';
$returnData['approvedBy'] = '--';
$returnData['approvedAt'] = $approvedAt;
$returnData['approvedBy'] = $approvedBy;
if ($this->invoice->status === InvoiceStatus::INVOICE_STATUS_APPROVED) {
$returnData['approvedAt'] = \DateTime::createFromFormat('Y-m-d H:i:s', $this->invoice->approved_at)->format('d.m.Y H:i');