Share capital held by each member as on a date — purchases less redemptions, settled only.
@if (totals) {
{{ totals.memberCount | number }}
Members Holding
{{ totals.sharesHeld | number }}
Shares Held
₹{{ totals.shareValue | number: '1.2-2' }}
Share Capital
₹{{ totals.amountRedeemed | number: '1.2-2' }}
Redeemed To Date
}
@if (hasUnpaidAllotments) {
{{ unpaidAllotments.accountCount | number }}
{{ unpaidAllotments.accountCount === 1 ? 'account has' : 'accounts have' }} shares allotted but not yet paid for
— {{ unpaidAllotments.shares | number }} shares, ₹{{ unpaidAllotments.amount | number: '1.2-2' }}. These are excluded above: share capital is what the society has received, not what it has agreed to issue.
Apply the member's collection to bring them in.
}
@if (loading) {
Loading share balances…
} @else if (loadError) {
{{ loadError }}
} @else if (!rows.length) {
No member held share capital as on {{ asOnDate }}.
} @else if (!filteredRows.length) {
No member matches the filters applied.
} @else {
Member
Membership No
Share A/c No
Branch
Product
State
Shares Held
Unit Price
Share Value
Purchased
Redeemed
Last Movement
@for (row of filteredRows; track row.shareAccountId) {
{{ row.clientName }}
{{ row.cifNumber || '—' }}
{{ row.accountNo }}
{{ row.officeName || '—' }}
{{ row.productName }}
{{ stateLabel(row.holdingState) }}
{{ row.sharesHeld | number }}
@if (row.holdingState === 'UNPAID') {
{{ row.unpaidShares | number }} unpaid
}
{{ row.unitPrice | number: '1.2-2' }}
{{ row.shareValue | number: '1.2-2' }}
{{ row.sharesPurchased | number }}
{{ row.sharesRedeemed | number }}
{{ row.lastMovementDate || '—' }}
}
{{ isFiltered ? 'Total (filtered)' : 'Total' }} — {{ filteredRows.length | number }} members
{{ shownShares | number }}
₹{{ shownValue | number: '1.2-2' }}
@if (isFiltered && totals) {
Showing a filtered view. Society-wide as on {{ asOnDate }}: {{ totals.sharesHeld | number }} shares held by
{{ totals.memberCount | number }} members, ₹{{ totals.shareValue | number: '1.2-2' }} share capital.