DeactivationPassModule   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Test Coverage

Coverage 13.64%

Importance

Changes 3
Bugs 1 Features 1
Metric Value
wmc 5
c 3
b 1
f 1
lcom 1
cbo 4
dl 0
loc 33
ccs 3
cts 22
cp 0.1364
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
B deactivation() 0 22 4
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: device
5
 * Date: 09.03.16
6
 * Time: 19:01
7
 */
8
9
namespace AppBundle\Services;
10
11
12
use AppBundle\Entity\ModuleUser;
13
use AppBundle\Entity\PassModule;
14
use Symfony\Bridge\Doctrine\RegistryInterface;
15
16
class DeactivationPassModule
17
{
18
    private $doctrine;
19
20 2
    public function __construct(RegistryInterface $registryInterface)
21
    {
22 2
        $this->doctrine = $registryInterface;
23 2
    }
24
25
    public function deactivation(PassModule $passModule, $finishTime = null)
26
    {
27
        $em = $this->doctrine->getManager();
28
        $moduleUser = $em->getRepository('AppBundle:ModuleUser')
29
            ->find($passModule->getModuleUser());
30
        $module = $em->getRepository('AppBundle:Module')
31
            ->find($moduleUser->getModule());
32
33
        if ($finishTime) {
34
            $passModule->setTimeFinish($finishTime);
35
        }
36
        $passModule->setIsActive(false);
37
        $em->flush();
38
39
        if ($passModule->getPercentResult() >= $module->getPersentSuccess()) {
40
            $moduleUser->setStatus(ModuleUser::STATUS_SUCCESS);
41
            $moduleUser->setRating($passModule->getRating());
42
        } else if ($moduleUser->getCountPassModules() >= $module->getAttempts()){
43
                $moduleUser->setStatus(ModuleUser::STATUS_FAILED);
44
        }
45
        $em->flush();
46
    }
47
48
}
49