CursoRepository   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 24
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Test Coverage

Coverage 0%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 1
c 1
b 0
f 0
lcom 0
cbo 4
dl 0
loc 24
ccs 0
cts 18
cp 0
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
A getResumenPorFecha() 0 21 1
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