Check whether plan with EPC goal is compliant 🟪

This commit is contained in:
Daniel Roth 2026-02-12 16:10:11 +00:00
parent bf0fce8ca5
commit 857d7e3da1

View file

@ -49,23 +49,24 @@ class Plan:
@property
def is_compliant(self) -> bool:
goal: PortfolioGoal = self.scenario.record.goal
goal_value: str = self.scenario.record.goal_value
match goal:
case PortfolioGoal.INCREASING_EPC:
if self.record.post_epc_rating:
post_epc = self.record.post_epc_rating.value
elif self.record.post_sap_points:
post_epc = sap_to_epc(self.record.post_sap_points)
else:
return False
if post_epc <= goal_value:
return True
return False
return self._is_compliant_epc()
case _:
raise NotImplementedError
def set_default(self, value: bool) -> None:
self.record = replace(self.record, is_default=value)
def _is_compliant_epc(self) -> bool:
goal_value: str = self.scenario.record.goal_value
if self.record.post_epc_rating:
post_epc = self.record.post_epc_rating.value
elif self.record.post_sap_points:
post_epc = sap_to_epc(self.record.post_sap_points)
else:
return False
return post_epc <= goal_value