<?php
namespace Aviatur\FlightBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* SpecialDiscountReservationAviatur.
*
* @ORM\Table(name="special_discount_reservation_aviatur", indexes={@ORM\Index(name="special_discount_aviatur_id", columns={"special_discount_aviatur_id"}), @ORM\Index(name="order_product_id", columns={"order_product_id"})})
* @ORM\Entity
*/
class SpecialDiscountReservationAviatur
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="SpecialDiscountAviatur", inversedBy="specialDiscountReservationAviatur"))
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="special_discount_aviatur_id", referencedColumnName="id")
* })
*/
private ?\Aviatur\FlightBundle\Entity\SpecialDiscountAviatur $specialDiscountAviatur = 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;
/**
* @var int
*
* @ORM\Column(name="adminPayOnBase", type="integer", nullable=true)
*/
private $adminpayonbase;
/**
* Get id.
*
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set specialDiscountAviatur.
*
* @param \Aviatur\FlightBundle\Entity\SpecialDiscountAviatur $specialDiscountAviatur
*
* @return SpecialDiscountReservationAviatur
*/
public function setSpecialDiscountAviatur(\Aviatur\FlightBundle\Entity\SpecialDiscountAviatur $specialDiscountAviatur = null)
{
$this->specialDiscountAviatur = $specialDiscountAviatur;
return $this;
}
/**
* Get specialDiscountAviatur.
*
* @return \Aviatur\FlightBundle\Entity\SpecialDiscountAviatur
*/
public function getSpecialDiscountAviatur()
{
return $this->specialDiscountAviatur;
}
/**
* Set orderProduct.
*
* @param \Aviatur\GeneralBundle\Entity\OrderProduct $orderProduct
*
* @return SpecialDiscountReservationAviatur
*/
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 SpecialDiscountReservationAviatur
*/
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 SpecialDiscountReservationAviatur
*/
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 SpecialDiscountReservationAviatur
*/
public function setAdditionalinfo($additionalinfo)
{
$this->additionalinfo = $additionalinfo;
return $this;
}
/**
* Get additionalinfo.
*
* @return string
*/
public function getAdditionalinfo()
{
return $this->additionalinfo;
}
/**
* Set adminPayOnBase.
*
* @param int $adminpayonbase
*
* @return SpecialDiscountReservationAviatur
*/
public function setAdminpayonbase($adminpayonbase)
{
$this->adminpayonbase = $adminpayonbase;
return $this;
}
/**
* Get adminPayOnBase.
*
* @return int
*/
public function getAdminPayOnBase()
{
return $this->adminpayonbase;
}
/**
* 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;
}
/**
* 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;
}
}