From 0cc8fbb04a99461c8b6297b0da488cde877bd8e8 Mon Sep 17 00:00:00 2001 From: Kial Jinnah Date: Tue, 10 Mar 2026 11:28:27 -0400 Subject: [PATCH] Business API - fix for liquidation businesses Signed-off-by: Kial Jinnah --- legal-api/src/legal_api/models/business.py | 1 + legal-api/src/legal_api/services/authz.py | 2 +- .../business_checks/test_in_liquidation.py | 14 +++++++++++++- .../common/business-registry-model/pyproject.toml | 2 +- .../src/business_model/models/business.py | 1 + 5 files changed, 17 insertions(+), 3 deletions(-) diff --git a/legal-api/src/legal_api/models/business.py b/legal-api/src/legal_api/models/business.py index edfb1dc341..9f3470b42a 100644 --- a/legal-api/src/legal_api/models/business.py +++ b/legal-api/src/legal_api/models/business.py @@ -198,6 +198,7 @@ class AssociationTypes(Enum): "founding_date", "identifier", "in_liquidation", + "in_liquidation_date", "jurisdiction", "last_agm_date", "last_ar_date", diff --git a/legal-api/src/legal_api/services/authz.py b/legal-api/src/legal_api/services/authz.py index 0351f68f14..3675782d99 100644 --- a/legal-api/src/legal_api/services/authz.py +++ b/legal-api/src/legal_api/services/authz.py @@ -976,7 +976,7 @@ def business_blocker_check(business: Business, is_ignore_draft_blockers: bool = if business.in_liquidation: business_blocker_checks[BusinessBlocker.IN_LIQUIDATION] = True - if LegislationDatetime.datenow() >= business.next_lr_min_date: + if business.next_lr_min_date and LegislationDatetime.datenow() >= business.next_lr_min_date: business_blocker_checks[BusinessBlocker.MIN_LR_DATE_REACHED] = True if has_notice_of_withdrawal_filing_blocker(business, is_ignore_draft_blockers): diff --git a/legal-api/tests/unit/services/warnings/business/business_checks/test_in_liquidation.py b/legal-api/tests/unit/services/warnings/business/business_checks/test_in_liquidation.py index 1c2738162b..91a3e915c1 100644 --- a/legal-api/tests/unit/services/warnings/business/business_checks/test_in_liquidation.py +++ b/legal-api/tests/unit/services/warnings/business/business_checks/test_in_liquidation.py @@ -15,6 +15,7 @@ import copy import pytest +from psycopg2.tz import FixedOffsetTimezone from datedelta import datedelta from legal_api.models import Business @@ -24,7 +25,7 @@ from tests.unit.models import factory_business FOUNDING_DATE = datetime(2023, 3, 3) -IN_LIQUIDATION_DATE = datetime(2024, 6, 10) +IN_LIQUIDATION_DATE = datetime(2024, 6, 10, 0, 0, tzinfo=FixedOffsetTimezone(0)) @pytest.mark.parametrize('test_name, founding_date, in_liquidation_date, last_lr_year, expected_meta_data', [ ('NOT_IN_LIQUIDATION', datetime.now(), None, None, {}), @@ -39,6 +40,13 @@ 'inLiquidationDate': IN_LIQUIDATION_DATE, 'lastLiquidationReportYear': 2025, 'nextLiquidationReportMinDate': date(2026, 3, 2)} + ), + # Should not happen, but need to make sure it still returns for this case + ('IN_LIQUIDATION_no_in_liquidation_date', FOUNDING_DATE, None, None, + { + 'inLiquidationDate': None, + 'lastLiquidationReportYear': None, + 'nextLiquidationReportMinDate': None} ) ]) def test_check_business(session, test_name, founding_date, in_liquidation_date, last_lr_year, expected_meta_data): @@ -50,6 +58,10 @@ def test_check_business(session, test_name, founding_date, in_liquidation_date, in_liquidation_date=in_liquidation_date, last_lr_year=last_lr_year) + if test_name != 'NOT_IN_LIQUIDATION': + business.in_liquidation = True + business.save() + result = check_business(business) if test_name == 'NOT_IN_LIQUIDATION': diff --git a/python/common/business-registry-model/pyproject.toml b/python/common/business-registry-model/pyproject.toml index cfb6a4a05d..498ee8f35b 100644 --- a/python/common/business-registry-model/pyproject.toml +++ b/python/common/business-registry-model/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "business-model" -version = "3.3.22" +version = "3.3.23" description = "" authors = [ {name = "thor",email = "1042854+thorwolpert@users.noreply.github.com"} diff --git a/python/common/business-registry-model/src/business_model/models/business.py b/python/common/business-registry-model/src/business_model/models/business.py index 95dc3b478c..dff2af68fe 100644 --- a/python/common/business-registry-model/src/business_model/models/business.py +++ b/python/common/business-registry-model/src/business_model/models/business.py @@ -222,6 +222,7 @@ class AssociationTypes(Enum): 'founding_date', 'identifier', 'in_liquidation', + 'in_liquidation_date', 'jurisdiction', 'last_agm_date', 'last_ar_date',