Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 1
Kunde
0.00% covered (danger)
0.00%
0 / 16
0.00% covered (danger)
0.00%
0 / 5
56
0.00% covered (danger)
0.00%
0 / 1
 __construct
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
2
 __toString
0.00% covered (danger)
0.00%
0 / 6
0.00% covered (danger)
0.00%
0 / 1
6
 getArt
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getLieferadressen
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
6
 getKundeLieferadressen
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3declare(strict_types=1);
4
5namespace Satag\AmicronEntityBundle\Entity;
6
7use Doctrine\Common\Collections\ArrayCollection;
8use Doctrine\Common\Collections\Collection;
9use Doctrine\ORM\Mapping as ORM;
10use Satag\AmicronEntityBundle\Traits\DisableAutomappingBlobWorkaround;
11
12/**
13 * @see \Satag\AmicronEntityBundle\Tests\Entity\KundeTest
14 */
15#[ORM\Entity]
16#[ORM\HasLifecycleCallbacks]
17final class Kunde extends Adresse implements \Stringable
18{
19    use DisableAutomappingBlobWorkaround;
20
21    /**
22     * @var Collection<int, KundeLieferadresse>
23     */
24    #[ORM\OneToMany(mappedBy: 'kunde', targetEntity: KundeLieferadresse::class, cascade: ['persist'], fetch: 'LAZY', orphanRemoval: true)]
25    private Collection $kundeLieferadressen;
26
27    public function __construct(
28        bool $interessent = false
29    ) {
30        $this->kundeLieferadressen = new ArrayCollection();
31        $this->setInteressent($interessent);
32        $this->setArt('K');
33        parent::__construct();
34    }
35
36    #[\Override]
37    public function __toString(): string
38    {
39        return \sprintf(
40            '\\\\%s:%s (%s)',
41            $this->isInteressent ? 'Interessent' : 'Kunde',
42            $this->lfdnr,
43            $this->nr
44        );
45    }
46
47    public function getArt(): string
48    {
49        return 'K';
50    }
51
52    /**
53     * @return Collection<int, Kunde>
54     */
55    public function getLieferadressen(): Collection
56    {
57        $lieferadressen = new ArrayCollection();
58        foreach ($this->getKundeLieferadressen() as $kundeLieferadresse) {
59            $lieferadressen->add($kundeLieferadresse->getLieferadresse());
60        }
61
62        return $lieferadressen;
63    }
64
65    /**
66     * @return Collection<int, KundeLieferadresse>
67     */
68    private function getKundeLieferadressen(): Collection
69    {
70        return $this->kundeLieferadressen;
71    }
72}