<?php
namespace Aviatur\FlightBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Churning.
*
* @ORM\Table(name="churning", indexes={@ORM\Index(name="order_id", columns={"order_id"})})
* @ORM\Entity(repositoryClass="Aviatur\FlightBundle\Entity\ChurningRepository")
*/
class Churning
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
*
* @ORM\ManyToOne(targetEntity="Aviatur\GeneralBundle\Entity\Order", inversedBy="churning")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="order_id", referencedColumnName="id")
* })
*/
private ?\Aviatur\GeneralBundle\Entity\Order $order = null;
/**
* @ORM\Column(name="bookingDate", type="datetime", nullable=false)
*/
private ?\DateTime $bookingdate = null;
/**
* @ORM\Column(name="flightDate", type="datetime", nullable=false)
*/
private ?\DateTime $flightdate = null;
/**
* @ORM\Column(name="departureDate", type="datetime", nullable=false)
*/
private ?\DateTime $departureDate = null;
/**
* @ORM\Column(name="arrivalDate", type="datetime", nullable=false)
*/
private ?\DateTime $arrivalDate = null;
/**
* @ORM\Column(name="birthDate", type="datetime", nullable=true)
*/
private ?\DateTime $birthdate = null;
/**
* @ORM\Column(name="comment", type="string", nullable=true)
*/
private $comment;
/**
* @var string
*
* @ORM\Column(name="flightNumber", type="string", nullable=true)
*/
private $flightnumber;
/**
* @var string
*
* @ORM\Column(name="document", type="string", nullable=false)
*/
private $document;
/**
* @var string
*
* @ORM\Column(name="name", type="string", nullable=false)
*/
private $name;
/**
* @var int
*
* @ORM\Column(name="tryNumber", type="integer", nullable=false)
*/
private $trynumber;
/**
* @var int
*
* @ORM\Column(name="enabled", type="integer", nullable=false)
*/
private $enabled;
/**
* @ORM\OneToMany(targetEntity="Aviatur\FlightBundle\Entity\ChurningActivityLog", mappedBy="order", cascade={"all"})
*/
private $churningActivityLog;
/**
* Constructor.
*/
public function __construct()
{
$this->churningActivityLog = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* __toString.
*/
public function __toString()
{
$newDate = (array)$this->getBookingdate();
$return = $newDate["date"]." - ".$this->getFlightnumber()." - ".$this->getName()." - ".(string)(!is_null($this->getOrder()) ? 'ON'.$this->getOrder()->getId() : 'NA');
return $return;
}
/**
* Get id.
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set bookingdate.
*
* @return Churning
*/
public function setBookingdate(\DateTime $bookingdate)
{
$this->bookingdate = $bookingdate;
return $this;
}
/**
* Get bookingdate.
*
* @return \DateTime
*/
public function getBookingdate()
{
return $this->bookingdate;
}
/**
* Set flightdate.
*
* @return Churning
*/
public function setFlightdate(\DateTime $flightdate)
{
$this->flightdate = $flightdate;
return $this;
}
/**
* Get flightdate.
*
* @return \DateTime|null
*/
public function getFlightdate()
{
return $this->flightdate;
}
/**
* Set departureDate.
*
* @return Churning
*/
public function setDepartureDate(\DateTime $departureDate)
{
$this->departureDate = $departureDate;
return $this;
}
/**
* Get departureDate.
*
* @return \DateTime|null
*/
public function getDepartureDate()
{
return $this->departureDate;
}
/**
* Set arrivalDate.
*
* @return Churning
*/
public function setArrivalDate(\DateTime $arrivalDate)
{
$this->arrivalDate = $arrivalDate;
return $this;
}
/**
* Get arrivalDate.
*
* @return \DateTime|null
*/
public function getArrivalDate()
{
return $this->arrivalDate;
}
/**
* Set birthDate.
*
* @return Churning
*/
public function setBirthdate(\DateTime $birthdate = null)
{
$this->birthdate = $birthdate;
return $this;
}
/**
* Get birthDate.
*
* @return \DateTime|null
*/
public function getBirthdate()
{
return $this->birthdate;
}
/**
* Set birthDate.
*
* @return Churning
*/
public function setComment(string $comment = null)
{
$this->comment = $comment;
return $this;
}
/**
* Get birthDate.
*
* @return string
*/
public function getComment()
{
return $this->comment;
}
/**
* Set flightnumber.
*
* @param string $flightnumber
*
* @return Churning
*/
public function setFlightnumber($flightnumber)
{
$this->flightnumber = $flightnumber;
return $this;
}
/**
* Get flightnumber.
*
* @return string
*/
public function getFlightnumber()
{
return $this->flightnumber;
}
/**
* Set document.
*
* @param string $document
*
* @return Churning
*/
public function setDocument($document)
{
$this->document = $document;
return $this;
}
/**
* Get document.
*
* @return string
*/
public function getDocument()
{
return $this->document;
}
/**
* Set name.
*
* @param string $name
*
* @return Churning
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* Get name.
*
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* Set trynumber.
*
* @param string $trynumber
*
* @return Churning
*/
public function setTrynumber($trynumber)
{
$this->trynumber = $trynumber;
return $this;
}
/**
* Get trynumber.
*
* @return string
*/
public function getTrynumber()
{
return $this->trynumber;
}
/**
* Set enabled.
*
* @param string $enabled
*
* @return Churning
*/
public function setEnabled($enabled)
{
$this->enabled = $enabled;
return $this;
}
/**
* Get enabled.
*
* @return string
*/
public function getEnabled()
{
return $this->enabled;
}
/**
* Set order.
*
* @param \Aviatur\GeneralBundle\Entity\Order $order
*
* @return Churning
*/
public function setOrder(\Aviatur\GeneralBundle\Entity\Order $order = null)
{
$this->order = $order;
return $this;
}
/**
* Get order.
*
* @return \Aviatur\GeneralBundle\Entity\Order
*/
public function getOrder()
{
return $this->order;
}
/**
* Add churningActivityLog.
*
* @return ChurningActivityLog
*/
public function addChurningActivityLog(\Aviatur\FlightBundle\Entity\ChurningActivityLog $churningActivityLog)
{
$this->churningActivityLog[] = $churningActivityLog;
return $this;
}
/**
* Remove ChurningActivityLog.
*/
public function removeChurningActivityLog(\Aviatur\FlightBundle\Entity\ChurningActivityLog $churningActivityLog)
{
$this->churningActivityLog->removeElement($churningActivityLog);
}
/**
* Get ChurningActivityLog.
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getChurningActivityLog()
{
return $this->churningActivityLog;
}
/**
* Get number of booking (Calculated).
*
* @return string
*/
public function getBooking()
{
$order = $this->getOrder();
$orderProductList = !is_null($order) ? $order->getOrderProduct() : array();
$bookingList = '';
$arrayBookings = array();
foreach ($orderProductList as $orderProduct) {
if(!is_null($orderProduct->getBooking()) && '' != $orderProduct->getBooking()){
if(!in_array($orderProduct->getBooking(), $arrayBookings)){
$bookingList = ($bookingList == '' ? '' : ', ').$orderProduct->getBooking();
$arrayBookings[] = $orderProduct->getBooking();
}
}
}
return $bookingList;
}
}