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.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 }} }
Leave the amount blank to take the system's interest. 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 (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.

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

} @if (closureError) {

{{ closureError }}

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