feat(investment): FD TDS fields, GOI interest to the paisa, compact home reminders, deal no in holdings and settle guard

This commit is contained in:
2026-10-20 16:16:12 +05:30
parent d584af8e54
commit 6890584b16
11 changed files with 316 additions and 82 deletions
+54 -34
View File
@@ -47,43 +47,63 @@
</div>
</div>
<!-- Pending investment interest vouchers (coupon / provision due now or within two days) -->
@if (pendingInvestmentInterest.length) {
<a class="investment-interest-alert" routerLink="/investment/bonds" [queryParams]="{ tab: 'interest' }">
<!-- Pending investment entries (GOI / bond interest, FDs with other banks): one line each, details on demand -->
@if (pendingInvestmentInterest.length || pendingFd.length) {
<div class="investment-interest-alert">
<span class="iia-icon">🔔</span>
<span class="iia-text">
<strong>{{ pendingInvestmentInterest.length }} investment interest voucher(s) pending</strong>
@for (t of pendingInvestmentInterest; track t.purchaseId) {
<span class="iia-item">
{{ t.lineType === 'COUPON' ? 'Coupon' : 'Provision' }} · {{ t.scriptDesc }} · deal {{ t.dealNo }} ·
{{ t.overdue ? 'overdue since ' + t.intDate : t.postable ? 'due today' : 'due ' + t.intDate }}
</span>
<div class="iia-text">
<strong>Investment entries pending</strong>
@if (pendingInvestmentInterest.length) {
<div class="iia-row">
<span class="iia-summary"
>GOI / Bonds: {{ pendingInvestmentInterest.length }} interest voucher(s){{
overdueNote(pendingInvestmentInterest)
}}</span
>
<button type="button" class="iia-toggle" (click)="showInterestDetails = !showInterestDetails">
{{ showInterestDetails ? 'Hide' : 'Details' }}
</button>
<a class="iia-action" routerLink="/investment/bonds" [queryParams]="{ tab: 'interest' }"
>Open Interest Entry →</a
>
</div>
@if (showInterestDetails) {
@for (t of pendingInvestmentInterest.slice(0, detailLimit); track t.purchaseId) {
<a class="iia-item" routerLink="/investment/bonds" [queryParams]="{ tab: 'interest' }">
{{ t.lineType === 'COUPON' ? 'Coupon' : 'Provision' }} · {{ t.scriptDesc }} · deal {{ t.dealNo }} ·
{{ t.overdue ? 'overdue since ' + t.intDate : t.postable ? 'due today' : 'due ' + t.intDate }}
</a>
}
@if (pendingInvestmentInterest.length > detailLimit) {
<span class="iia-more">+{{ pendingInvestmentInterest.length - detailLimit }} more in Interest Entry</span>
}
}
}
</span>
<span class="iia-action">Open Interest Entry →</span>
</a>
}
<!-- FDs placed with other banks: interest vouchers and maturities due -->
@if (pendingFd.length) {
<a
class="investment-interest-alert"
routerLink="/investment/fd"
[queryParams]="{ tab: 'interest', fd: pendingFd[0].fdId }"
>
<span class="iia-icon">🔔</span>
<span class="iia-text">
<strong>{{ pendingFd.length }} FD investment entry(ies) pending</strong>
@for (t of pendingFd; track t.fdId) {
<span class="iia-item">
{{ t.lineType === 'MATURITY' ? 'Maturity' : t.lineType === 'PAYOUT' ? 'Interest payout' : 'Provision' }} ·
{{ t.partyName }} · FD {{ t.dealNo }} ·
{{ t.overdue ? 'overdue since ' + t.intDate : t.postable ? 'due today' : 'due ' + t.intDate }}
</span>
@if (pendingFd.length) {
<div class="iia-row">
<span class="iia-summary"
>FD with banks: {{ pendingFd.length }} entry(ies){{ overdueNote(pendingFd) }}</span
>
<button type="button" class="iia-toggle" (click)="showFdDetails = !showFdDetails">
{{ showFdDetails ? 'Hide' : 'Details' }}
</button>
<a class="iia-action" routerLink="/investment/fd">Open FD Investment →</a>
</div>
@if (showFdDetails) {
@for (t of pendingFd.slice(0, detailLimit); track t.fdId + t.lineType + t.intDate) {
<a class="iia-item" routerLink="/investment/fd" [queryParams]="{ tab: 'interest', fd: t.fdId }">
{{ t.lineType === 'MATURITY' ? 'Maturity' : t.lineType === 'PAYOUT' ? 'Interest payout' : 'Provision' }}
· {{ t.partyName }} · FD {{ t.dealNo }} ·
{{ t.overdue ? 'overdue since ' + t.intDate : t.postable ? 'due today' : 'due ' + t.intDate }}
</a>
}
@if (pendingFd.length > detailLimit) {
<span class="iia-more">+{{ pendingFd.length - detailLimit }} more in FD Investment</span>
}
}
}
</span>
<span class="iia-action">Open FD Investment →</span>
</a>
</div>
</div>
}
<!-- Quick Action Cards -->