refactor(tickets): prepare filtered query for exports
This commit is contained in:
@@ -5,9 +5,19 @@ namespace App\Domains\Ticket\Services;
|
|||||||
use App\Domains\Tenant\Models\Tenant;
|
use App\Domains\Tenant\Models\Tenant;
|
||||||
use App\Domains\Ticket\Models\Ticket;
|
use App\Domains\Ticket\Models\Ticket;
|
||||||
use Illuminate\Database\Eloquent\Builder;
|
use Illuminate\Database\Eloquent\Builder;
|
||||||
|
use Illuminate\Support\Collection;
|
||||||
|
|
||||||
class AdminAppTicketService
|
class AdminAppTicketService
|
||||||
{
|
{
|
||||||
|
private const RELATIONS = [
|
||||||
|
...TicketValidityResolver::RELATIONS,
|
||||||
|
...TicketPresentationResolver::RELATIONS,
|
||||||
|
'user',
|
||||||
|
'scannerUser',
|
||||||
|
'sourceCatalogItem.category',
|
||||||
|
'sourcePurchase.items',
|
||||||
|
];
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array{q?: string|null, category?: string|null, product?: string|null, type?: string|null, date?: string|null, status?: string|null, page?: int, per_page?: int} $filters
|
* @param array{q?: string|null, category?: string|null, product?: string|null, type?: string|null, date?: string|null, status?: string|null, page?: int, per_page?: int} $filters
|
||||||
*/
|
*/
|
||||||
@@ -16,14 +26,7 @@ class AdminAppTicketService
|
|||||||
$query = $this->baseQuery($tenant, $filters);
|
$query = $this->baseQuery($tenant, $filters);
|
||||||
|
|
||||||
$tickets = (clone $query)
|
$tickets = (clone $query)
|
||||||
->with([
|
->with(self::RELATIONS)
|
||||||
...TicketValidityResolver::RELATIONS,
|
|
||||||
...TicketPresentationResolver::RELATIONS,
|
|
||||||
'user',
|
|
||||||
'scannerUser',
|
|
||||||
'sourceCatalogItem.category',
|
|
||||||
'sourcePurchase.items',
|
|
||||||
])
|
|
||||||
->orderByDesc('id')
|
->orderByDesc('id')
|
||||||
->paginateFromRequest()
|
->paginateFromRequest()
|
||||||
->withQueryString();
|
->withQueryString();
|
||||||
@@ -35,6 +38,18 @@ class AdminAppTicketService
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param array{q?: string|null, category?: string|null, product?: string|null, type?: string|null, date?: string|null, status?: string|null} $filters
|
||||||
|
* @return Collection<int, Ticket>
|
||||||
|
*/
|
||||||
|
public function ticketsForExport(Tenant $tenant, array $filters = []): Collection
|
||||||
|
{
|
||||||
|
return $this->baseQuery($tenant, $filters)
|
||||||
|
->with(self::RELATIONS)
|
||||||
|
->orderByDesc('id')
|
||||||
|
->get();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param array{q?: string|null, category?: string|null, product?: string|null, type?: string|null, date?: string|null, status?: string|null, page?: int, per_page?: int} $filters
|
* @param array{q?: string|null, category?: string|null, product?: string|null, type?: string|null, date?: string|null, status?: string|null, page?: int, per_page?: int} $filters
|
||||||
* @return Builder<Ticket>
|
* @return Builder<Ticket>
|
||||||
|
|||||||
Reference in New Issue
Block a user