TREASURY · INVESTMENT · FIXED DEPOSIT

FD Investment

Fixed deposits the bank places with other banks — placement, maturity, premature closure and renewal.

@if (activeTab === 'holdings') {
@for (f of fds; track f.id) { } @empty { }
Deal No Bank Certificate Deal Date Amount Rate Maturity Date Days Interest Interest (expected) Maturity Amount Status Voucher
{{ f.dealNo }} {{ f.partyName }} {{ f.certNo }} {{ f.dealDate }} ₹{{ f.principal | number: '1.2-2' }} {{ f.intRate }}% {{ f.maturityDate }} {{ f.days }} {{ payoutLabel(f.payout) }} @if (f.payout === 'MATURITY') {
{{ calcLabel(f.calcType) }} }
₹{{ f.expectedInterest | number: '1.2-2' }} ₹{{ f.expectedMaturityAmount | number: '1.2-2' }} {{ f.status }} @if (f.closedOnDate) {
{{ f.closedOnDate }} · interest ₹{{ f.closureInterest | number: '1.2-2' }} @if (f.closureTds) { · TDS ₹{{ f.closureTds | number: '1.2-2' }} } @if (f.closurePenal) { · penal ₹{{ f.closurePenal | number: '1.2-2' }} } } @if (f.renewedFromDealNo) {
renewal of {{ f.renewedFromDealNo }} }
{{ f.voucherNo }} @if (f.closureVoucherNo) {
closed: {{ f.closureVoucherNo }} }
@if (f.status === 'ACTIVE') { }
No FDs placed yet. Use 01 FD Purchase Entry.
} @if (activeTab === 'purchase') {
@if (selectedParty; as p) { } @if (form.payout === 'MATURITY') { }
@if (quote; as q) {
@if (q.payout !== 'MATURITY') { }
@if (form.amount && selectedParty && form.bankGlAccountId) {

Voucher on save: Dr {{ selectedParty!.glCode }} {{ selectedParty!.glName }} ₹{{ form.amount | number: '1.2-2' }} / Cr {{ bankGlName(form.bankGlAccountId) }} ₹{{ form.amount | number: '1.2-2' }}

} @if (q.limit; as l) { @if (l.totalDeposits === null || l.totalDeposits === undefined) {
} @else { @if (l.partyName) { }
Limit Allowed After this FD
All banks — 20% of total deposits ₹{{ l.totalDeposits | number: '1.2-2' }}
FDs ₹{{ l.fdOutstanding | number: '1.2-2' }} + current accounts with banks ₹{{ l.bankBalances | number: '1.2-2' }}
₹{{ l.grossLimit | number: '1.2-2' }} ₹{{ l.grossAfter | number: '1.2-2' }}
{{ l.partyName }} — 5% with one bank ₹{{ l.bankLimit | number: '1.2-2' }} ₹{{ l.bankAfter | number: '1.2-2' }}
}

{{ l.message }}

} } @if (quoteError) {

{{ quoteError }}

}
} @if (activeTab === 'interest') {
@if (schedule; as s) { }
@if (schedule; as s) {

Days are actual / 365. A provision books the interest earned since the last payout (Dr 100603 Interest Receivable / Cr {{ s.fd.interestGlCode }}); a payout clears what was provisioned and books the rest. Post the lines in date order, on or after their date. The interest of the last period comes with the maturity (02 Maturity tab).

@for (r of s.rows; track r.lineType + r.intDate) { @if (r.postable && r.lineType === 'PAYOUT') { } }
Type Date Period Days Interest Already Provisioned Amount Voucher
{{ lineLabel(r.lineType) }} {{ r.intDate }} {{ r.fromDate }} → {{ r.toDate }} {{ r.days }} ₹{{ r.grossInterest | number: '1.2-2' }} {{ r.alreadyBooked ? '₹' + (r.alreadyBooked | number: '1.2-2') : '' }} ₹{{ r.amount | number: '1.2-2' }} @if (r.posted) { Posted · {{ r.voucherNo }} @if (r.tds) {
TDS ₹{{ r.tds | number: '1.2-2' }} } } @else if (r.lineType === 'MATURITY') { } @else if (r.postable) { } @else { 🔔 Due {{ r.intDate }} }
@if (s.fd.tdsRate) { }
Leave the amount blank to take the system's interest. @if (s.fd.tdsRate) { Leave TDS blank to work it out at {{ s.fd.tdsRate }}%; enter the bank's figure if it differs. } @else { {{ s.fd.partyName }} does not deduct TDS (Bank / Party Master). } Voucher: Dr bank + Dr 100602 TDS / Cr 100603 (provisioned) + Cr interest income (the rest).
}
} @if (activeTab === 'closure') {
@if (closureFd; as f) { @if (closure.type === 'PREMATURE') { } @if (closureFd?.tdsRate) { } @if (closure.type === 'PREMATURE') { } @if (closure.type !== 'RENEWAL') { } }
@if (closureFd && closure.type === 'RENEWAL') {
@if (closure.newPayout === 'MATURITY') { } @if (closureTopUp !== 0) { }
} @if (closureQuote; as q) {
@if (q.difference !== 0 && closure.type !== 'PREMATURE') {

The bank and the system differ by ₹{{ q.difference | number: '1.2-2' }}: the bank may compound differently (daily / monthly / quarterly). The bank's figure is what gets posted.

} @for (l of q.lines; track $index) { } @empty { }
Dr / Cr GL Amount
{{ l.side }} {{ l.glCode }} {{ l.glName }} ₹{{ l.amount | number: '1.2-2' }}
No voucher needed.
@if (closure.type === 'RENEWAL' && closureTopUp !== 0 && !closure.diffBankGlAccountId) {

Choose the bank for the {{ closureTopUp > 0 ? 'extra amount' : 'amount taken out' }} to complete the voucher.

}

Voucher dated {{ q.closeDate }}. The lines follow the amounts entered above.

} @if (closureError) {

{{ closureError }}

} @if (closureFd) {
}
}
{{ toastMsg }}