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; }
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; }