Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
48 / 48
100.00% covered (success)
100.00%
6 / 6
CRAP
100.00% covered (success)
100.00%
1 / 1
Organisation
100.00% covered (success)
100.00%
48 / 48
100.00% covered (success)
100.00%
6 / 6
10
100.00% covered (success)
100.00%
1 / 1
 getEntityMapping
100.00% covered (success)
100.00%
11 / 11
100.00% covered (success)
100.00%
1 / 1
1
 addConditionOrganisationId
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 addConditionOwnerId
100.00% covered (success)
100.00%
2 / 2
100.00% covered (success)
100.00%
1 / 1
1
 addConditionScopeId
100.00% covered (success)
100.00%
14 / 14
100.00% covered (success)
100.00%
1 / 1
1
 addConditionDepartmentId
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
1
 reverseEntityMapping
100.00% covered (success)
100.00%
11 / 11
100.00% covered (success)
100.00%
1 / 1
5
1<?php
2
3namespace BO\Zmsdb\Query;
4
5class Organisation extends Base implements MappingInterface
6{
7    /**
8     * @var String TABLE mysql table reference
9     */
10    const TABLE = 'organisation';
11
12    #[\Override]
13    public function getEntityMapping()
14    {
15        return [
16            'contact__city' => self::expression(
17                'TRIM(" " FROM SUBSTRING_INDEX(`organisation`.`Anschrift`, " ", -1))'
18            ),
19            'contact__street' => 'organisation.Anschrift',
20            /*
21            'contact__streetNumber' => self::expression(
22                'TRIM("," FROM SUBSTRING_INDEX(SUBSTRING_INDEX(`organisation`.`Anschrift`, ",", 1), " ", -1))'
23            ),
24            'contact__postalCode' => self::expression(
25                'TRIM(" " FROM SUBSTRING_INDEX(SUBSTRING_INDEX(`organisation`.`Anschrift`, " ", -2), " ", 1))'
26            ),
27            'contact__region' => self::expression(
28                'TRIM(" " FROM SUBSTRING_INDEX(`organisation`.`Anschrift`, " ", -1))'
29            ),
30            */
31            'contact__country' => self::expression('"Germany"'),
32            'contact__name' => 'organisation.Organisationsname',
33            'name' => 'organisation.Organisationsname',
34            'id' => 'organisation.OrganisationsID',
35            'preferences__ticketPrinterActivation' => 'organisation.kiosk_activation'
36        ];
37    }
38
39    public function addConditionOrganisationId($organisationId)
40    {
41        $this->query->where('organisation.OrganisationsID', '=', $organisationId);
42        return $this;
43    }
44
45    public function addConditionOwnerId($ownerId)
46    {
47        $this->query->where('organisation.KundenID', '=', $ownerId);
48        return $this;
49    }
50
51    public function addConditionScopeId($scopeId)
52    {
53        $this->leftJoin(
54            new Alias('behoerde', 'department'),
55            'department.OrganisationsID',
56            '=',
57            'organisation.OrganisationsID'
58        );
59        $this->leftJoin(
60            new Alias('standort', 'scope'),
61            'scope.BehoerdenID',
62            '=',
63            'department.BehoerdenID'
64        );
65        $this->query->where('scope.StandortID', '=', $scopeId);
66        return $this;
67    }
68
69    public function addConditionDepartmentId($departmentId)
70    {
71        $this->leftJoin(
72            new Alias('behoerde', 'department'),
73            'department.OrganisationsID',
74            '=',
75            'organisation.OrganisationsID'
76        );
77        $this->query->where('department.BehoerdenID', '=', $departmentId);
78        return $this;
79    }
80
81    public function reverseEntityMapping(\BO\Zmsentities\Organisation $entity, $parentId = null)
82    {
83        $data = array();
84        if (null !== $parentId) {
85            $data['KundenID'] = $parentId;
86        }
87        $data['Organisationsname'] = $entity->name;
88        $data['InfoBezirkID'] = 14;
89        $data['Anschrift'] = (isset($entity->contact['street'])) ? $entity->contact['street'] : '';
90        $data['kiosk_activation'] = ($entity->getPreference('ticketPrinterActivation')) ? 1 : 0;
91        $data = array_filter($data, function ($value) {
92            return ($value !== null && $value !== false);
93        });
94        return $data;
95    }
96}