lib/boab/ecommerce-bundle/src/Entity/Order.php line 12

Open in your IDE?
  1. <?php
  2. namespace Boab\EcommerceBundle\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. /**
  5.  * Order
  6.  * @ORM\Table(name="orders")
  7.  * @ORM\Entity(repositoryClass="Boab\EcommerceBundle\Repository\OrderRepository")
  8.  */
  9. class Order extends AbstractOrder implements OrderInterface
  10. {
  11.     /** 
  12.      *@ORM\OneToMany(targetEntity="OrderItem", mappedBy="order", cascade={"persist","remove"}, orphanRemoval=true) 
  13.      * @ORM\JoinColumn(onDelete="CASCADE")     
  14.      */
  15.     protected $orderItems;
  16.     /**
  17.      * @ORM\Column(type="string", length=100, nullable=true)
  18.      */
  19.     private $city;
  20.     /**
  21.      * @ORM\Column(type="string", length=100)
  22.      */
  23.     private $country;
  24.     /**
  25.      * @ORM\Column(type="string", length=100)
  26.      */
  27.     private $email;
  28.     /**
  29.      * @ORM\Column(type="string", length=20)
  30.      */
  31.     private $postalCode;
  32.     /**
  33.      * @ORM\Column(type="string", length=150, nullable=true)
  34.      */
  35.     private $hash
  36.     private $cart;
  37.     /**
  38.      * @ORM\Column(type="string", length=10, nullable=true)
  39.      */
  40.     private $pin;
  41.     /**
  42.      * @ORM\Column(type="integer", nullable=true)
  43.      */
  44.     private $customerId;
  45.     /**
  46.      * Constructor
  47.      */
  48.     public function __construct($cart=null)
  49.     {
  50.         $this->orderItems = new \Doctrine\Common\Collections\ArrayCollection();
  51.         $this->cart $cart;
  52.     } 
  53.     /**
  54.      * Add OrderItem.
  55.      *
  56.      * @param \Boab\EcommerceBundle\Entity\OrderItem $orderItem
  57.      *
  58.      * @return User
  59.      */
  60.     public function addOrderItem(OrderItem $orderItem)
  61.     {
  62.         $this->orderItems[] = $orderItem;
  63.         return $this;
  64.     }  
  65.     
  66.     /**
  67.      * Remove OrderItem.
  68.      *
  69.      * @param \Boab\EcommerceBundle\Entity\OrderItem $orderItem
  70.      *
  71.      * @return boolean TRUE if this collection contained the specified element, FALSE otherwise.
  72.      */
  73.     public function removeOrderItem(\Boab\EcommerceBundle\Entity\OrderItem $orderItem)
  74.     {
  75.         return $this->orderItems->removeElement($orderItem);
  76.     }  
  77.     
  78.     /**
  79.      * Get OrderItems.
  80.      *
  81.      * @return \Doctrine\Common\Collections\Collection
  82.      */
  83.     public function getOrderItems()
  84.     {
  85.         return $this->orderItems;
  86.     }    
  87.     public function getCustomerName()
  88.     {
  89.         return $this->getFirstName() .' '.$this->getLastName();
  90.     }   
  91.     public function getCountry(): ?string
  92.     {
  93.         return $this->country;
  94.     }
  95.     public function setCountry(string $country): self
  96.     {
  97.         $this->country $country;
  98.         return $this;
  99.     }
  100.     public function getEmail(): ?string
  101.     {
  102.         return $this->email;
  103.     }
  104.     public function setEmail(string $email): self
  105.     {
  106.         $this->email $email;
  107.         return $this;
  108.     }
  109.     public function getPostalCode(): ?string
  110.     {
  111.         return $this->postalCode;
  112.     }
  113.     public function setPostalCode(?string $postalCode): self
  114.     {
  115.         $this->postalCode $postalCode;
  116.         return $this;
  117.     }
  118.     public function addCart(CartInterface $cart)
  119.     {
  120.         $this->cart $cart;
  121.     }
  122.     public function getCart()
  123.     {
  124.         return $this->cart;
  125.     }    
  126.     public function isPaid(): bool
  127.     {
  128.         return self::PAID == $this->getStatus() || 'approved'==strtolower($this->getStatus()) ;
  129.     }
  130.     public function getHash(): ?string
  131.     {
  132.         return $this->hash;
  133.     }
  134.     public function setHash(?string $hash): self
  135.     {
  136.         $this->hash $hash;
  137.         return $this;
  138.     }
  139.     public function getSubtotal():float
  140.     {
  141.         if($this->orderItems->isEmpty()){
  142.             throw new \Exception('Your order is empty how did this happen.');
  143.         }
  144.         $total 0;
  145.         foreach($this->orderItems as $item){
  146.             $total += $item->getAmount();
  147.         }
  148.         return $total;
  149.     }
  150.     public function getPin(): ?string
  151.     {
  152.         return $this->pin;
  153.     }
  154.     public function setPin(?string $pin): self
  155.     {
  156.         $this->pin $pin;
  157.         return $this;
  158.     }
  159.     public function getCustomerId(): ?int
  160.     {
  161.         return $this->customerId;
  162.     }
  163.     public function setCustomerId(?int $customerId): self
  164.     {
  165.         $this->customerId $customerId;
  166.         return $this;
  167.     } 
  168.     /**
  169.      * Get the value of city
  170.      */ 
  171.     public function getCity()
  172.     {
  173.         return $this->city;
  174.     }
  175.     /**
  176.      * Set the value of city
  177.      *
  178.      * @return  self
  179.      */ 
  180.     public function setCity($city)
  181.     {
  182.         $this->city $city;
  183.         return $this;
  184.     }
  185. }