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