<?php namespace Lc\ShopBundle\Model; use Doctrine\ORM\Mapping as ORM; /** * @ORM\MappedSuperclass() */ abstract class Address extends AbstractEntity { const TYPE_INDIVIDUAL = 'individual'; const TYPE_LEGAL_PERSON = 'legal-person'; /** * @ORM\ManyToOne(targetEntity="Lc\ShopBundle\Context\UserInterface", inversedBy="addresses") * @ORM\JoinColumn(nullable=true) */ protected $user; /** * @ORM\Column(type="string", length=255) */ protected $title; /** * @ORM\Column(type="string", length=31) */ protected $type; /** * @ORM\Column(type="boolean", nullable=true) */ protected $civility; /** * @ORM\Column(type="string", length=127, nullable=true) */ protected $lastname; /** * @ORM\Column(type="string", length=127, nullable=true) */ protected $firstname; /** * @ORM\Column(type="text") */ protected $address; /** * @ORM\Column(type="string", length=31) */ protected $zip; /** * @ORM\Column(type="string", length=255) */ protected $city; /** * @ORM\Column(type="string", length=255) */ protected $country; /** * @ORM\Column(type="string", length=255, nullable=true) */ protected $company; /** * @ORM\Column(type="string", length=127, nullable=true) */ protected $siret; /** * @ORM\Column(type="string", length=127, nullable=true) */ protected $tva; /** * @ORM\Column(type="array", nullable=true) */ protected $phone; /** * @ORM\Column(type="text", nullable=true) */ protected $comment; /** * @ORM\OneToOne(targetEntity="Lc\ShopBundle\Context\PointSaleInterface", mappedBy="address", cascade={"persist", "remove"}) */ protected $pointSale; /** * @ORM\OneToOne(targetEntity="Lc\ShopBundle\Context\MerchantInterface", mappedBy="address", cascade={"persist", "remove"}) */ protected $merchant; /** * @ORM\Column(type="text", nullable=true) */ protected $deliveryInfos; public function __construct() { $this->phone = [] ; } public function __toString() { return $this->getTitle() . ' - ' . $this->getZip() . ' ' . $this->getCity(); } public function getSummaryShort() { return $this->getAddress() . ' - ' . $this->getZip() . ' ' . $this->getCity(); } public function getSummary($withTitle = true) { $html = ''; if ($this->getTitle() && $withTitle) { $html .= $this->getTitle() . '<br />'; } if ($this->getLastname() || $this->getFirstname()) { $html .= $this->getLastname() . ' ' . $this->getFirstname() . '<br />'; } if ($this->getAddress()) { $html .= $this->getAddress() . '<br />'; } if ($this->getZip() || $this->getCity()) { $html .= $this->getZip() . ' ' . $this->getCity() . '<br />'; } if ($this->getPhone()) { foreach($this->getPhone() as $phone) { $html .= 'Tél. ' . $phone.'<br />'; } } return $html; } public function getUser(): ?User { return $this->user; } public function setUser(?User $user): self { $this->user = $user; return $this; } public function getTitle(): ?string { return $this->title; } public function setTitle(string $title): self { $this->title = $title; return $this; } public function getType(): ?string { return $this->type; } public function setType(string $type): self { $this->type = $type; return $this; } public function getCivility(): ?bool { return $this->civility; } public function setCivility(?bool $civility): self { $this->civility = $civility; return $this; } public function getLastname(): ?string { return $this->lastname; } public function setLastname(?string $lastname): self { $this->lastname = $lastname; return $this; } public function getFirstname(): ?string { return $this->firstname; } public function setFirstname(?string $firstname): self { $this->firstname = $firstname; return $this; } public function getAddress(): ?string { return $this->address; } public function setAddress(string $address): self { $this->address = $address; return $this; } public function getZip(): ?string { return $this->zip; } public function setZip(string $zip): self { $this->zip = $zip; return $this; } public function getCity(): ?string { return $this->city; } public function setCity(string $city): self { $this->city = $city; return $this; } public function getCountry(): ?string { return $this->country; } public function setCountry(string $country): self { $this->country = $country; return $this; } public function getCompany(): ?string { return $this->company; } public function setCompany(?string $company): self { $this->company = $company; return $this; } public function getSiret(): ?string { return $this->siret; } public function setSiret(?string $siret): self { $this->siret = $siret; return $this; } public function getTva(): ?string { return $this->tva; } public function setTva(?string $tva): self { $this->tva = $tva; return $this; } public function getPhone(): ?array { return $this->phone; } public function setPhone(?array $phone): self { $this->phone = $phone; return $this; } public function getComment(): ?string { return $this->comment; } public function setComment(?string $comment): self { $this->comment = $comment; return $this; } public function getPointSale(): ?PointSale { return $this->pointSale; } public function setPointSale(PointSale $pointSale): self { $this->pointSale = $pointSale; // set the owning side of the relation if necessary if ($pointSale->getAddress() !== $this) { $pointSale->setAddress($this); } return $this; } public function getMerchant(): ?Merchant { return $this->merchant; } public function setMerchant(Merchant $merchant): self { $this->merchant = $merchant; // set the owning side of the relation if necessary if ($merchant->getAddress() !== $this) { $merchant->setAddress($this); } return $this; } public function getDeliveryInfos(): ?string { return $this->deliveryInfos; } public function setDeliveryInfos(?string $deliveryInfos): self { $this->deliveryInfos = $deliveryInfos; return $this; } }