Use registration master for service catalogue scope types

This commit is contained in:
A R R R Associates
2026-08-07 12:04:44 +05:30
parent a5cf33bc7a
commit 986479d3a2
3 changed files with 117 additions and 7 deletions
@@ -0,0 +1,45 @@
"""Align Service Catalogue registration requirements with Registration Type master.
The Service Catalogue previously used a frontend-only legacy code "GST" while the
Registration Type master uses "GSTIN". Scope mapping compares these codes exactly.
This migration updates only the legacy Service Catalogue value and leaves service
IDs, service codes, firm selections, subscriptions, engagements, tasks and all
other catalogue data unchanged.
"""
from alembic import op
import sqlalchemy as sa
revision = "20260807_service_reg_master"
down_revision = "20260806_related_person_scope"
branch_labels = None
depends_on = None
def upgrade():
bind = op.get_bind()
inspector = sa.inspect(bind)
if "service_catalogues" not in inspector.get_table_names():
return
columns = {column["name"] for column in inspector.get_columns("service_catalogues")}
if "required_registration_type" not in columns:
return
bind.execute(
sa.text(
"""
UPDATE service_catalogues
SET required_registration_type = 'GSTIN'
WHERE UPPER(TRIM(required_registration_type)) = 'GST'
"""
)
)
def downgrade():
# Deliberately do not restore GST. GSTIN is the canonical Registration Type
# master code and reverting it would reintroduce the scope-map mismatch.
pass