Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
RequestDeliveryQueryBuilder
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 1
42
0.00% covered (danger)
0.00%
0 / 1
 search
0.00% covered (danger)
0.00%
0 / 14
0.00% covered (danger)
0.00%
0 / 1
42
1<?php
2
3namespace Domain\Request\QueryBuilders;
4
5use Domain\Request\DTOs\RequestDeliverySearchDTO;
6use Illuminate\Database\Eloquent\Builder;
7
8class RequestDeliveryQueryBuilder extends Builder
9{
10
11    /**
12     * @param RequestDeliverySearchDTO $requestSearchDTO
13     * @return $this
14     */
15    public function search(RequestDeliverySearchDTO $requestDeliverySearchDTO): static
16    {
17        if ($requestDeliverySearchDTO->picking_order_id) {
18            $this->where('picking_order_id', $requestDeliverySearchDTO->picking_order_id);
19        }
20
21        if ($requestDeliverySearchDTO->stock_io_id) {
22            $this->whereHas('stockIOProduct', function ($builder) use ($requestDeliverySearchDTO) {
23                $builder->join('stock_ios', 'stock_io_products.stock_io_id', '=', 'stock_ios.id')
24                    ->where('stock_ios.id', $requestDeliverySearchDTO->stock_io_id);
25            });
26        }
27
28        if ($requestDeliverySearchDTO->stock_io_product_id) {
29            $this->where('stock_io_product_id', $requestDeliverySearchDTO->stock_io_product_id);
30        }
31
32        if ($requestDeliverySearchDTO->receiver) {
33            $this->where('receiver_id', $requestDeliverySearchDTO->receiver);
34        }
35
36
37        if ($requestDeliverySearchDTO->store_keeper) {
38            $this->where('store_keeper_id', $requestDeliverySearchDTO->store_keeper);
39        }
40
41        return $this;
42    }
43}