/** * Determine if $reference satisfies this Criteria. * * @param RentRecoveryPlusReference $reference * @return bool */ public function isSatisfiedBy(RentRecoveryPlusReference $reference) { $recommendationStatus = $reference->getDecisionDetails()->getRecommendation()->getStatus(); if (RecommendationStatuses::ACCEPTABLE_WITH_GUARANTOR != $recommendationStatus && RecommendationStatuses::ACCEPTABLE_WITH_GUARANTOR_WITH_CONDITION != $recommendationStatus) { $this->setNotSatisfiedText(sprintf('Reference %s is not acceptable with a suitable guarantor', $reference->getParent()->getReferenceNumber()))->setIsSatisfied(false); return false; } return true; }
/** * Determine if $reference satisfies this Criteria. * * @param RentRecoveryPlusReference $reference * @return bool */ public function isSatisfiedBy(RentRecoveryPlusReference $reference) { $creditScore = $reference->getDecisionDetails()->getCreditReference()->getScore(); if (CreditScoreCriteriaLimits::MINIMUM_INSIGHT_CREDIT_SCORE > $creditScore) { $this->setNotSatisfiedText(sprintf('Credit score criteria is not met. Reference %s credit score is %d', $reference->getParent()->getReferenceNumber(), $creditScore))->setIsSatisfied(false); return false; } return true; }
/** * Create the relevant criteria group. * * @param RentRecoveryPlusReference $reference * @return DefaultGuarantorCheckCriteriaGroup|DefaultNoGuarantorCheckCriteriaGroup */ protected function createCriteria(RentRecoveryPlusReference $reference) { // Only need guarantor checks if tenant is not acceptable $decisionOutcome = $reference->getDecisionDetails()->getRecommendation()->getStatus(); $needsGuarantorCheck = RecommendationStatuses::ACCEPTABLE != $decisionOutcome && RecommendationStatuses::ACCEPTABLE_WITH_CONDITION != $decisionOutcome; if ($needsGuarantorCheck) { return new DefaultGuarantorCheckCriteriaGroup(new StatusCriteria(), new SuitableGuarantorCriteria(), new GuarantorOutcomeCriteria($this->rrpGuarantorReferenceCreator)); } else { return new DefaultNoGuarantorCheckCriteriaGroup(new StatusCriteria()); } }