Periode.php 2.22 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
<?php

namespace Application\Service;

use Doctrine\ORM\QueryBuilder;


/**
 * Description of Periode
 *
 * @author Laurent LÉCLUSE <laurent.lecluse at unicaen.fr>
 */
13
class Periode extends AbstractEntityService
14
{
15
16
17
18
19
20
21
22
23
    /**
     * Périodes d'enseignement
     *
     * @var \Application\Entity\Db\Periode[]
     */
    protected $enseignement;



24
25

    /**
26
     * retourne la classe des entités
27
     *
28
29
     * @return string
     * @throws RuntimeException
30
     */
31
32
33
34
    public function getEntityClass()
    {
        return 'Application\Entity\Db\Periode';
    }
35
36

    /**
37
     * Retourne l'alias d'entité courante
38
     *
39
     * @return string
40
     */
41
42
    public function getAlias(){
        return 'per';
43
44
    }

45
46
47
48
49
50
    /**
     * Retourne la liste des périodes d'enseignement
     *
     * @param QueryBuilder|null $queryBuilder
     * @return QueryBuilder
     */
51
    public function finderByEnseignement( QueryBuilder $qb=null, $alias=null )
52
    {
53
54
        list($qb,$alias) = $this->initQuery($qb, $alias);
        $qb->andWhere("$alias.enseignement = 1");
55
56
        return $qb;
    }
57
58

    /**
59
     * Retourne la liste des périodes
60
     *
61
62
     * @param QueryBuilder|null $queryBuilder
     * @return Application\Entity\Db\Periode[]
63
     */
64
    public function getList( QueryBuilder $qb=null, $alias=null )
65
    {
66
67
68
        list($qb,$alias) = $this->initQuery($qb, $alias);
        $qb->orderBy("$alias.ordre");
        return parent::getList($qb, $alias);
69
    }
lecluse's avatar
lecluse committed
70

71
72
73
74
75
76
77
78
79
80
81
82
83
    /**
     * Retourne la liste dezs périodes d'enseignement
     *
     * @return \Application\Entity\Db\Periode[]
     */
    public function getEnseignement()
    {
        if (! $this->enseignement){
            $this->enseignement = $this->getList( $this->finderByEnseignement() );
        }
        return $this->enseignement;
    }

lecluse's avatar
lecluse committed
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
    /**
     * Retourne le semestre 1
     *
     * @return \Application\Entity\Db\Periode
     */
    public function getSemestre1()
    {
        return $this->getRepo()->findOneBy(array('code' => PeriodeEntity::SEMESTRE_1));
    }

    /**
     * Retourne le semestre 2
     *
     * @return \Application\Entity\Db\Periode
     */
    public function getSemestre2()
    {
        return $this->getRepo()->findOneBy(array('code' => PeriodeEntity::SEMESTRE_2));
    }
103
}