/** * @param PlanDefinition $definition * @param Money $amountToPay * @param PlanParameters $parameters * @internal param string $planCode * @return \Ice\PaymentPlan\PaymentPlan */ public function getPlan(PlanDefinition $definition, Money $amountToPay, PlanParameters $parameters) { if ($parameters->hasParameter('bursary_total_deduction') && ($bursaryTotalDeduction = intval($parameters->get('bursary_total_deduction'))) > 0) { $absoluteBursaryTotal = Money::GBP($bursaryTotalDeduction); $amountBeforeBursary = $amountToPay->add($absoluteBursaryTotal); $planWithoutBursary = $this->childCalculator->getPlan($definition, $amountBeforeBursary, $parameters); return $this->subtractBursaryFromPlan($planWithoutBursary, $absoluteBursaryTotal); } return $this->childCalculator->getPlan($definition, $amountToPay, $parameters); }