CursoRepository::getResumenPorFecha()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 21
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 21
ccs 0
cts 18
cp 0
rs 9.3142
cc 1
eloc 16
nc 1
nop 1
crap 2
1
<?php
2
/*
3
  GESTCONV - Aplicación web para la gestión de la convivencia en centros educativos
4
5
  Copyright (C) 2015: Luis Ramón López López
6
7
  This program is free software: you can redistribute it and/or modify
8
  it under the terms of the GNU Affero General Public License as published by
9
  the Free Software Foundation, either version 3 of the License, or
10
  (at your option) any later version.
11
12
  This program is distributed in the hope that it will be useful,
13
  but WITHOUT ANY WARRANTY; without even the implied warranty of
14
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
  GNU Affero General Public License for more details.
16
17
  You should have received a copy of the GNU Affero General Public License
18
  along with this program.  If not, see [http://www.gnu.org/licenses/].
19
*/
20
21
namespace AppBundle\Entity;
22
23
use AppBundle\Utils\RepositoryUtils;
24
use Doctrine\ORM\EntityRepository;
25
26
/**
27
 * CursoRepository
28
 *
29
 * Clase repositorio para añadir métodos adicionales
30
 */
31
class CursoRepository extends EntityRepository
32
{
33
    public function getResumenPorFecha($fechas)
34
    {
35
        $data = $this->getEntityManager()
36
            ->getRepository('AppBundle:Curso')
37
            ->createQueryBuilder('c')
38
            ->select('c');
39
40
        $data = RepositoryUtils::resumenConvivencia($data, $fechas)
41
            ->leftJoin('AppBundle:Grupo', 'g', 'WITH', 'g.curso = c')
42
            ->innerJoin('AppBundle:Alumno', 'a', 'WITH', 'a.grupo = g')
43
            ->leftJoin('AppBundle:Parte', 'p', 'WITH', 'p.alumno = a')
44
            ->leftJoin('AppBundle:Sancion', 's', 'WITH', 'p.sancion = s');
45
46
        $data = $data
47
            ->addOrderBy('c.descripcion')
48
            ->groupBy('c.id')
49
            ->getQuery()
50
            ->getResult();
51
52
        return $data;
53
    }
54
}
55