Files
portal-api/app/Http/Resources/Api/Service/Order/InvoiceSummaryResource.php
2026-09-23 15:17:18 +07:00

29 lines
1.1 KiB
PHP

<?php
namespace App\Http\Resources\Api\Service\Order;
use App\Enums\Invoice\InvoiceStatus;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class InvoiceSummaryResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->id,
'invoice_number' => $this->invoice_number,
'service_name' => $this->order?->orderItems->first()?->product?->name ?? ('Đơn hàng ' . $this->order?->order_num),
'total' => (float) $this->total,
// Khách trả một phần thì hoá đơn vẫn chưa thanh toán — phải thấy được còn thiếu bao nhiêu.
'amount_paid' => (float) $this->amount_paid,
'outstanding' => (float) \App\Services\InvoicePaymentService::outstanding($this->resource),
'status' => $this->status,
'status_text' => InvoiceStatus::tryFrom((int) $this->status)?->label() ?? '-',
'created_at' => $this->created_at?->toISOString(),
'order_id' => $this->order?->id,
'order_num' => $this->order?->order_num,
];
}
}