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