Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
29 / 29
100.00% covered (success)
100.00%
4 / 4
CRAP
100.00% covered (success)
100.00%
1 / 1
Owner
100.00% covered (success)
100.00%
29 / 29
100.00% covered (success)
100.00%
4 / 4
5
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%
8 / 8
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
 reverseEntityMapping
100.00% covered (success)
100.00%
8 / 8
100.00% covered (success)
100.00%
1 / 1
2
1<?php
2
3namespace BO\Zmsdb\Query;
4
5class Owner extends Base implements MappingInterface
6{
7    /**
8     * @var String TABLE mysql table reference
9     */
10    const TABLE = 'kunde';
11
12    #[\Override]
13    public function getEntityMapping()
14    {
15        return [
16            'contact__city' => self::expression(
17                'TRIM(" " FROM SUBSTRING_INDEX(`owner`.`Anschrift`, " ", -1))'
18            ),
19            'contact__street' => 'owner.Anschrift',
20            /*
21            'contact__streetNumber' => self::expression(
22                'TRIM("," FROM SUBSTRING_INDEX(SUBSTRING_INDEX(`owner`.`Anschrift`, ",", 1), " ", -1))'
23            ),
24            'contact__postalCode' => self::expression(
25                'TRIM(" " FROM SUBSTRING_INDEX(SUBSTRING_INDEX(`owner`.`Anschrift`, " ", -2), " ", 1))'
26            ),
27            'contact__region' => self::expression(
28                'TRIM(" " FROM SUBSTRING_INDEX(`owner`.`Anschrift`, " ", -1))'
29            ),
30            */
31            'contact__country' => self::expression('"Germany"'),
32            'contact__name' => 'owner.Kundenname',
33            'id' => 'owner.KundenID',
34            'name' => 'owner.Kundenname',
35            'url' => 'owner.TerminURL'
36        ];
37    }
38
39    public function addConditionOrganisationId($organisationId)
40    {
41        $this->leftJoin(
42            new Alias(Organisation::TABLE, 'ownerorganisation'),
43            'owner.KundenID',
44            '=',
45            'ownerorganisation.KundenID'
46        );
47        $this->query->where('ownerorganisation.OrganisationsID', '=', $organisationId);
48        return $this;
49    }
50
51    public function addConditionOwnerId($ownerId)
52    {
53        $this->query->where('owner.KundenID', '=', $ownerId);
54        return $this;
55    }
56
57    public function reverseEntityMapping(\BO\Zmsentities\Owner $entity)
58    {
59        $data = array();
60        $data['Anschrift'] = $entity->contact['street'];
61        $data['Kundenname'] = $entity->name;
62        $data['TerminUrl'] = $entity->url;
63        $data = array_filter($data, function ($value) {
64            return ($value !== null && $value !== false);
65        });
66            return $data;
67    }
68}