Files
portal-api/app/Http/Resources/Api/Admin/InvoiceResource.php
T
2026-09-27 11:42:40 +07:00

39 lines
1.6 KiB
PHP

<?php
namespace App\Http\Resources\Api\Admin;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\Json\JsonResource;
class InvoiceResource extends JsonResource
{
public function toArray(Request $request): array
{
return [
'id' => $this->id,
'invoice_number' => $this->invoice_number,
'order_num' => $this->whenLoaded('order', fn() => $this->order?->order_num),
'customer' => $this->whenLoaded('customer', fn() => [
'id' => $this->customer->id,
'uuid' => $this->customer->uuid,
'fullname' => $this->customer->fullname,
'email' => $this->customer->email,
]),
'sub_total' => $this->sub_total,
'discount_amount' => $this->discount_amount,
'tax' => $this->tax,
'total' => $this->total,
// Công nợ: đã thu bao nhiêu / còn thiếu bao nhiêu. Kế toán cần thấy ngay trên
// danh sách thay vì phải suy từ số dư ví của khách.
'amount_paid' => (int) $this->amount_paid,
'outstanding' => \App\Services\InvoicePaymentService::outstanding($this->resource),
'status' => $this->status,
'due_date' => $this->due_date,
'paid_at' => $this->paid_at,
'reminder_step' => (int) $this->reminder_step,
'created_at' => $this->created_at,
'updated_at' => $this->updated_at,
];
}
}