Passed
Pull Request — master (#6053)
by
unknown
07:47
created

CAttendanceCalendarRelGroupRepository   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 12
c 1
b 0
f 0
dl 0
loc 25
rs 10
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A addGroupToCalendar() 0 15 2
1
<?php
2
3
/* For licensing terms, see /license.txt */
4
5
declare(strict_types=1);
6
7
namespace Chamilo\CourseBundle\Repository;
8
9
use Chamilo\CoreBundle\Repository\ResourceRepository;
10
use Chamilo\CourseBundle\Entity\CAttendanceCalendar;
11
use Chamilo\CourseBundle\Entity\CAttendanceCalendarRelGroup;
12
use Chamilo\CourseBundle\Entity\CGroup;
13
use Doctrine\Persistence\ManagerRegistry;
14
15
class CAttendanceCalendarRelGroupRepository extends ResourceRepository
16
{
17
    public function __construct(ManagerRegistry $registry)
18
    {
19
        parent::__construct($registry, CAttendanceCalendarRelGroup::class);
20
    }
21
22
    /**
23
     * Add a group relation to a calendar entry.
24
     */
25
    public function addGroupToCalendar(int $calendarId, int $groupId): void
26
    {
27
        $em = $this->getEntityManager();
28
        $existingRelation = $this->findOneBy([
29
            'attendanceCalendar' => $calendarId,
30
            'group' => $groupId,
31
        ]);
32
33
        if (!$existingRelation) {
34
            $relation = new CAttendanceCalendarRelGroup();
35
            $relation->setAttendanceCalendar($em->getReference(CAttendanceCalendar::class, $calendarId));
36
            $relation->setGroup($em->getReference(CGroup::class, $groupId));
37
38
            $em->persist($relation);
39
            $em->flush();
40
        }
41
    }
42
}
43