Lines
100.00%
21 / 21
Functions and Methods
100.00%
3 / 3
Classes and Traits
100.00%
1 / 1
| Name | Lines | Functions and Methods | CRAP | Classes and Traits | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| OwnerList | 100.00% | 21 / 21 | 100.00% | 3 / 3 | 10 | 100.00% | 1 / 1 | |||
| getOrganisationsByOwnerId | 100.00% | 7 / 7 | 100.00% | 1 / 1 | 4 | |||||
| toDepartmentListByOrganisationName | 100.00% | 6 / 6 | 100.00% | 1 / 1 | 3 | |||||
| withAccess | 100.00% | 8 / 8 | 100.00% | 1 / 1 | 3 | |||||
| 1 | <?php | |
| 2 | ||
| 3 | namespace BO\Zmsentities\Collection; | |
| 4 | ||
| 5 | /** | |
| 6 | * @extends Base<\BO\Zmsentities\Owner> | |
| 7 | */ | |
| 8 | class OwnerList extends Base | |
| 9 | { | |
| 10 | public const string ENTITY_CLASS = '\BO\Zmsentities\Owner'; | |
| 11 | ||
| 12 | public function getOrganisationsByOwnerId(mixed $entityId): mixed | |
| 13 | { | |
| 14 | $organisationList = new OrganisationList(); | |
| 15 | foreach ($this as $entity) { | |
| 16 | if ($entityId == $entity->id) { | |
| 17 | foreach ($entity->organisations as $organisation) { | |
| 18 | $organisation = new \BO\Zmsentities\Organisation($organisation); | |
| 19 | $organisationList->addEntity($organisation); | |
| 20 | } | |
| 21 | } | |
| 22 | } | |
| 23 | return $organisationList->sortByName(); | |
| 24 | } | |
| 25 | ||
| 26 | /** | |
| 27 | * @return array[] | |
| 28 | * | |
| 29 | */ | |
| 30 | public function toDepartmentListByOrganisationName(): array | |
| 31 | { | |
| 32 | $list = array(); | |
| 33 | foreach ($this as $entity) { | |
| 34 | $organisationList = $this->getOrganisationsByOwnerId($entity->id); | |
| 35 | foreach ($organisationList as $organisation) { | |
| 36 | $list[$entity->name][$organisation->name] = $organisation->departments; | |
| 37 | } | |
| 38 | } | |
| 39 | return $list; | |
| 40 | } | |
| 41 | ||
| 42 | public function withAccess(\BO\Zmsentities\Useraccount $useraccount): static | |
| 43 | { | |
| 44 | $list = new static(); | |
| 45 | foreach ($this as $owner) { | |
| 46 | $owner = clone $owner; | |
| 47 | $owner->organisations = $owner->getOrganisationList()->withAccess($useraccount); | |
| 48 | $owner->organisations->sortByName(); | |
| 49 | if ($owner->hasAccess($useraccount)) { | |
| 50 | $list[] = $owner; | |
| 51 | } | |
| 52 | } | |
| 53 | return $list; | |
| 54 | } | |
| 55 | } |