diff --git a/src/backend/expungeservice/charges_summarizer.py b/src/backend/expungeservice/charges_summarizer.py index 8ab2b9859..9ab1df2ef 100644 --- a/src/backend/expungeservice/charges_summarizer.py +++ b/src/backend/expungeservice/charges_summarizer.py @@ -119,11 +119,17 @@ def _get_case_has_ineligible_charge(case: Record): @staticmethod def _get_future_eligibility_label_on_case(case: Record): + # Filter to charges with a future eligibility date, excluding ineligible charges (date.max()) + future_eligible_charges = [ + charge for charge in case.charges + if charge.expungement_result.charge_eligibility.date_to_sort_label_by + and charge.expungement_result.charge_eligibility.date_to_sort_label_by != date.max() + ] + if not future_eligible_charges: + return None + # Return the label of the charge with the latest date (case can't be expunged until all eligible charges are eligible) date_sorted_charges = sorted( - case.charges, - key=lambda charge: charge.expungement_result.charge_eligibility.date_to_sort_label_by or date.max(), + future_eligible_charges, + key=lambda charge: charge.expungement_result.charge_eligibility.date_to_sort_label_by, ) - if date_sorted_charges[0].expungement_result.charge_eligibility.date_to_sort_label_by: - return date_sorted_charges[0].expungement_result.charge_eligibility.label - else: - return None + return date_sorted_charges[-1].expungement_result.charge_eligibility.label