Passed
Push — master ( df9557...e5317d )
by Jan
04:48 queued 11s
created

DepartmentFixture::load()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 47
Code Lines 38

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 38
nc 1
nop 1
dl 0
loc 47
rs 9.312
c 1
b 0
f 0
1
<?php
2
3
namespace App\DataFixtures;
4
5
use App\Entity\Department;
6
use Doctrine\Bundle\FixturesBundle\Fixture;
7
use Doctrine\ORM\EntityManagerInterface;
8
use Doctrine\Persistence\ObjectManager;
9
10
class DepartmentFixture extends Fixture
11
{
12
    public const DEPARTMENT1_REFERENCE = 'department1';
13
    public const DEPARTMENT2_REFERENCE = 'department2';
14
    public const DEPARTMENT3_REFERENCE = 'department3';
15
    public const DEPARTMENT4_REFERENCE = 'department4';
16
    public const DEPARTMENT5_REFERENCE = 'department5';
17
18
    protected $em;
19
20
    public function __construct(EntityManagerInterface $entityManager)
21
    {
22
        $this->em = $entityManager;
23
    }
24
25
    public function load(ObjectManager $manager)
26
    {
27
        //Reset autoincrement
28
        $this->em->getConnection()
29
            ->exec('ALTER TABLE `departments` AUTO_INCREMENT = 1;');
30
31
        $department = new Department();
32
        $department->setName('Department 1');
33
        $department->setType('fsr');
34
        $this->addReference(self::DEPARTMENT1_REFERENCE, $department);
35
        $manager->persist($department);
36
37
        $department = new Department();
38
        $department->setName('Department 2');
39
        $department->setType('misc');
40
        $department->setBlocked(true);
41
        $this->addReference(self::DEPARTMENT2_REFERENCE, $department);
42
        $manager->persist($department);
43
44
        $department = new Department();
45
        $department->setName('Department 3');
46
        $department->setType('fsr');
47
        $department->setBankAccount($this->getReference(BankAccountFixture::BANK_ACCOUNT1_REFERENCE));
48
        $department->setComment('Test');
49
        $department->setContactEmails(['[email protected]', '[email protected]']);
50
        $department->setEmailHhv(['[email protected]']);
51
        $department->setEmailTreasurer(['[email protected]', '[email protected]']);
52
        $this->addReference(self::DEPARTMENT3_REFERENCE, $department);
53
        $manager->persist($department);
54
55
        $department = new Department();
56
        $department->setName('Department 4');
57
        $department->setType('fsr');
58
        $department->setBankAccount($this->getReference(BankAccountFixture::BANK_ACCOUNT2_REFERENCE));
59
        $department->setContactEmails(['[email protected]']);
60
        $this->addReference(self::DEPARTMENT4_REFERENCE, $department);
61
        $manager->persist($department);
62
63
        $department = new Department();
64
        $department->setName('Department 5');
65
        $department->setType('section');
66
        $department->setBankAccount($this->getReference(BankAccountFixture::BANK_ACCOUNT3_REFERENCE));
67
        $department->setEmailHhv(['[email protected]']);
68
        $this->addReference(self::DEPARTMENT5_REFERENCE, $department);
69
        $manager->persist($department);
70
71
        $manager->flush();
72
    }
73
}
74