@if (selectedMemberId) {
@if (familyExpanded) { @if (familyLoading) {
Loading family members...
} @else if (familyMembers.length === 0) {
info_outline No family members on record for this client.
} @else {
@for (member of familyMembers; track member.id) {
{{ familyMemberDisplayName(member) }} @if (member.relationship || member.relationshipId?.name) { {{ member.relationship || member.relationshipId?.name }} } @if (isLinkedClient(member)) { person_pin {{ member.linkedClientCif || 'CBS ID: ' + member.linkedClientId }} } @if (member.dateOfBirth) { cake {{ parseDob(member.dateOfBirth) | date: 'dd MMM yyyy' }} }
@if (isLinkedClient(member)) { person_pin Linked Client #{{ member.linkedClientId }} } @else { edit_note Manual Entry } expand_more
@if (expandedFamilyCards.has(member.id)) { @if ( member.panNumber || member.aadhaarNumber || member.nationality || member.mobileNumber ) {
@if (member.panNumber) {
PAN {{ member.panNumber }}
} @if (member.aadhaarNumber) {
Aadhaar {{ member.aadhaarNumber }}
} @if (member.nationality) {
Nationality {{ member.nationality }}
} @if (member.mobileNumber) {
Mobile {{ member.mobileNumber }}
} @if (member.qualification) {
Qualification {{ member.qualification }}
}
} @if (!isLinkedClient(member)) {
info_outline This member is not a CBS client yet.
} @if (isLinkedClient(member)) {
verified_user KYC Details {{ familyMemberDisplayName(member) }}
@if (familyKycLoading) {
Loading KYC...
} @else { @let fmKyc = familyMemberKycMap['c' + member.linkedClientId]; @if (!fmKyc) {
warning KYC not submitted for this client.
} @else {
{{ fmKyc.kycStatus === 300 ? 'verified' : fmKyc.kycStatus === 400 ? 'cancel' : fmKyc.kycStatus === 500 ? 'schedule' : 'pending' }} {{ kycStatusLabel(fmKyc.kycStatus) }} {{ fmKyc.kycType === 2 ? 'Non-Individual' : 'Individual' }} @if (fmKyc.ckycNumber) { task_alt CKYC: {{ fmKyc.ckycNumber }} } @if (fmKyc.verifiedOn) { event_available Verified: {{ parseDob(fmKyc.verifiedOn) | date: 'dd MMM yyyy' }} }
{{ fmKyc.riskCategory === 3 ? 'priority_high' : fmKyc.riskCategory === 2 ? 'warning_amber' : 'shield' }}
{{ riskLabel(fmKyc.riskCategory) }}
{{ riskRekyc(fmKyc.riskCategory) }}
@if (fmKyc.expiryDate) { @let fmExp = kycExpiryInfo(fmKyc.expiryDate);
{{ fmExp.isExpired ? 'event_busy' : 'event' }}
{{ fmExp.isExpired ? 'KYC Expired' : 'KYC Expires' }}
{{ fmExp.date | date: 'dd MMM yyyy' }} @if (!fmExp.isExpired && fmExp.isExpiringSoon) {  ({{ fmExp.daysLeft }} days left) } @if (fmExp.isExpired) {  ({{ fmExp.daysLeft * -1 }} days ago) }
}
fingerprint Identity Verification
PAN Number
{{ fmKyc.panNumber || '—' }}
@if (fmKyc.panFullName) {
{{ fmKyc.panFullName }}
} @if (fmKyc.panNumber) { {{ fmKyc.panVerified ? 'check_circle' : 'cancel' }} {{ fmKyc.panVerified ? 'Verified' : 'Not Verified' }} } @if (fmKyc.panVerifiedOn) {
on {{ parseDob(fmKyc.panVerifiedOn) | date: 'dd MMM yyyy' }}
}
Aadhaar
{{ fmKyc.aadhaarNumberMasked || '—' }}
@if (fmKyc.aadhaarNumberMasked) { {{ fmKyc.aadhaarVerified ? 'check_circle' : 'cancel' }} {{ fmKyc.aadhaarVerified ? 'Verified' : 'Not Verified' }} } @if (fmKyc.aadhaarVerifiedOn) {
on {{ parseDob(fmKyc.aadhaarVerifiedOn) | date: 'dd MMM yyyy' }}
}
PAN–Aadhaar Link
@if (fmKyc.panAadhaarSeedingStatus === 'Y') { link Linked } @else if (fmKyc.panAadhaarSeedingStatus === 'N') { link_off Not Linked } @else if (fmKyc.panAadhaarSeedingStatus === 'E') { block Exempt } @else {
—
}
@if (fmKyc.kycDocumentName) {
KYC Document
{{ fmKyc.kycDocumentName }}
@if (fmKyc.kycDocumentNumber) {
No. {{ fmKyc.kycDocumentNumber }}
} @if (fmKyc.kycDocExpiryDate) {
Expires: {{ parseDob(fmKyc.kycDocExpiryDate) | date: 'dd MMM yyyy' }}
}
}
} }
} }
}
} @if (!familyLoading && manualEntryMembers.length > 0) {
warning_amber
Submission blocked — @for (m of manualEntryMembers; track m.id; let last = $last) { {{ familyMemberDisplayName(m) }}{{ m.relationship || m.relationshipId?.name ? ' (' + (m.relationship || m.relationshipId?.name) + ')' : '' }}{{ last ? '' : ', ' }} } {{ manualEntryMembers.length === 1 ? 'is' : 'are' }} not registered as a CBS client. Use Create as Client below before submitting.
} @if (!familyLoading) {
@if (showAddAsClientPanel) {
@if (addAsClientLoading) {
hourglass_empty Loading relationships…
} @else {

Select the relationship you want to create as a client:

@for (rel of availableRelationships; track rel.id) { } @for (rel of takenRelationships; track rel.id) { }
@if (selectedNewRelationship) {
person Creating a {{ selectedNewRelationship.name }} as CBS client
} }
}
} }
} @if (selectedMemberId) {
@if (kycExpanded) { @if (familyLoading) {
Loading KYC details...
} @else if (!kycData) {
warning KYC not submitted for this client.
} @else {
{{ kycData.kycStatus === 300 ? 'verified' : kycData.kycStatus === 400 ? 'cancel' : kycData.kycStatus === 500 ? 'schedule' : 'pending' }} {{ kycStatusLabel(kycData.kycStatus) }} {{ kycData.kycType === 2 ? 'Non-Individual' : 'Individual' }} @if (kycData.ckycNumber) { task_alt CKYC: {{ kycData.ckycNumber }} } @if (kycData.verifiedOn) { event_available Verified: {{ parseDob(kycData.verifiedOn) | date: 'dd MMM yyyy' }} }
{{ kycData.riskCategory === 3 ? 'priority_high' : kycData.riskCategory === 2 ? 'warning_amber' : 'shield' }}
{{ riskLabel(kycData.riskCategory) }}
{{ riskRekyc(kycData.riskCategory) }}
@if (kycData.expiryDate) { @let expInfo = kycExpiryInfo(kycData.expiryDate);
{{ expInfo.isExpired ? 'event_busy' : 'event' }}
{{ expInfo.isExpired ? 'KYC Expired' : 'KYC Expires' }}
{{ expInfo.date | date: 'dd MMM yyyy' }} @if (!expInfo.isExpired && expInfo.isExpiringSoon) {  ({{ expInfo.daysLeft }} days left) } @if (expInfo.isExpired) {  ({{ expInfo.daysLeft * -1 }} days ago) }
}
fingerprint Identity Verification
PAN Number
{{ kycData.panNumber || '—' }}
@if (kycData.panFullName) {
{{ kycData.panFullName }}
} @if (kycData.panNumber) { {{ kycData.panVerified ? 'check_circle' : 'cancel' }} {{ kycData.panVerified ? 'Verified' : 'Not Verified' }} } @if (kycData.panVerifiedOn) {
on {{ parseDob(kycData.panVerifiedOn) | date: 'dd MMM yyyy' }}
}
Aadhaar
{{ kycData.aadhaarNumberMasked || '—' }}
@if (kycData.aadhaarNumberMasked) { {{ kycData.aadhaarVerified ? 'check_circle' : 'cancel' }} {{ kycData.aadhaarVerified ? 'Verified' : 'Not Verified' }} } @if (kycData.aadhaarVerifiedOn) {
on {{ parseDob(kycData.aadhaarVerifiedOn) | date: 'dd MMM yyyy' }}
}
PAN–Aadhaar Link
@if (kycData.panAadhaarSeedingStatus === 'Y') { link Linked } @else if (kycData.panAadhaarSeedingStatus === 'N') { link_off Not Linked } @else if (kycData.panAadhaarSeedingStatus === 'E') { block Exempt } @else {
—
}
@if (kycData.kycDocumentName) {
KYC Document
{{ kycData.kycDocumentName }}
@if (kycData.kycDocumentNumber) {
No. {{ kycData.kycDocumentNumber }}
} @if (kycData.kycDocExpiryDate) {
Expires: {{ parseDob(kycData.kycDocExpiryDate) | date: 'dd MMM yyyy' }}
}
} @if (kycData.gstinNumber) {
GSTIN
{{ kycData.gstinNumber }}
{{ kycData.gstinVerified ? 'check_circle' : 'cancel' }} {{ kycData.gstinVerified ? 'Verified' : 'Not Verified' }}
}
@if ( kycData.amlCheckStatus || kycData.bannedEntityMatch || kycData.willfulDefaulter || kycData.accountStatus ) {
gavel Compliance & Account
@if (kycData.amlCheckStatus) {
AML Check
{{ kycData.amlCheckStatus }}
} @if (kycData.bannedEntityMatch) {
Banned Entity
{{ kycData.bannedEntityMatch }}
} @if (kycData.willfulDefaulter) {
Willful Defaulter
{{ kycData.willfulDefaulter }}
} @if (kycData.accountStatus) {
Account Status
{{ kycData.accountStatus }}
@if (kycData.freezeReason) {
{{ kycData.freezeReason }}
}
}
}
} }
} @if (selectedMemberId && !familyLoading) {
@if (eligExpanded) {
{{ isEligible ? 'verified' : 'gpp_bad' }}
No Due Certificate {{ isEligible ? 'ELIGIBLE — No overdue loans found for nominee or family members' : 'NOT ELIGIBLE — One or more overdue loans exist' }}
@if (familyAccountsLoading) { }
@if (nomineeLoanAccounts.length > 0) {
account_balance Nominee — Loan Accounts
@for (loan of nomineeLoanAccounts; track loan.id) {
{{ loan.accountNo }} {{ loan.productName }} {{ loanStatusLabel(loan) }} @if (loan.inArrears) { In Arrears }
Loan Amount₹{{ loan.originalLoan ?? 0 | number: '1.2-2' }}
Outstanding₹{{ loan.loanBalance ?? 0 | number: '1.2-2' }}
Paid₹{{ loan.amountPaid ?? 0 | number: '1.2-2' }}
@if (loan.timeline) {
Submitted{{ parseDob(loan.timeline.submittedOnDate) | date: 'dd MMM yyyy' }}
Approved{{ parseDob(loan.timeline.approvedOnDate) | date: 'dd MMM yyyy' }}
Disbursed{{ parseDob(loan.timeline.actualDisbursementDate) | date: 'dd MMM yyyy' }}
Matures{{ parseDob(loan.timeline.expectedMaturityDate) | date: 'dd MMM yyyy' }}
}
} } @else {
info No loan accounts found for nominee.
} @if (nomineeSavingsAccounts.length + nomineeCurrentAccounts.length > 0) {
savings Nominee — Deposit Accounts
@for (sav of nomineeSavingsAccounts; track sav.id) { } @for (ca of nomineeCurrentAccounts; track ca.id) { }
Account No Product Type Balance Status
{{ sav.accountNo }} {{ sav.productName }} {{ depositTypeLabel(sav) }} ₹{{ sav.accountBalance ?? sav.balance ?? 0 | number: '1.2-2' }} {{ sav.status?.value ?? '—' }}
{{ ca.accountNo }} {{ ca.productName }} {{ depositTypeLabel(ca) }} ₹{{ ca.accountBalance ?? ca.balance ?? 0 | number: '1.2-2' }} {{ ca.status?.value ?? '—' }}
} @for (member of familyMembers; track member.id) { @if (member.linkedClientId) { @let fmAcc = familyMemberAccounts(member.linkedClientId);
group {{ familyMemberDisplayName(member) }} @if (member.relationship || member.relationshipId?.name) { {{ member.relationship || member.relationshipId?.name }} }
@if (familyAccountsLoading && !fmAcc) {
Loading accounts...
} @else if (fmAcc) { @if ((fmAcc.loanAccounts?.length ?? 0) > 0) {
account_balance Loan Accounts
@for (loan of fmAcc.loanAccounts; track loan.id) {
{{ loan.accountNo }} {{ loan.productName }} {{ loanStatusLabel(loan) }} @if (loan.inArrears) { In Arrears }
Loan Amount₹{{ loan.originalLoan ?? 0 | number: '1.2-2' }}
Outstanding₹{{ loan.loanBalance ?? 0 | number: '1.2-2' }}
Paid₹{{ loan.amountPaid ?? 0 | number: '1.2-2' }}
@if (loan.timeline) {
Submitted{{ parseDob(loan.timeline.submittedOnDate) | date: 'dd MMM yyyy' }}
Approved{{ parseDob(loan.timeline.approvedOnDate) | date: 'dd MMM yyyy' }}
Disbursed{{ parseDob(loan.timeline.actualDisbursementDate) | date: 'dd MMM yyyy' }}
Matures{{ parseDob(loan.timeline.expectedMaturityDate) | date: 'dd MMM yyyy' }}
}
} } @else {
info No loan accounts.
} @if ((fmAcc.savingsAccounts?.length ?? 0) + (fmAcc.currentAccounts?.length ?? 0) > 0) {
savings Deposit Accounts
@for (sav of fmAcc.savingsAccounts; track sav.id) { } @for (ca of fmAcc.currentAccounts; track ca.id) { }
Account No Product Type Balance Status
{{ sav.accountNo }} {{ sav.productName }} {{ depositTypeLabel(sav) }} ₹{{ sav.accountBalance ?? sav.balance ?? 0 | number: '1.2-2' }} {{ sav.status?.value ?? '—' }}
{{ ca.accountNo }} {{ ca.productName }} {{ depositTypeLabel(ca) }} ₹{{ ca.accountBalance ?? ca.balance ?? 0 | number: '1.2-2' }} {{ ca.status?.value ?? '—' }}
} } @else {
info No account data available.
} } } }
} @if (selectedMemberId && nomineeAccounts) {
@if (guarantorsExpanded) { @if (nomineeGuarantorAccounts.length === 0) {
info_outline This member is not a guarantor on any loan.
} @else {
verified_user This member is acting as guarantor on {{ nomineeGuarantorAccounts.length }} loan{{ nomineeGuarantorAccounts.length > 1 ? 's' : '' }}
@for (g of nomineeGuarantorAccounts; track g.id) {
credit_score Loan #{{ g.accountNo }} @if (g.relationship) { {{ g.relationship }} }
{{ g.productName }} @if (g.inArrears) { In Arrears } @else { {{ g.status?.value }} }
@if (g.borrowerName) {
person Borrower: {{ g.borrowerName }}
} @if (g.savingsAccountNo) {
account_balance_wallet Pledged Savings A/C: {{ g.savingsAccountNo }} @if (g.savingsBalance != null) {  ·  Balance: {{ g.savingsBalance | number: '1.2-2' }} }
} @if ((g.inArrears && g.totalOverdue > 0) || g.missedInstallments > 0) {
warning Overdue: {{ g.totalOverdue | number: '1.2-2' }} @if (g.overdueSinceDate) {  · Since {{ g.overdueSinceDate | date: 'dd MMM yyyy' }} } @if (g.missedInstallments > 0) {  · {{ g.missedInstallments }} EMI missed }
} @else {
check_circle No overdue — loan is in good standing
}
Loan Amount {{ g.originalLoan | number: '1.2-2' }}
Guaranteed {{ g.onHoldAmount | number: '1.2-2' }}
Released {{ g.amountReleased | number: '1.2-2' }}
Remaining {{ g.amountRemaining | number: '1.2-2' }}
Balance {{ g.loanBalance | number: '1.2-2' }}
Paid {{ g.amountPaid | number: '1.2-2' }}
Submitted {{ g.submittedOnDate ? (g.submittedOnDate | date: 'dd MMM yyyy') : '—' }}
Approved {{ g.approvedOnDate ? (g.approvedOnDate | date: 'dd MMM yyyy') : '—' }}
Disbursed {{ g.disbursedOnDate ? (g.disbursedOnDate | date: 'dd MMM yyyy') : '—' }}
Matures {{ g.expectedMaturityDate ? (g.expectedMaturityDate | date: 'dd MMM yyyy') : '—' }}
}
} }
}
@if (selectedMemberId && profileForm.value.applicantName) {
{{ profileForm.value.applicantName?.charAt(0) | uppercase }}
{{ profileForm.value.applicantName }}
ID: {{ selectedMemberId }} @if (selectedShareCount) {  ·  {{ selectedShareCount }} shares }
{{ isEligible ? 'check_circle' : 'warning' }} {{ isEligible ? 'Eligible' : 'Not Eligible' }}
}
Full Name * Required Date of Birth * Required Gender * @for (g of genders; track g) { {{ g }} } Required Mobile Number * Valid 10-digit number required Email Invalid email Occupation Caste Category @for (c of categories; track c) { {{ c }} } Share Count * Required — min 1 share Address * Required
close Cancel
Select Post * @for (post of posts; track post.id) { {{ post.postName }}  ({{ post.totalSeats }} seat(s)) } Please select a post @if (selectedPost()) {

Eligibility for this post

@if (selectedPost().minAge || selectedPost().maxAge) {
cake Age: {{ selectedPost().minAge ?? 'Any' }} – {{ selectedPost().maxAge ?? 'Any' }}
} @if (selectedPost().casteCategory) {
group Category: {{ selectedPost().casteCategory }}
} @if (selectedPost().genderType && selectedPost().genderType !== 'ANY') {
wc Gender: {{ selectedPost().genderType }}
} @if (selectedPost().minShareHolding > 0) {
account_balance_wallet Min Shares: {{ selectedPost().minShareHolding }}
}
} Location / Branch * Required Service Details
gavel

Declaration by Applicant

I, {{ profileForm.value.applicantName || '______' }}, hereby declare that:

  • All information provided in this nomination form is true and correct to the best of my knowledge.
  • I am a valid share account holder of this cooperative society.
  • I have no outstanding loans or dues against my account.
  • I do not have any family members who are currently serving as Directors.
  • I meet all the eligibility criteria for the post of {{ selectedPost()?.postName || '______' }}.
  • I understand that providing false information may disqualify my nomination.
I accept the above declaration and confirm all information provided is accurate.