/**
* @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);
}