Completed
Pull Request — dev (#40)
by
unknown
03:50
created

selectRequestFormsByParams()   C

Complexity

Conditions 7
Paths 8

Size

Total Lines 29
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 56

Importance

Changes 0
Metric Value
dl 0
loc 29
ccs 0
cts 25
cp 0
rs 6.7272
c 0
b 0
f 0
cc 7
eloc 16
nc 8
nop 1
crap 56
1
<?php
2
3
namespace AppBundle\Repository;
4
5
use AppBundle\Entity\DTO\Filter;
6
7
/**
8
 * FormRequestRepository.
9
 *
10
 * This class was generated by the Doctrine ORM. Add your own custom
11
 * repository methods below.
12
 */
13
class FormRequestRepository extends \Doctrine\ORM\EntityRepository
14
{
15
    public function selectRequestFormsByParams(Filter $filter)
16
    {
17
        $query = $this->createQueryBuilder('f')
18
            ->leftJoin('f.type', 't')
19
            ->leftJoin('f.user', 'u')
20
            ->orderBy('f.createdAt', 'DESC')
21
        ;
22
23
        if ($filter->type && $filter->type != 'All') {
24
            $query->andWhere('t.name = ?1')
25
                ->setParameter('1', $filter->type)
26
            ;
27
        }
28
29
        if ($filter->decision && $filter->decision != 'All') {
30
            $query->andWhere('f.status = ?2')
31
                ->setParameter('2', $filter->decision)
32
            ;
33
        }
34
35
        if ($filter->start && $filter->end) {
36
                $query->andWhere('f.createdAt BETWEEN ?3 AND ?4')
37
                    ->setParameter('3', $filter->getStart())
38
                    ->setParameter('4', $filter->getEnd())
39
                ;
40
        }
41
42
        return $query->getQuery();
43
    }
44
}
45