Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
ResourceCenterQueryBuilder
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
30
0.00% covered (danger)
0.00%
0 / 1
 search
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
30
1<?php
2
3namespace Domain\CostCenter\QueryBuilders;
4
5use Domain\CostCenter\DTOs\SearchResourceCenterDTO;
6use Illuminate\Database\Eloquent\Builder;
7
8class ResourceCenterQueryBuilder extends Builder
9{
10    /**
11     * @param SearchResourceCenterDTO $searchResourceCenterDTO
12     * @return $this
13     */
14    public function search(SearchResourceCenterDTO $searchResourceCenterDTO): static
15    {
16        if ($searchResourceCenterDTO->description) {
17            $this->where('description', 'ilike', '%'.$searchResourceCenterDTO->description.'%');
18        }
19
20        if ($searchResourceCenterDTO->acronym) {
21            $this->where('acronym', 'ilike', '%'.$searchResourceCenterDTO->acronym.'%');
22        }
23
24        if ($searchResourceCenterDTO->id) {
25            $this->where('id', $searchResourceCenterDTO->id);
26        }
27
28        $this->whereHas('integration', function (Builder $builder) use ($searchResourceCenterDTO) {
29            if ($searchResourceCenterDTO->resourceCenterCode) {
30                $builder->where('parameters->resource_center_code', $searchResourceCenterDTO->resourceCenterCode);
31            }
32        });
33
34        return $this;
35    }
36}