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

Engagement

{{ row.client.client_name if row.client else '-' }} · {{ row.catalogue.service_name if row.catalogue else '-' }} · FY {{ row.financial_year }}

Back {% if can_manage and not row.is_locked %}Edit{% endif %}
{% if row.is_locked %}
This engagement is locked as historical record. It cannot be edited.
{% endif %}

Client & Service

Client
{{ row.client.client_name if row.client else '-' }}
Service
{{ row.catalogue.service_name if row.catalogue else '-' }}
Financial Year
{{ row.financial_year or '-' }}
Assessment Year
{{ row.assessment_year or '-' }}
Return / Engagement Period
{{ row.period_label or 'Not applicable' }}
Engagement Type
{{ 'Assurance' if row.engagement_type == 'assurance' else 'Non-Assurance' }}
Original Due Date
{{ row.original_due_date or '-' }}
Expiry Date
{{ row.expiry_date or '-' }}
Current Due Date
{{ row.current_due_date or '-' }}{% if row.due_date_source %}{{ row.due_date_source|replace('_',' ')|title }}{% endif %}
Status
{{ 'Locked' if row.is_locked else row.status|replace('_',' ')|title }}{% if not row.is_active %} / Inactive{% endif %}
Engagement Dates
{{ row.start_date or '-' }} to {{ row.end_date or '-' }}

Assignment

Partner
{{ row.assigned_partner.full_name if row.assigned_partner and row.assigned_partner.full_name else (row.assigned_partner.email if row.assigned_partner else '-') }}
Performing Partner
{{ row.performing_partner.full_name if row.performing_partner and row.performing_partner.full_name else (row.performing_partner.email if row.performing_partner else (row.assigned_partner.full_name if row.assigned_partner and row.assigned_partner.full_name else (row.assigned_partner.email if row.assigned_partner else '-'))) }}
Manager
{{ row.assigned_manager.full_name if row.assigned_manager and row.assigned_manager.full_name else (row.assigned_manager.email if row.assigned_manager else '-') }}
Staff
{{ row.assigned_staff.full_name if row.assigned_staff and row.assigned_staff.full_name else (row.assigned_staff.email if row.assigned_staff else '-') }}
Review Partner
{{ row.review_partner.full_name if row.review_partner and row.review_partner.full_name else (row.review_partner.email if row.review_partner else '-') }}
{% if row.quality_workflow_required %}

AQMM Engagement Quality Workflow

Mandatory because this is an assurance engagement. Client master creation and CSV import do not trigger AQMM; this workflow is engagement-specific.

{{ row.quality_workflow_status|replace('_',' ')|title }}
{% if row.quality_block_reason %}
Blocked reason: {{ row.quality_block_reason }}
{% endif %}
Independence
{{ row.quality_independence_status|replace('_',' ')|title }}
Conflict
{{ row.quality_conflict_status|replace('_',' ')|title }}
KYC
{{ row.quality_kyc_status|replace('_',' ')|title }}
Engagement Letter
{{ row.quality_engagement_letter_status|replace('_',' ')|title }}
{% if can_manage and not row.is_locked %}
{% endif %}

AQMM Quality Checklist Tasks

These are your existing service tasks tagged as part of AQMM. No separate checklist is created.

Total: {{ aqmm_task_summary.total if aqmm_task_summary else 0 }} Completed: {{ aqmm_task_summary.completed if aqmm_task_summary else 0 }} Evidence Missing: {{ aqmm_task_summary.evidence_missing if aqmm_task_summary else 0 }} Final Blockers: {{ aqmm_task_summary.blockers|length if aqmm_task_summary else 0 }}
{% for item in aqmm_task_summary.rows if aqmm_task_summary %} {% set task = item.task %} {% else %} {% endfor %}
TaskAQMM FlagsEvidenceStatusAction
{{ task.sequence_no }}. {{ task.task_name }}
{% if task.aqmm_reference %}
{{ task.aqmm_reference }}
{% endif %}
{% if task.aqmm_mandatory %}Mandatory{% endif %}{% if task.aqmm_evidence_required %}Evidence{% endif %}{% if task.aqmm_manager_review_required %}Manager{% endif %}{% if task.aqmm_partner_review_required %}Partner{% endif %}{% if task.aqmm_review_partner_required %}Review Partner{% endif %}{% if task.aqmm_blocks_final_release %}Final Gate{% endif %}
{{ 'Uploaded' if item.has_evidence else ('Required' if task.aqmm_evidence_required else '-') }} {{ 'OK' if item.passes else item.issue }}
Task: {{ task.status|replace('_',' ')|title }}
Open Evidence
No AQMM-tagged task generated yet. Mark selected service tasks as AQMM and generate work tracker tasks.
{% if my_pending_declarations %}

My Pending Declarations

{% for declaration in my_pending_declarations %}
{{ declaration.declaration_type|title }} Declaration
{% endfor %}
{% endif %} {% if declarations %}
Declarations
{% for d in declarations %}{% endfor %}
TypeUserRoleStatusResponded
{{ d.declaration_type|title }}{{ d.requested_user.full_name if d.requested_user and d.requested_user.full_name else (d.requested_user.email if d.requested_user else '-') }}{{ d.requested_role or '-' }}{{ d.status|replace('_',' ')|title }}{{ d.responded_at_utc or '-' }}
{% endif %}
{% endif %} {% if closure_checklist %}

Engagement Closure Checklist

Closure uses existing AQMM acceptance, AQMM-tagged tasks, task evidence/review notes, final document release and UDIN controls. Only final delivery confirmations are manual.

{{ closure_checklist.closure_status|replace('_',' ')|title }}
{% if closure_checklist.closure_block_reason %}
Closure pending: {{ closure_checklist.closure_block_reason }}
{% endif %}
Tasks
{{ 'Completed' if closure_checklist.normal_tasks_completed else 'Pending' }}
AQMM Acceptance
{{ 'Completed' if closure_checklist.aqmm_acceptance_completed else 'Pending' }}
AQMM Tasks
{{ 'Completed' if closure_checklist.aqmm_tasks_completed else 'Pending' }}
Evidence / Reviews
{{ 'Completed' if closure_checklist.evidence_review_completed else 'Pending' }}
Final Release
{{ 'Completed' if closure_checklist.final_documents_released else 'Pending' }}
UDIN
{{ 'Completed' if closure_checklist.udin_completed else 'Pending' }}

Manual Closure Confirmations

{% if can_manage and closure_checklist.closure_status != 'closed' %}
{% endif %}
{% if can_manage %}
{% if closure_checklist.closure_status != 'closed' %}
{% else %}
{% endif %}
{% endif %}
{% endif %} {% if can_manage and not row.is_locked %}

Year-end Lock

Lock this engagement when the year is complete. After locking, it becomes read-only history.

{% endif %}

Engagement Tasks & Task Documents

Open each task to upload documents against its configured document requirements.

{% for task in tasks or [] %} {% else %} {% endfor %}
SeqTaskStatusDocuments
{{ task.sequence_no }}
{{ task.task_name }}
{% if task.description %}
{{ task.description }}
{% endif %}{% if task.is_aqmm_task %}
AQMM{% if task.aqmm_mandatory %}Mandatory{% endif %}{% if task.aqmm_evidence_required %}Evidence{% endif %}
{% endif %}
{{ task.status.replace('_',' ').title() }} Open Task Documents
No execution tasks generated yet. Generate work tracker tasks first.
{% if row.remarks %}

Remarks

{{ row.remarks }}

{% endif %}
{% endblock %}