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

addGroupToCalendar()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 15
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 10
c 1
b 0
f 0
nc 2
nop 2
dl 0
loc 15
rs 9.9332
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