{% extends "ui/templates/base/layout.html" %} {% block content %}

{{ catalogue.service_name }}

{{ catalogue.service_code }} · {{ catalogue.service_category.name if catalogue.service_category else (catalogue.category or 'Uncategorised') }}

{% if can_edit %}Edit{% endif %} Back to Services

Catalogue Details

Recurrence
{{ catalogue.recurrence_type or '-' }}
Engagement Type
{{ 'Assurance' if catalogue.engagement_type == 'assurance' else 'Non-Assurance' }}
Sort order
{{ catalogue.sort_order }}
Description
{{ catalogue.description or 'No description added.' }}
Applicability
{% set labels = [] %} {% if catalogue.applicable_individual %}{% set _ = labels.append('Individual') %}{% endif %} {% if catalogue.applicable_proprietorship %}{% set _ = labels.append('Proprietorship') %}{% endif %} {% if catalogue.applicable_partnership %}{% set _ = labels.append('Partnership') %}{% endif %} {% if catalogue.applicable_llp %}{% set _ = labels.append('LLP') %}{% endif %} {% if catalogue.applicable_company %}{% set _ = labels.append('Company') %}{% endif %} {% if catalogue.applicable_trust %}{% set _ = labels.append('Trust') %}{% endif %} {% if catalogue.applicable_society %}{% set _ = labels.append('Society') %}{% endif %} {{ labels|join(', ') if labels else '-' }}

Firm Service Selection

{% if current_selection and current_selection.is_enabled %} Selected for Firm

Firm task templates configured: {{ current_templates|length }}

{% if current_selection.default_branch_id %}

Default Branch ID: {{ current_selection.default_branch_id }}

{% endif %} {% else %} Not Selected

Select this service for the active firm to customise firm task templates.

{% endif %}
{% if can_manage_firm_services %}
{% if branches %} {% else %}

No active branch found for this firm.

{% endif %}
{% endif %} {% if current_selection and current_selection.is_enabled %} {% endif %}

Due Date Rules

Rules define statutory due dates copied into engagements. Extensions are stored separately as history.

{% if can_edit %}Add Rule{% endif %}
{% for rule in due_rules %} {% else %} {% endfor %}
RuleTypeDue LogicStatus
{{ rule.rule_name }} {{ rule.period_type|replace('_',' ')|title }} {% if rule.period_type in ['yearly', 'one_time'] %} {{ '%02d'|format(rule.due_day or 0) }}-{{ '%02d'|format(rule.due_month or 0) }} based on {{ rule.due_year_basis|replace('_',' ') }} {% elif rule.period_type in ['monthly', 'quarterly'] %} Day {{ rule.due_day or '-' }} with month offset {{ rule.due_month_offset }} {% elif rule.period_type == 'renewal_based' %} Expiry date minus {{ rule.renewal_days_before_expiry or 0 }} day(s) {% else %} Manual / event based {% endif %} {{ 'Active' if rule.is_active else 'Inactive' }} {% if can_edit %}Edit{% endif %}
No due date rules configured yet.

Due Date Extensions

Each extension is preserved. New extensions update current due dates for matching unlocked engagements.

{% if can_edit %}Add Extension{% endif %}
{% for ext in due_extensions %} {% else %} {% endfor %}
FY / AY / PeriodSequencePreviousExtended ToReference
FY {{ ext.financial_year }}{% if ext.assessment_year %} / AY {{ ext.assessment_year }}{% endif %}{% if ext.period_label %} / {{ ext.period_label }}{% endif %} {{ ext.extension_sequence }} {{ ext.previous_due_date or '-' }} {{ ext.extended_due_date }}
{{ ext.notification_reference or '-' }}
{% if ext.notification_date %}
{{ ext.notification_date }}
{% endif %}
No due date extensions recorded yet.

System Default Tasks

System Admin controls the standard task template used as the base for firms.

{% if is_system_admin and can_edit %} Manage Defaults {% endif %}
{% for task in default_templates %}
{{ task.sequence_no }}. {{ task.task_name }}
Role: {{ task.default_role_name or '-' }} · Mandatory: {{ 'Yes' if task.is_mandatory else 'No' }} · Review: {{ 'Yes' if task.requires_review else 'No' }} · {{ 'Active' if task.is_active else 'Inactive' }}
{% if task.description %}

{{ task.description }}

{% endif %}
{% if is_system_admin and can_edit %} Edit {% endif %}
{% else %}
No system default tasks configured yet.
{% endfor %}
{% if current_selection and current_selection.is_enabled %}

Firm Task Configuration

Firm Admin can edit, disable or enable tasks for this firm and add extra firm-only tasks. System defaults are not changed.

{% if can_manage_firm_tasks %} {% endif %}
{% for task in current_templates %}
{{ task.sequence_no }}. {{ task.task_name }}
{{ 'Enabled for Firm' if task.is_active else 'Disabled for Firm' }}
Role: {{ task.default_role_name or '-' }} · Mandatory: {{ 'Yes' if task.is_mandatory else 'No' }} · Review: {{ 'Yes' if task.requires_review else 'No' }}
{% if task.description %}

{{ task.description }}

{% endif %}
{% if can_manage_firm_tasks %}
Edit
{% endif %}
{% else %}
No firm task templates are configured yet. Use Add / Manage Firm Tasks to copy defaults or add firm-specific tasks.
{% endfor %}
Editing or disabling a firm task affects future task generation only. Existing engagement task instances remain unchanged.
{% endif %}
{% endblock %}