ReportController::indexAction()   B
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 24
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 24
ccs 0
cts 19
cp 0
rs 8.9713
cc 1
eloc 14
nc 1
nop 1
crap 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Loevgaard\DandomainConsignmentBundle\Controller;
6
7
use Doctrine\ORM\EntityManager;
8
use Loevgaard\DandomainConsignment\Entity\Report;
9
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
10
use Symfony\Component\HttpFoundation\Request;
11
use Symfony\Component\HttpFoundation\Response;
12
13
class ReportController extends Controller
14
{
15
    /**
16
     * @param Request $request
17
     *
18
     * @return Response
19
     */
20
    public function indexAction(Request $request)
21
    {
22
        /** @var EntityManager $em */
23
        $em = $this->getDoctrine()->getManager();
24
        $paginator = $this->get('knp_paginator');
25
26
        $qb = $em->createQueryBuilder();
27
        $qb->select('r, s')
28
            ->from('Loevgaard\DandomainConsignment\Entity\Report', 'r')
29
            ->leftJoin('r.stockMovements', 's')
30
            ->addOrderBy('r.createdAt', 'desc')
31
        ;
32
33
        /** @var Report[] $reports */
34
        $reports = $paginator->paginate(
35
            $qb->getQuery(),
36
            $request->query->getInt('page', 1),
37
            $request->query->getInt('limit', 50)
38
        );
39
40
        return $this->render('@LoevgaardDandomainConsignment/report/index.html.twig', [
41
            'reports' => $reports,
42
        ]);
43
    }
44
45
    /**
46
     * @param Report $report
47
     *
48
     * @return Response
49
     */
50
    public function showAction(Report $report)
51
    {
52
        return $this->render('@LoevgaardDandomainConsignment/report/show.html.twig', [
53
            'report' => $report,
54
        ]);
55
    }
56
}
57