public function isApplicable(Enquiry $enquiry) : bool
 {
     if ($enquiry->isReturn()) {
         $arrivalUnix = strtotime($enquiry->getInboundDate());
         $departureUnix = strtotime($enquiry->getOutboundDate());
         return $departureUnix - $arrivalUnix >= $this->minStay * 84600;
     }
     return false;
 }
 public function getPrice(Enquiry $enquiry) : float
 {
     $flightCalculator = new FlightCalculator();
     $totalMiles = 0;
     foreach ($enquiry->getCurrentFlightPair() as $flight) {
         $totalMiles += $flightCalculator->getDistance($flight);
     }
     $totalMiles -= $this->freeMiles;
     if ($totalMiles >= 1) {
         return $totalMiles * $this->pricePerMile;
     }
     return 0;
 }
Пример #3
0
 public function search()
 {
     $enquiry = new Enquiry();
     $searchResult = (new Search())->searchConnection($this->request->getParameter('start'), $this->request->getParameter('end'), $this->request->getParameter('date'));
     $enquiry->setInboundDate($this->request->getParameter('date'));
     foreach ($searchResult as $connection) {
         if ($connection instanceof Flight) {
             $enquiry->addFlightPair([$connection]);
         } else {
             $enquiry->addFlightPair($connection);
         }
     }
     $this->response->write(json_encode($enquiry->getFlightPairInformations()));
 }
 public function isApplicable(Enquiry $enquiry) : bool
 {
     return strtotime($enquiry->getInboundDate()) - time() >= $this->prebookDays * 86400;
 }