<?php
namespace Aviatur\FlightBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* SpecialDiscountReservation.
*
* @ORM\Table(name="special_discount_reservation", indexes={@ORM\Index(name="special_discount_id", columns={"special_discount_id"}), @ORM\Index(name="order_product_id", columns={"order_product_id"})})
* @ORM\Entity
*/
class SpecialDiscountReservation
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="SpecialDiscount", inversedBy="specialDiscountReservation"))
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="special_discount_id", referencedColumnName="id")
* })
*/
private ?\Aviatur\FlightBundle\Entity\SpecialDiscount $specialDiscount = null;
/**
*
* @ORM\ManyToOne(targetEntity="Aviatur\GeneralBundle\Entity\OrderProduct", inversedBy="specialDiscountReservation")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="order_product_id", referencedColumnName="id")
* })
*/
private ?\Aviatur\GeneralBundle\Entity\OrderProduct $orderProduct = null;
/**
* @var int
*
* @ORM\Column(name="value", type="integer", nullable=true)
*/
private $value;
/**
* @var int
*
* @ORM\Column(name="discount", type="integer", nullable=true)
*/
private $discount;
/**
* @var string
*
* @ORM\Column(name="additionalInfo", type="string", length=100, nullable=true)
*/
private $additionalinfo;
/**
* Get id.
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set specialDiscount.
*
* @param \Aviatur\FlightBundle\Entity\SpecialDiscount $specialDiscount
*
* @return SpecialDiscountReservation
*/
public function setSpecialDiscount(\Aviatur\FlightBundle\Entity\SpecialDiscount $specialDiscount = null)
{
$this->specialDiscount = $specialDiscount;
return $this;
}
/**
* Get specialDiscount.
*
* @return \Aviatur\FlightBundle\Entity\SpecialDiscount
*/
public function getSpecialDiscount()
{
return $this->specialDiscount;
}
/**
* Set orderProduct.
*
* @param \Aviatur\GeneralBundle\Entity\OrderProduct $orderProduct
*
* @return SpecialDiscountReservation
*/
public function setOrderProduct(\Aviatur\GeneralBundle\Entity\OrderProduct $orderProduct = null)
{
$this->orderProduct = $orderProduct;
return $this;
}
/**
* Get orderProduct.
*
* @return \Aviatur\GeneralBundle\Entity\OrderProduct
*/
public function getOrderProduct()
{
return $this->orderProduct;
}
/**
* Set value.
*
* @param int $value
*
* @return SpecialDiscountReservation
*/
public function setValue($value)
{
$this->value = $value;
return $this;
}
/**
* Get value.
*
* @return int
*/
public function getValue()
{
return $this->value;
}
/**
* Set discount.
*
* @param int $discount
*
* @return SpecialDiscountReservation
*/
public function setDiscount($discount)
{
$this->discount = $discount;
return $this;
}
/**
* Get discount.
*
* @return int
*/
public function getDiscount()
{
return $this->discount;
}
/**
* Set additionalinfo.
*
* @param string $additionalinfo
*
* @return SpecialDiscountReservation
*/
public function setAdditionalinfo($additionalinfo)
{
$this->additionalinfo = $additionalinfo;
return $this;
}
/**
* Get additionalinfo.
*
* @return string
*/
public function getAdditionalinfo()
{
return $this->additionalinfo;
}
/**
* Get ticketQuantity.
*
* @return string
*/
public function getTicketQuantity()
{
return sizeof(json_decode($this->additionalinfo));
}
/**
* Get emissionDate.
*
* @return \DateTime
*/
public function getEmissionDate()
{
$date = $this->orderProduct->getUpdatingdate();
return $date->format('Y-m-d');
}
/**
* Get ticketInfo.
*
* @return string
*/
public function getTicketInfo()
{
$additionalInfos = json_decode($this->additionalinfo);
$tickets = '';
if (null != $additionalInfos) {
foreach ($additionalInfos as $additionalInfo) {
$tickets .= $additionalInfo->ticket.'-';
}
}
$tickets = trim($tickets, '-');
return $tickets.';'.$this->orderProduct->getBooking();
}
/**
* Get itinerary.
*
* @return string
*/
public function getItinerary()
{
$productData = $this->orderProduct->getAddproductdata();
$explodedInfo = explode('<![CDATA[', str_replace(']]>', '<![CDATA[', $productData));
$itineraries = \simplexml_load_string('<Info>'.$explodedInfo[1].'</Info>');
$itineraryStr = '';
foreach ($itineraries->itineraries->itinerary as $itinerary) {
$itineraryStr .= $itinerary->departure_airport->code.'=>'.$itinerary->arrival_airport->code.'('.$itinerary->class_trip->code.') ';
}
$itineraryStr = trim($itineraryStr);
return $itineraryStr;
}
/**
* Get itineraryDetail.
*
* @return string
*/
public function getItineraryDetail()
{
$productData = $this->orderProduct->getAddproductdata();
$explodedInfo = explode('<![CDATA[', str_replace(']]>', '<![CDATA[', $productData));
$itineraries = \simplexml_load_string('<Info>'.$explodedInfo[1].'</Info>');
$itineraryStr = '';
foreach ($itineraries->itineraries->itinerary as $itinerary) {
$itineraryStr .= $itinerary->departure_airport->code.'('.$itinerary->departure_datetime.')=>'.$itinerary->arrival_airport->code.'('.$itinerary->arrival_datetime.') ';
}
$itineraryStr = trim($itineraryStr);
return $itineraryStr;
}
}