|
- <?php
-
- namespace Lc\ShopBundle\Model;
-
- use App\Entity\Visitor;
- use Doctrine\Common\Collections\ArrayCollection;
- use Doctrine\Common\Collections\Collection;
- use Doctrine\ORM\Mapping as ORM;
- use Lc\ShopBundle\Context\FilterMerchantInterface;
-
- /**
- * @ORM\MappedSuperclass()
- */
- abstract class OrderShop extends AbstractEntity implements FilterMerchantInterface
- {
-
- /**
- * @ORM\ManyToOne(targetEntity="Lc\ShopBundle\Context\MerchantInterface", inversedBy="productFamilies")
- * @ORM\JoinColumn(nullable=false)
- */
- protected $merchant;
-
- /**
- * @ORM\ManyToOne(targetEntity="Lc\ShopBundle\Context\UserInterface", inversedBy="orders")
- */
- protected $user;
-
- /**
- * @ORM\ManyToOne(targetEntity="App\Entity\Visitor", inversedBy="orders")
- */
- protected $visitor;
-
- /**
- * @ORM\ManyToOne(targetEntity="Lc\ShopBundle\Context\AddressInterface", inversedBy="order")
- */
- protected $invoiceAddress;
-
- /**
- * @ORM\Column(type="text", nullable=true)
- */
- protected $comment;
-
- /**
- * @ORM\Column(type="boolean", nullable=true)
- */
- protected $autoPayment;
-
- /**
- * @ORM\Column(type="string", length=31, nullable=true)
- */
- protected $meanPayment;
-
- /**
- * @ORM\Column(type="boolean", nullable=true)
- */
- protected $tillerSynchronisation;
-
- /**
- * @ORM\OneToMany(targetEntity="Lc\ShopBundle\Context\OrderStatusHistoryInterface", mappedBy="orderShop", orphanRemoval=true)
- */
- protected $orderStatusHistories;
-
- /**
- * @ORM\OneToMany(targetEntity="Lc\ShopBundle\Context\OrderProductInterface", mappedBy="orderShop", cascade={"persist", "remove"}, orphanRemoval=true)
- */
- protected $orderProducts;
-
- /**
- * @ORM\OneToMany(targetEntity="Lc\ShopBundle\Context\CreditHistoryInterface", mappedBy="orderShop", orphanRemoval=true)
- */
- protected $creditHistories;
-
- /**
- * @ORM\ManyToOne(targetEntity="Lc\ShopBundle\Context\DocumentInvoiceInterface", inversedBy="orderShops")
- */
- protected $documentInvoice;
-
- /**
- * @ORM\ManyToOne(targetEntity="Lc\ShopBundle\Context\DocumentQuotationInterface", inversedBy="orderShops")
- */
- protected $documentQuotation;
-
- /**
- * @ORM\ManyToOne(targetEntity="Lc\ShopBundle\Context\DocumentDeliveryNoteInterface", inversedBy="orderShops")
- */
- protected $documentDeliveryNote;
-
- /**
- * @ORM\Column(type="text", nullable=true)
- */
- protected $infosDelivery;
-
- public function __construct()
- {
- $this->orderStatusHistories = new ArrayCollection();
- $this->orderProducts = new ArrayCollection();
- $this->creditHistories = new ArrayCollection();
- }
-
- public function getDateCreated()
- {
- $orderStatusHistory = $this->getOrderStatusHistory('new') ;
- if($orderStatusHistory) {
- return $orderStatusHistory->getCreatedAt() ;
- }
-
- return null ;
- }
-
- public function getOrderStatusHistory($status)
- {
- $orderStatusHistories = $this->getOrderStatusHistories() ;
- if(count($orderStatusHistories) > 0) {
- foreach($orderStatusHistories as $orderStatusHistory) {
- if($orderStatusHistory->getOrderStatus() == $status) {
- return $orderStatusHistory ;
- }
- }
- }
-
- return null ;
- }
-
- public function getMerchant(): ?Merchant
- {
- return $this->merchant;
- }
-
- public function setMerchant(?Merchant $merchant): self
- {
- $this->merchant = $merchant;
-
- return $this;
- }
-
- public function getUser(): ?User
- {
- return $this->user;
- }
-
- public function setUser(?User $user): self
- {
- $this->user = $user;
-
- return $this;
- }
-
- public function getInvoiceAddress(): ?Address
- {
- return $this->invoiceAddress;
- }
-
- public function setInvoiceAddress(?Address $invoiceAddress): self
- {
- $this->invoiceAddress = $invoiceAddress;
-
- return $this;
- }
-
- public function getComment(): ?string
- {
- return $this->comment;
- }
-
- public function setComment(?string $comment): self
- {
- $this->comment = $comment;
-
- return $this;
- }
-
- public function getAutoPayment(): ?bool
- {
- return $this->autoPayment;
- }
-
- public function setAutoPayment(bool $autoPayment): self
- {
- $this->autoPayment = $autoPayment;
-
- return $this;
- }
-
- public function getMeanPayment(): ?string
- {
- return $this->meanPayment;
- }
-
- public function setMeanPayment(string $meanPayment): self
- {
- $this->meanPayment = $meanPayment;
-
- return $this;
- }
-
- /**
- * @return Collection|OrderStatusHistory[]
- */
- public function getOrderStatusHistories(): Collection
- {
- return $this->orderStatusHistories;
- }
-
- public function addOrderStatusHistory(OrderStatusHistory $orderStatusHistory): self
- {
- if (!$this->orderStatusHistories->contains($orderStatusHistory)) {
- $this->orderStatusHistories[] = $orderStatusHistory;
- $orderStatusHistory->setOrderShop($this);
- }
-
- return $this;
- }
-
- public function removeOrderStatusHistory(OrderStatusHistory $orderStatusHistory): self
- {
- if ($this->orderStatusHistories->contains($orderStatusHistory)) {
- $this->orderStatusHistories->removeElement($orderStatusHistory);
- // set the owning side to null (unless already changed)
- if ($orderStatusHistory->getOrderShop() === $this) {
- $orderStatusHistory->setOrderShop(null);
- }
- }
-
- return $this;
- }
-
- /**
- * @return Collection|OrderProduct[]
- */
- public function getOrderProducts(): Collection
- {
- return $this->orderProducts;
- }
-
- public function addOrderProduct(OrderProduct $orderProduct): self
- {
- if (!$this->orderProducts->contains($orderProduct)) {
- $this->orderProducts[] = $orderProduct;
- $orderProduct->setOrderShop($this);
- }
-
- return $this;
- }
-
- public function removeOrderProduct(OrderProduct $orderProduct): self
- {
- if ($this->orderProducts->contains($orderProduct)) {
- $this->orderProducts->removeElement($orderProduct);
- // set the owning side to null (unless already changed)
- if ($orderProduct->getOrderShop() === $this) {
- $orderProduct->setOrderShop(null);
- }
- }
-
- return $this;
- }
-
- /**
- * @return Collection|CreditHistory[]
- */
- public function getCreditHistories(): Collection
- {
- return $this->creditHistories;
- }
-
- public function addCreditHistory(CreditHistory $creditHistory): self
- {
- if (!$this->creditHistories->contains($creditHistory)) {
- $this->creditHistories[] = $creditHistory;
- $creditHistory->setOrderShop($this);
- }
-
- return $this;
- }
-
- public function removeCreditHistory(CreditHistory $creditHistory): self
- {
- if ($this->creditHistories->contains($creditHistory)) {
- $this->creditHistories->removeElement($creditHistory);
- // set the owning side to null (unless already changed)
- if ($creditHistory->getOrderShop() === $this) {
- $creditHistory->setOrderShop(null);
- }
- }
-
- return $this;
- }
-
- public function getDocumentInvoice(): ?DocumentInvoice
- {
- return $this->documentInvoice;
- }
-
- public function setDocumentInvoice(?DocumentInvoice $documentInvoice): self
- {
- $this->documentInvoice = $documentInvoice;
-
- return $this;
- }
-
- public function getDocumentQuotation(): ?DocumentQuotation
- {
- return $this->documentQuotation;
- }
-
- public function setDocumentQuotation(?DocumentQuotation $documentQuotation): self
- {
- $this->documentQuotation = $documentQuotation;
-
- return $this;
- }
-
- public function getDocumentDeliveryNote(): ?DocumentDeliveryNote
- {
- return $this->documentDeliveryNote;
- }
-
- public function setDocumentDeliveryNote(?DocumentDeliveryNote $documentDeliveryNote): self
- {
- $this->documentDeliveryNote = $documentDeliveryNote;
-
- return $this;
- }
-
- public function getVisitor(): ?Visitor
- {
- return $this->visitor;
- }
-
- public function setVisitor(?Visitor $visitor): self
- {
- $this->visitor = $visitor;
-
- return $this;
- }
-
- public function getInfosDelivery(): ?string
- {
- return $this->infosDelivery;
- }
-
- public function setInfosDelivery(?string $infosDelivery): self
- {
- $this->infosDelivery = $infosDelivery;
-
- return $this;
- }
- }
|