private function buildQuote(Equipment $equipment, Rate $rate, RentalPeriod $requestedPeriod) { /** @var RentalPeriod $requestedPeriod */ /** @var Rate $rate */ $quantity = ceil($requestedPeriod->getDayCount() / $rate->getUnitDays()); $quote = new RateQuote($equipment); $quote->add(RateQuoteLineItem::make($rate, $quantity)); return $quote; }
public function getQuotesFor(RentalQuery $query) { $rateQuote = new RateQuote($query->getEquipment()); $dayCount = $query->getTotalDayCount(); while ($dayCount > 0) { $rate = $this->getBestRateForDays($query->getApplicableRates(), $dayCount); $rateQuote->add(RateQuoteLineItem::make($rate, 1)); $dayCount -= $rate->getUnitDays(); } return [$rateQuote]; }