Add performing partner to clients and engagements
This commit is contained in:
@@ -223,6 +223,7 @@ def subscription_create_page(request: Request, client_id: int | None = None):
|
||||
)
|
||||
enabled_services = list_enabled_services_for_assignment(db, tenant_id=tenant_id)
|
||||
assignable_users = list_assignable_users(db, tenant_id=tenant_id, branch_id=branch_id)
|
||||
performing_partners = list_assignable_users(db, tenant_id=tenant_id, branch_id=branch_id, role_names=("Partner",))
|
||||
review_partners = list_review_partners(db, tenant_id=tenant_id, branch_id=branch_id)
|
||||
|
||||
return _render(
|
||||
@@ -236,6 +237,7 @@ def subscription_create_page(request: Request, client_id: int | None = None):
|
||||
clients=clients,
|
||||
enabled_services=enabled_services,
|
||||
assignable_users=assignable_users,
|
||||
performing_partners=performing_partners,
|
||||
review_partners=review_partners,
|
||||
selected_client_id=client_id,
|
||||
financial_year=_active_financial_year(request),
|
||||
@@ -252,6 +254,7 @@ def subscription_create_submit(
|
||||
assigned_partner_user_id: str = Form(""),
|
||||
assigned_manager_user_id: str = Form(""),
|
||||
assigned_staff_user_id: str = Form(""),
|
||||
performing_partner_user_id: str = Form(""),
|
||||
review_partner_user_id: str = Form(""),
|
||||
financial_year: str = Form(""),
|
||||
start_date: str = Form(""),
|
||||
@@ -317,6 +320,8 @@ def subscription_create_submit(
|
||||
row.branch_id = firm_selection.default_branch_id or getattr(user, "branch_id", None)
|
||||
row.firm_service_selection_id = firm_selection.id
|
||||
row.assigned_partner_user_id = int(assigned_partner_user_id) if assigned_partner_user_id.strip() else None
|
||||
requested_performing_partner_id = int(performing_partner_user_id) if performing_partner_user_id.strip() else None
|
||||
row.performing_partner_user_id = requested_performing_partner_id or getattr(client, "default_performing_partner_user_id", None) or row.assigned_partner_user_id
|
||||
row.assigned_manager_user_id = int(assigned_manager_user_id) if assigned_manager_user_id.strip() else None
|
||||
row.assigned_staff_user_id = int(assigned_staff_user_id) if assigned_staff_user_id.strip() else None
|
||||
if review_partner_required_for_engagement(db, tenant_id=tenant_id, engagement_type=row.engagement_type):
|
||||
@@ -364,6 +369,7 @@ def subscription_bulk_create_page(request: Request, error: str = ""):
|
||||
)
|
||||
enabled_services = list_enabled_services_for_assignment(db, tenant_id=tenant_id)
|
||||
partners = list_assignable_users(db, tenant_id=tenant_id, role_names=("Partner",))
|
||||
performing_partners = partners
|
||||
managers = list_assignable_users(db, tenant_id=tenant_id, role_names=("Branch Manager",))
|
||||
staff_users = list_assignable_users(db, tenant_id=tenant_id, role_names=("Staff",))
|
||||
review_partners = list_review_partners(db, tenant_id=tenant_id)
|
||||
@@ -377,6 +383,7 @@ def subscription_bulk_create_page(request: Request, error: str = ""):
|
||||
clients=clients,
|
||||
enabled_services=enabled_services,
|
||||
partners=partners,
|
||||
performing_partners=performing_partners,
|
||||
client_partner_names={row.id: (row.full_name or row.email) for row in partners},
|
||||
managers=managers,
|
||||
staff_users=staff_users,
|
||||
@@ -385,6 +392,7 @@ def subscription_bulk_create_page(request: Request, error: str = ""):
|
||||
error_message={
|
||||
"service": "Select a valid enabled firm service.",
|
||||
"partner": "Select a valid active Partner.",
|
||||
"performing_partner": "The selected Performing Partner is not available for this firm.",
|
||||
"manager": "The selected Manager is not available for this firm.",
|
||||
"staff": "The selected Staff member is not available for this firm.",
|
||||
"review_partner": "The selected Review Partner is not available for this firm.",
|
||||
@@ -404,6 +412,7 @@ def subscription_bulk_create_submit(
|
||||
assigned_partner_user_id: int = Form(...),
|
||||
assigned_manager_user_id: str = Form(""),
|
||||
assigned_staff_user_id: str = Form(""),
|
||||
performing_partner_user_id: str = Form(""),
|
||||
review_partner_user_id: str = Form(""),
|
||||
financial_year: str = Form(""),
|
||||
remarks: str = Form(""),
|
||||
@@ -448,6 +457,7 @@ def subscription_bulk_create_submit(
|
||||
review_partners = list_review_partners(db, tenant_id=tenant_id)
|
||||
|
||||
partner_ids = {row.id for row in partners}
|
||||
performing_partner_ids = partner_ids
|
||||
manager_ids = {row.id for row in managers}
|
||||
staff_ids = {row.id for row in staff_users}
|
||||
review_partner_ids = {row.id for row in review_partners}
|
||||
@@ -455,9 +465,12 @@ def subscription_bulk_create_submit(
|
||||
if assigned_partner_user_id not in partner_ids:
|
||||
return RedirectResponse(url="/services/engagements/bulk-new?error=partner", status_code=303)
|
||||
|
||||
performing_partner_id = int(performing_partner_user_id) if performing_partner_user_id.strip() else assigned_partner_user_id
|
||||
manager_id = int(assigned_manager_user_id) if assigned_manager_user_id.strip() else None
|
||||
staff_id = int(assigned_staff_user_id) if assigned_staff_user_id.strip() else None
|
||||
review_partner_id = int(review_partner_user_id) if review_partner_user_id.strip() else None
|
||||
if performing_partner_id not in performing_partner_ids:
|
||||
return RedirectResponse(url="/services/engagements/bulk-new?error=performing_partner", status_code=303)
|
||||
if manager_id is not None and manager_id not in manager_ids:
|
||||
return RedirectResponse(url="/services/engagements/bulk-new?error=manager", status_code=303)
|
||||
if staff_id is not None and staff_id not in staff_ids:
|
||||
@@ -531,6 +544,7 @@ def subscription_bulk_create_submit(
|
||||
service_catalogue_id=service_catalogue_id,
|
||||
firm_service_selection_id=firm_selection.id,
|
||||
assigned_partner_user_id=assigned_partner_user_id,
|
||||
performing_partner_user_id=performing_partner_id or getattr(client, "default_performing_partner_user_id", None) or assigned_partner_user_id,
|
||||
assigned_manager_user_id=manager_id,
|
||||
assigned_staff_user_id=staff_id,
|
||||
review_partner_user_id=(
|
||||
@@ -980,6 +994,7 @@ def subscription_edit_page(request: Request, subscription_id: int):
|
||||
)
|
||||
enabled_services = list_enabled_services_for_assignment(db, tenant_id=tenant_id)
|
||||
assignable_users = list_assignable_users(db, tenant_id=tenant_id, branch_id=branch_id)
|
||||
performing_partners = list_assignable_users(db, tenant_id=tenant_id, branch_id=branch_id, role_names=("Partner",))
|
||||
review_partners = list_review_partners(db, tenant_id=tenant_id, branch_id=branch_id)
|
||||
return _render(
|
||||
request,
|
||||
@@ -992,6 +1007,7 @@ def subscription_edit_page(request: Request, subscription_id: int):
|
||||
clients=clients,
|
||||
enabled_services=enabled_services,
|
||||
assignable_users=assignable_users,
|
||||
performing_partners=performing_partners,
|
||||
review_partners=review_partners,
|
||||
selected_client_id=row.client_id,
|
||||
financial_year=row.financial_year,
|
||||
@@ -1007,6 +1023,7 @@ def subscription_edit_submit(
|
||||
assigned_partner_user_id: str = Form(""),
|
||||
assigned_manager_user_id: str = Form(""),
|
||||
assigned_staff_user_id: str = Form(""),
|
||||
performing_partner_user_id: str = Form(""),
|
||||
review_partner_user_id: str = Form(""),
|
||||
start_date: str = Form(""),
|
||||
end_date: str = Form(""),
|
||||
@@ -1038,6 +1055,8 @@ def subscription_edit_submit(
|
||||
return RedirectResponse(url=f"/services/engagements/{row.id}?year_locked=1", status_code=303)
|
||||
|
||||
row.assigned_partner_user_id = int(assigned_partner_user_id) if assigned_partner_user_id.strip() else None
|
||||
requested_performing_partner_id = int(performing_partner_user_id) if performing_partner_user_id.strip() else None
|
||||
row.performing_partner_user_id = requested_performing_partner_id or getattr(row.client, "default_performing_partner_user_id", None) or row.assigned_partner_user_id
|
||||
row.assigned_manager_user_id = int(assigned_manager_user_id) if assigned_manager_user_id.strip() else None
|
||||
row.assigned_staff_user_id = int(assigned_staff_user_id) if assigned_staff_user_id.strip() else None
|
||||
if review_partner_required_for_engagement(db, tenant_id=tenant_id, engagement_type=row.engagement_type):
|
||||
|
||||
Reference in New Issue
Block a user