|
- <?php
-
- namespace Lc\CaracoleBundle\Model\Address;
-
- use Doctrine\ORM\Mapping as ORM;
- use Lc\CaracoleBundle\Model\Merchant\MerchantInterface;
- use Lc\CaracoleBundle\Model\PointSale\PointSaleInterface;
- use Lc\SovBundle\Doctrine\Extension\StatusInterface;
- use Lc\SovBundle\Doctrine\Extension\StatusTrait;
- use Lc\SovBundle\Doctrine\Pattern\AbstractLightEntity;
- use Lc\SovBundle\Model\User\UserInterface;
-
- /**
- * @ORM\MappedSuperclass()
- */
- abstract class AddressModel extends AbstractLightEntity implements StatusInterface
- {
- use StatusTrait;
-
- const TYPE_INDIVIDUAL = 'individual';
- const TYPE_LEGAL_PERSON = 'legal-person';
-
- /**
- * @ORM\ManyToOne(targetEntity="Lc\SovBundle\Model\User\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\CaracoleBundle\Model\PointSale\PointSaleInterface", mappedBy="address", cascade={"persist", "remove"})
- */
- protected $pointSale;
-
- /**
- * @ORM\OneToOne(targetEntity="Lc\CaracoleBundle\Model\Merchant\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();
- }
-
- // getAddressSummary
- 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(): ?UserInterface
- {
- return $this->user;
- }
-
- public function setUser(?UserInterface $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(): ?PointSaleInterface
- {
- return $this->pointSale;
- }
-
- public function setPointSale(PointSaleInterface $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(): ?MerchantInterface
- {
- return $this->merchant;
- }
-
- public function setMerchant(MerchantInterface $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;
- }
- }
|