feat(tickets): enhance AdminAppTicketResource and service with purchase details and update tests
This commit is contained in:
@@ -3,6 +3,7 @@
|
||||
namespace App\Domains\Ticket\Resources\AdminApp;
|
||||
|
||||
use App\Domains\Catalog\Models\ItemAttribute;
|
||||
use App\Domains\Purchase\Models\PurchaseItem;
|
||||
use App\Domains\Ticket\Models\Ticket;
|
||||
use App\Domains\Ticket\Resources\TicketResource;
|
||||
use Illuminate\Http\Request;
|
||||
@@ -13,12 +14,36 @@ class AdminAppTicketResource extends TicketResource
|
||||
/** @return array<string, mixed> */
|
||||
public function toArray(Request $request): array
|
||||
{
|
||||
$purchaseItem = $this->sourcePurchaseItem();
|
||||
|
||||
return [
|
||||
...parent::toArray($request),
|
||||
'source_purchase_id' => $this->source_purchase_id,
|
||||
'order_number' => $this->source_purchase_id,
|
||||
'product' => $purchaseItem?->item_nombre
|
||||
?? $this->sourceCatalogItem?->nombre
|
||||
?? $this->name,
|
||||
'amount' => $purchaseItem?->precio_unitario,
|
||||
'client' => $this->sourcePurchase?->nombre_apellido ?? $this->user?->nombre_apellido,
|
||||
'date' => $this->sourcePurchase?->created_at,
|
||||
'status' => $this->status,
|
||||
'scanned_by' => $this->scannerUser?->nombre_apellido,
|
||||
'variant_properties' => $this->variantProperties(),
|
||||
];
|
||||
}
|
||||
|
||||
private function sourcePurchaseItem(): ?PurchaseItem
|
||||
{
|
||||
return $this->sourcePurchase?->items->first(function (PurchaseItem $item): bool {
|
||||
if ($this->source_variant_id !== null) {
|
||||
return $item->source_variant_id === $this->source_variant_id;
|
||||
}
|
||||
|
||||
return $item->source_catalog_item_id === $this->source_catalog_item_id
|
||||
&& $item->source_variant_id === null;
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @return list<array{
|
||||
* code: string,
|
||||
|
||||
@@ -20,7 +20,9 @@ class AdminAppTicketService
|
||||
...TicketValidityResolver::RELATIONS,
|
||||
...TicketPresentationResolver::RELATIONS,
|
||||
'user',
|
||||
'scannerUser',
|
||||
'sourceCatalogItem.category',
|
||||
'sourcePurchase.items',
|
||||
])
|
||||
->orderByDesc('id')
|
||||
->paginateFromRequest()
|
||||
|
||||
Reference in New Issue
Block a user