{{ partyId ? 'Edit Party' : 'Party Master Entry' }}

@if (isClosed) { Closed — view only }

Customer & Scheme

Who this account is for, which scheme it runs under, and which agent collects for it
@for (client of clientOptions; track client.id) {
{{ client.id }} {{ client.displayName }} {{ client.officeName }}
} @if (clientListIsPartial) { Showing {{ clientOptions.length }} of {{ clientTotal }} — type a name to find the rest }
@if (loadedClientName) { {{ loadedClientName }} } @else if (clientLookupFailed) { No client with this ID }
@for (type of subTypeOptions; track type.id) {
{{ type.accountTypeCode }} {{ type.accountTypeDescription }} {{ type.accountTypeGroup }}
} @if (subTypeOptions.length === 0) { No scheme matches that. }
@if (subTypes.length === 0) { No active account type — create one first }
@for (agent of agentOptions; track agent.id) {
{{ agent.agentCode }} {{ agent.agentNameId }} {{ agent.active ? agent.homeBranch : 'not collecting' }}
} @if (agentOptions.length === 0) { No agent matches that. }
@if (loadedAgentName && !agentLookupFailed) { {{ loadedAgentName }} } @else if (loadedAgentName && agentLookupFailed) { {{ loadedAgentName }} is deactivated } @else if (agentLookupFailed) { No agent with this ID }
@for (office of offices; track office.id) { {{ office.name }} } @if (officesError) { {{ officesError }} } @else { The branch this account belongs to }
@if (savingsAccountNo) {
} @else if (partyId) {
} @else {
}
Yes No
Male Female Other
@for (op of operations; track op) { {{ op }} }
@for (occ of occupations; track occ) { {{ occ }} }
@for (r of riskLevels; track r) { {{ r }} }

Minor / Guardian

Only for a minor's account — the guardian who operates it until they come of age
@for (opt of adultMinorOptions; track opt) { {{ opt }} }
@if (isMinorAccount) {
Turns 18 on
@for (client of guardianOptions; track client.id) {
{{ client.id }} {{ client.displayName }} {{ client.officeName }}
}
@if (loadedGuardianName) { {{ loadedGuardianName }} }
To the minor
}
@if (!isMinorAccount) {

An adult's account needs no guardian details.

}

Scheme Terms

How much is collected daily, for how long, and what it matures to
Calculated
@if (partyForm.get('days')?.hasError('exceedsTerm')) { Only {{ termDays }} days in this term } @else if (termDays) { Term is {{ termDays }} days }
Collection book no.
Calculated
%
@for (type of withdrawTypes; track type) { {{ type }} }

Balances & Status

Kept by collections and the nightly batch — shown here, never typed
OD1 Flag
OD2 Flag
Yes No @if (lienHeld) { Nothing can leave this account until it is released }
@if (lienHeld) {
@for (reason of lienReasons; track reason) { {{ reason }} } What this money is being held for
@if (lienReasonIsOther) {
Write the reason in your own words
} }
Is SMS Active
Is Email Active
@for (code of freezeCodes; track code) { {{ code }} }
@for (code of advCodes; track code) { {{ code }} }
@if (creditToRequired) {

Maturity Payout Routing

Transfer To Saving — say where the maturity proceeds should land.

@for (office of offices; track office.id) { {{ office.name }} } @if (officesError) { {{ officesError }} }
@for (account of creditToAccounts; track account.id) { {{ account.accountNo }} · {{ account.productName }} } @if (creditToAccounts.length === 0) { {{ loadedClientName || 'This customer' }} has no other savings account to credit }
}
Yes No
@if (nomineesRequired) { Percentage Sequence @if (splitByPercentage && nominees.length > 0) { } @else if (splitBySequence && nominees.length > 0) { } }
@if (!nomineesRequired) {

Set Nominee to Yes to nominate someone for this account.

} @for (nominee of nominees.controls; track nominee; let i = $index) {
From date of birth
Male Female Other
@if (isNomineeMinor(nominee)) { Required for a minor }
@if (splitByPercentage) {
} @else {
}
}
@if (isClosed) {
This account is closed. No further collections or edits are possible.
} @if (minorTurnedMajor) {
This account was opened for a minor who came of age on {{ majorOn | dateFormat }}. The guardian can no longer operate it — take fresh KYC, a signature and a new mandate from the account holder.
}
@if (partyId && !isClosed && canCloseEarly) { } @if (partyId && !isClosed) { }