0 || penal_charges > 0) { * final_amount_payable = total_amount_due - (bounce_charges + penal_charges) * if (payable_amount < final_amount_payable) { return false } * } * } * * @return array{ valid: bool, minimumAmount: float|null, alertMessage: string|null } */ public function validateForeclosurePayableAmount( $payment_type, $payable_amount_for_link, $bounce_charges, $penal_charges, $total_amount_due ): array { if ($payment_type !== 'foreclosure') { return ['valid' => true, 'minimumAmount' => null, 'alertMessage' => null]; } if ($bounce_charges > 0 || $penal_charges > 0) { $finalAmountPayable = (float)$total_amount_due - ((float)$bounce_charges + (float)$penal_charges); if ((float)$payable_amount_for_link < $finalAmountPayable) { return [ 'valid' => false, 'minimumAmount' => $finalAmountPayable, 'alertMessage' => 'The minimum amount payable is ' . $finalAmountPayable, ]; } } return ['valid' => true, 'minimumAmount' => null, 'alertMessage' => null]; } }