Day-wise breakdown of FD / RD / Loan from the as-on date
Tick one or more. You can pick from both sides together.
@for (grp of pickGroups; track grp.side) {Searching…
} @else if (searchError) {{{ searchError }}
} @else if (searchText.trim().length < 2) {Type at least 2 characters of an account number or a customer name.
} @else if (!searchResults.length) {No accounts found.
} @if (searchResults.length) {Loading data from accounts…
} @if (loadError) {{{ loadError }}
} @if (breakdown) { @for (c of typeColumns; track c.value) { @if (c.notice) { } }| Bucket | Days | Dates | @for (c of typeColumns; track c.value) {{{ c.label }} | } @if (typeHasLiability && typeHasAsset) {Liabilities total | Assets total | } @else if (typeColumns.length > 1) {Total | }
|---|---|---|---|---|---|---|
| {{ r.label }} | {{ r.days }} | {{ r.dates }} | @for (v of r.cells; track $index) {{{ amountText(v) }} | } @if (typeHasLiability && typeHasAsset) {{{ amountText(r.liab) }} | {{ amountText(r.asset) }} | } @else if (typeColumns.length > 1) {{{ amountText(r.liab + r.asset) }} | }
| Total | @for (c of typeColumns; track c.value) {{{ amountText(c.total) }} | } @if (typeHasLiability && typeHasAsset) {{{ amountText(liabilityGrandTotal) }} | {{ amountText(assetGrandTotal) }} | } @else if (typeColumns.length > 1) {{{ amountText(liabilityGrandTotal + assetGrandTotal) }} | }||
Deposits and term loans are slotted by their own dates: a deposit once on its maturity date, a loan once for each unpaid instalment on its due date. Anything already due goes in the first bucket (a loan instalment follows the Overdue rule). CC / OD and NPA loans are divided by the bucket-wise % set for them in the Configuration table. Deposit amounts are balances, loan amounts are principal; interest is a separate line of the statement.
}Loading…
} @if (reportError) {{{ reportError }}
} @if (report; as rep) {| Bucket | Days | Dates | Amount | % | Entries |
|---|---|---|---|---|---|
| {{ r.label }} | {{ r.days }} | {{ r.dates }} | {{ amountText(r.amount) }} | {{ r.amount ? (r.pct | number: '1.0-1') + '%' : '' }} | {{ r.count || '' }} |
| Total | {{ amountText(rep.total) }} | {{ rep.total ? '100%' : '' }} | {{ rep.count }} | ||
A deposit counts once, on its maturity date; a loan counts once for each unpaid instalment, on its due date. Anything already due goes in the first bucket (a loan instalment follows the Overdue rule). Deposit amounts are balances, loan amounts are the principal of each instalment; interest is a separate line of the statement.
| Account | Customer | Product | Due / maturity date | Days | Bucket | Status | Amount |
|---|---|---|---|---|---|---|---|
| {{ r.kind }} {{ r.accountNo }} @if (r.installment) { instalment {{ r.installment }} } | {{ r.customer }} |
{{ r.product }}
@if (r.note) {
{{ r.note }}
}
|
{{ r.date ? (r.date | date: 'dd-MMM-yyyy') : '—' }} | {{ r.days === null ? '' : r.days }} | {{ bucketName(r.bucket) }} | {{ r.status }} | {{ amountText(r.amount) }} |
| Nothing to show for these accounts on this date. | |||||||
@if (rangeEdit) { Change the Start / End of a bucket, or add and remove buckets. When you change the End of a bucket, the Start of the next one and its heading change with it. } @else { Start and End of each bucket. Click Edit to change, add or remove buckets. }
| # | Start | End | Heading | Days / Dates | @if (rangeEdit) {} |
|---|---|---|---|---|---|
| {{ $index + 1 }} | @if (fromOf($index); as f) { @if (rangeEdit) { } @else { {{ f.n }} {{ unitLetter(f.unit) }} } } | @if (b.upTo; as t) { @if (rangeEdit) { } @else { {{ t.n }} {{ unitLetter(t.unit) }} } } @else { end } |
{{ b.label }}
@if (rangeProblem($index); as problem) {
{{ problem }}
}
|
@if (windows[$index]; as w) { {{ dayRange(w) }} · {{ dateRange(w) }} } | @if (rangeEdit) {@if (cfg.buckets.length > 2) { } | }
| {{ sec.title }} | RESIDUAL MATURITY | Total | @if (editMode) {Line | }|||||||
|---|---|---|---|---|---|---|---|---|---|---|
| {{ b.label }} | }||||||||||
| @if (editMode) { } @else { {{ item.ref }} } | @if (editMode) { } @else { {{ item.name }} } | @if (editMode) { | } | |||||||
| @if (editMode) { } @else { {{ item.ref }} } | @if (editMode) { } @else { {{ item.name }} } | @if (item.rule === 'maturity' || item.rule === 'behavioural') { } | @if (item.rule === 'maturity') { @if (autoAmounts(item); as amounts) { @for (v of amounts; track $index) {{{ amountText(v) }} | }{{ amountText(autoTotal(amounts)) }} | } @else {@if (!item.source) { This line has to be filled by hand: it has no account source yet } @else if (loading) { Data aa raha hai… } @else { No data came from the accounts } | — | } } @else if (item.rule === 'fixed') { @for (b of cfg.buckets; track $index) {{{ share(item, $index) !== null ? '100%' : '' }} | } } @else { @for (b of cfg.buckets; track $index) {} | {{ rowState(item) === 'todo' ? 'fill in' : rowTotal(item) + '%' }} | } @if (editMode) {} |
Where the amount comes from: By due date lines take their data from FD, RD and Loan accounts. Fixed, Split and By study lines take the ledger (GL) balance and apply the % above. Lines with no register have to be filled in by hand.