- KYC tab: fix Verify (PAN) and Send OTP (Aadhaar) being disabled in edit mode; unmask Aadhaar input and show on-file masked value as hint; resolve kycId from id/kycId/resourceId fallbacks. - Client stepper/view: add familyAllowed / nomineeAllowed predicates + CanActivate route guards. Family tab hidden for non-individuals, Nominee tab hidden for non-proprietor entities. Family-members step accepts a nomineeOnly input for proprietorship clients. Add/Edit/Delete buttons inside family-members and nominee tabs gated by canAdd. - cfcfrms: add cfcfrms-shell wrapper, restyle complaint/fraud/mule/escalate pages and dashboard. - Savings: identity-verify and transaction-confirm dialogs, manage / activate / add-charge flows, account preview styling. - Tasks, core shell, account-nominees, icons: minor style and behaviour updates. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
79 lines
3.1 KiB
HTML
79 lines
3.1 KiB
HTML
<!--
|
|
Copyright since 2025 Mifos Initiative
|
|
|
|
This Source Code Form is subject to the terms of the Mozilla Public
|
|
License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
-->
|
|
|
|
<div class="act-savings">
|
|
<!-- Hero -->
|
|
<div class="act-savings__hero">
|
|
<div class="act-savings__hero-icon">
|
|
<fa-icon icon="check-circle"></fa-icon>
|
|
</div>
|
|
<div>
|
|
<h2 class="act-savings__title">Activate Savings Account</h2>
|
|
<p class="act-savings__sub">Set the activation date and opening balance to bring this account live.</p>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Form card -->
|
|
<form class="act-savings__card" [formGroup]="activateSavingsAccountForm" (ngSubmit)="submit()">
|
|
<div class="act-savings__card-head">
|
|
<fa-icon icon="info-circle" class="act-savings__card-ico"></fa-icon>
|
|
<h3 class="act-savings__card-title">Activation Details</h3>
|
|
</div>
|
|
|
|
<div class="act-savings__card-body">
|
|
<mat-form-field appearance="outline" class="act-savings__field" (click)="activatedOnDatePicker.open()">
|
|
<mat-label>{{ 'labels.inputs.Activated On Date' | translate }}</mat-label>
|
|
<input
|
|
matInput
|
|
[min]="minDate"
|
|
[max]="maxDate"
|
|
[matDatepicker]="activatedOnDatePicker"
|
|
required
|
|
formControlName="activatedOnDate"
|
|
/>
|
|
<mat-datepicker-toggle matSuffix [for]="activatedOnDatePicker"></mat-datepicker-toggle>
|
|
<mat-datepicker #activatedOnDatePicker></mat-datepicker>
|
|
@if (activateSavingsAccountForm.controls.activatedOnDate.hasError('required')) {
|
|
<mat-error>
|
|
{{ 'labels.inputs.Activated On Date' | translate }} {{ 'labels.commons.is' | translate }}
|
|
<strong>{{ 'labels.commons.required' | translate }}</strong>
|
|
</mat-error>
|
|
}
|
|
</mat-form-field>
|
|
|
|
<mat-form-field appearance="outline" class="act-savings__field">
|
|
<mat-label>Opening Balance</mat-label>
|
|
<input matInput type="number" [min]="minRequiredOpeningBalance ?? 0" formControlName="openingBalance" />
|
|
<span matPrefix class="act-savings__prefix">₹ </span>
|
|
@if (minRequiredOpeningBalance) {
|
|
<mat-hint>Minimum required: ₹{{ minRequiredOpeningBalance }}</mat-hint>
|
|
}
|
|
@if (activateSavingsAccountForm.controls.openingBalance.hasError('min')) {
|
|
<mat-error>Opening balance must be at least ₹{{ minRequiredOpeningBalance ?? 0 }}</mat-error>
|
|
}
|
|
</mat-form-field>
|
|
</div>
|
|
|
|
<div class="act-savings__actions">
|
|
<button type="button" mat-stroked-button class="act-savings__cancel" [routerLink]="['../../transactions']">
|
|
<fa-icon icon="times" class="m-r-6"></fa-icon>
|
|
{{ 'labels.buttons.Cancel' | translate }}
|
|
</button>
|
|
<button
|
|
mat-raised-button
|
|
type="submit"
|
|
class="act-savings__confirm"
|
|
[disabled]="!activateSavingsAccountForm.valid"
|
|
>
|
|
<fa-icon icon="check" class="m-r-6"></fa-icon>
|
|
{{ 'labels.buttons.Confirm' | translate }}
|
|
</button>
|
|
</div>
|
|
</form>
|
|
</div>
|