Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 26
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
PurchaseOrderInvoiceItemResource
0.00% covered (danger)
0.00%
0 / 26
0.00% covered (danger)
0.00%
0 / 1
30
0.00% covered (danger)
0.00%
0 / 1
 toArray
0.00% covered (danger)
0.00%
0 / 26
0.00% covered (danger)
0.00%
0 / 1
30
1<?php
2
3namespace Domain\PurchaseOrder\Resources;
4
5use App\Models\Invoice\InvoiceItem;
6use App\Models\PurchaseOrder\PurchaseOrderInvoiceItem;
7use App\Models\PurchaseOrder\PurchaseOrderItem;
8use Domain\Invoice\Resources\InvoiceItemResource;
9use Illuminate\Http\Request;
10use Illuminate\Http\Resources\Json\JsonResource;
11
12class PurchaseOrderInvoiceItemResource extends JsonResource
13{
14    /**
15     * @property int $id
16     * @property PurchaseOrder $purchase_orders
17     * @property Product $products
18     * @property number $amount
19     * @property PurchaseOrderInvoiceItemStatusEnum $status
20     * @return array<string, mixed>
21     */
22    public function toArray(Request $request): array
23    {
24        $isModel = $this->resource instanceof PurchaseOrderInvoiceItem;
25
26        return [
27            'id' => $this->id ?? null,
28
29            'invoice_item' => InvoiceItemResource::make(
30                $isModel
31                    ? ($this->whenLoaded('invoiceItem') ?? $this->invoiceItem)
32                    : (isset($this->invoice_item_id)
33                        ? InvoiceItem::with(['integration', 'unitMeasurement'])
34                            ->find($this->invoice_item_id)
35                        : null)
36            ),
37
38            'purchase_order_item' => PurchaseOrderItemResource::make(
39                $isModel
40                    ? ($this->whenLoaded('purchaseOrderItem') ?? $this->purchaseOrderItem)
41                    : (isset($this->purchase_order_item_id)
42                        ? PurchaseOrderItem::with([
43                            'integration',
44                            'product.unitMeasurement',
45                            'purchaseOrder.integration',
46                            'purchaseOrder.supplier.integration',
47                        ])->find($this->purchase_order_item_id)
48                        : null)
49            ),
50            'status' => $this->status,
51            'amount' => $this->amount,
52        ];
53    }
54}