Convert client acceptance form to digital workflow summary
This commit is contained in:
@@ -147,69 +147,66 @@
|
|||||||
<input name="country" value="{{ form_data.country or (row.country if is_edit else 'India') }}" class="mt-1 w-full rounded-xl border border-slate-300 px-4 py-2 text-sm">
|
<input name="country" value="{{ form_data.country or (row.country if is_edit else 'India') }}" class="mt-1 w-full rounded-xl border border-slate-300 px-4 py-2 text-sm">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="md:col-span-2 rounded-2xl border border-amber-200 bg-amber-50 p-4">
|
{% set acc_status = form_data.acceptance_status or (row.acceptance_status if is_edit else 'pending_review') %}
|
||||||
|
{% set acc_required = form_data.acceptance_required if form_data.acceptance_required is defined else (row.acceptance_required if is_edit else true) %}
|
||||||
|
{% set ind_done = form_data.independence_check_completed if form_data.independence_check_completed is defined else (row.independence_check_completed if is_edit else false) %}
|
||||||
|
{% set conflict_done = form_data.conflict_check_completed if form_data.conflict_check_completed is defined else (row.conflict_check_completed if is_edit else false) %}
|
||||||
|
{% set kyc_done = form_data.kyc_completed if form_data.kyc_completed is defined else (row.kyc_completed if is_edit else false) %}
|
||||||
|
{% set el_required = form_data.engagement_letter_required if form_data.engagement_letter_required is defined else (row.engagement_letter_required if is_edit else true) %}
|
||||||
|
{% set el_received = form_data.engagement_letter_received if form_data.engagement_letter_received is defined else (row.engagement_letter_received if is_edit else false) %}
|
||||||
|
|
||||||
|
<input type="hidden" name="acceptance_status" value="{{ acc_status }}">
|
||||||
|
<input type="hidden" name="acceptance_required" value="{{ '1' if acc_required else '0' }}">
|
||||||
|
<input type="hidden" name="independence_check_completed" value="{{ '1' if ind_done else '0' }}">
|
||||||
|
<input type="hidden" name="conflict_check_completed" value="{{ '1' if conflict_done else '0' }}">
|
||||||
|
<input type="hidden" name="kyc_completed" value="{{ '1' if kyc_done else '0' }}">
|
||||||
|
<input type="hidden" name="engagement_letter_required" value="{{ '1' if el_required else '0' }}">
|
||||||
|
<input type="hidden" name="engagement_letter_received" value="{{ '1' if el_received else '0' }}">
|
||||||
|
<input type="hidden" name="acceptance_review_notes" value="{{ form_data.acceptance_review_notes or (row.acceptance_review_notes if is_edit else '') }}">
|
||||||
|
<input type="hidden" name="acceptance_rejection_reason" value="{{ form_data.acceptance_rejection_reason or (row.acceptance_rejection_reason if is_edit else '') }}">
|
||||||
|
|
||||||
|
<div class="md:col-span-2 rounded-2xl border border-sky-200 bg-sky-50 p-4">
|
||||||
<div class="flex items-start justify-between gap-3">
|
<div class="flex items-start justify-between gap-3">
|
||||||
<div>
|
<div>
|
||||||
<h4 class="text-sm font-semibold text-amber-950">Client Acceptance / Continuance Controls</h4>
|
<h4 class="text-sm font-semibold text-sky-950">Digital Client Acceptance Workflow</h4>
|
||||||
<p class="mt-1 text-xs text-amber-800">Used for AQMM and peer review evidence. High/Critical risk clients cannot be activated until acceptance is approved.</p>
|
<p class="mt-1 text-xs text-sky-800">
|
||||||
|
Independence, conflict, KYC and engagement letter controls are completed from the client detail workflow after the client is saved.
|
||||||
|
Manual ticking is intentionally disabled on this form to preserve proper AQMM and peer review evidence.
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
{% set acc_status = form_data.acceptance_status or (row.acceptance_status if is_edit else 'pending_review') %}
|
|
||||||
<span class="rounded-full px-3 py-1 text-xs font-semibold {% if acc_status == 'approved' %}bg-emerald-100 text-emerald-700{% elif acc_status == 'rejected' %}bg-rose-100 text-rose-700{% else %}bg-amber-100 text-amber-800{% endif %}">{{ acc_status.replace('_',' ').title() }}</span>
|
<span class="rounded-full px-3 py-1 text-xs font-semibold {% if acc_status == 'approved' %}bg-emerald-100 text-emerald-700{% elif acc_status == 'rejected' %}bg-rose-100 text-rose-700{% else %}bg-amber-100 text-amber-800{% endif %}">{{ acc_status.replace('_',' ').title() }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mt-4 grid gap-4 md:grid-cols-2">
|
<div class="mt-4 grid gap-3 md:grid-cols-2 text-sm text-slate-700">
|
||||||
<div>
|
<div class="rounded-xl bg-white/80 px-3 py-2 border border-sky-100">
|
||||||
<label class="block text-sm font-medium text-slate-700">Acceptance Status</label>
|
<div class="text-xs font-semibold uppercase tracking-wide text-slate-500">Independence</div>
|
||||||
<select name="acceptance_status" class="mt-1 w-full rounded-xl border border-slate-300 px-4 py-2 text-sm">
|
<div class="mt-1">{{ 'Completed' if ind_done else 'Declaration workflow pending' }}</div>
|
||||||
{% for opt in client_acceptance_statuses %}
|
|
||||||
<option value="{{ opt }}" {% if (form_data.acceptance_status or (row.acceptance_status if is_edit else 'pending_review')) == opt %}selected{% endif %}>{{ opt.replace('_',' ').title() }}</option>
|
|
||||||
{% endfor %}
|
|
||||||
</select>
|
|
||||||
<p class="mt-1 text-xs text-slate-500">Formal approval can also be done from the client detail page.</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="rounded-xl bg-white/80 px-3 py-2 border border-sky-100">
|
||||||
<div class="flex items-end">
|
<div class="text-xs font-semibold uppercase tracking-wide text-slate-500">Conflict Check</div>
|
||||||
<label class="flex items-center gap-2 text-sm text-slate-700">
|
<div class="mt-1">{{ 'Completed' if conflict_done else 'Declaration workflow pending' }}</div>
|
||||||
<input type="checkbox" name="acceptance_required" value="1" {% if form_data.acceptance_required is not defined or form_data.acceptance_required or (row.acceptance_required if is_edit else true) %}checked{% endif %}>
|
|
||||||
Client acceptance / continuance review required
|
|
||||||
</label>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="rounded-xl bg-white/80 px-3 py-2 border border-sky-100">
|
||||||
<label class="flex items-center gap-2 text-sm text-slate-700">
|
<div class="text-xs font-semibold uppercase tracking-wide text-slate-500">KYC</div>
|
||||||
<input type="checkbox" name="independence_check_completed" value="1" {% if form_data.independence_check_completed or (row.independence_check_completed if is_edit else false) %}checked{% endif %}>
|
<div class="mt-1">{{ 'Verified from Permanent Documents' if kyc_done else 'Permanent document verification pending' }}</div>
|
||||||
Independence check completed
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<label class="flex items-center gap-2 text-sm text-slate-700">
|
|
||||||
<input type="checkbox" name="conflict_check_completed" value="1" {% if form_data.conflict_check_completed or (row.conflict_check_completed if is_edit else false) %}checked{% endif %}>
|
|
||||||
Conflict check completed
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<label class="flex items-center gap-2 text-sm text-slate-700">
|
|
||||||
<input type="checkbox" name="kyc_completed" value="1" {% if form_data.kyc_completed or (row.kyc_completed if is_edit else false) %}checked{% endif %}>
|
|
||||||
KYC completed / verified
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<label class="flex items-center gap-2 text-sm text-slate-700">
|
|
||||||
<input type="checkbox" name="engagement_letter_required" value="1" {% if form_data.engagement_letter_required is not defined or form_data.engagement_letter_required or (row.engagement_letter_required if is_edit else true) %}checked{% endif %}>
|
|
||||||
Engagement letter required
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<label class="flex items-center gap-2 text-sm text-slate-700">
|
|
||||||
<input type="checkbox" name="engagement_letter_received" value="1" {% if form_data.engagement_letter_received or (row.engagement_letter_received if is_edit else false) %}checked{% endif %}>
|
|
||||||
Engagement letter received / accepted
|
|
||||||
</label>
|
|
||||||
|
|
||||||
<div class="md:col-span-2">
|
|
||||||
<label class="block text-sm font-medium text-slate-700">Acceptance Review Notes</label>
|
|
||||||
<textarea name="acceptance_review_notes" rows="3" class="mt-1 w-full rounded-xl border border-slate-300 px-4 py-2 text-sm">{{ form_data.acceptance_review_notes or (row.acceptance_review_notes if is_edit else '') }}</textarea>
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="rounded-xl bg-white/80 px-3 py-2 border border-sky-100">
|
||||||
<div class="md:col-span-2">
|
<div class="text-xs font-semibold uppercase tracking-wide text-slate-500">Engagement Letter</div>
|
||||||
<label class="block text-sm font-medium text-slate-700">Rejection Reason / Remediation Notes</label>
|
<div class="mt-1">
|
||||||
<textarea name="acceptance_rejection_reason" rows="2" class="mt-1 w-full rounded-xl border border-slate-300 px-4 py-2 text-sm">{{ form_data.acceptance_rejection_reason or (row.acceptance_rejection_reason if is_edit else '') }}</textarea>
|
{% if not el_required %}Not required{% elif el_received %}Accepted / received{% else %}Digital OTP or manual signed upload pending{% endif %}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{% if is_edit %}
|
||||||
|
<p class="mt-3 text-xs text-slate-600">
|
||||||
|
Open the client detail page to request declarations, verify KYC from permanent documents, draft engagement letter, send it to client, and approve acceptance.
|
||||||
|
</p>
|
||||||
|
{% else %}
|
||||||
|
<p class="mt-3 text-xs text-slate-600">
|
||||||
|
Save the client first. The digital acceptance workflow will be available from the client detail page.
|
||||||
|
</p>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="md:col-span-2">
|
<div class="md:col-span-2">
|
||||||
|
|||||||
Reference in New Issue
Block a user