feat: implement cashier dashboard, dividend dashboards, share accounts views, and checker tasks
This commit is contained in:
@@ -103,6 +103,12 @@
|
||||
<div class="detail-value">{{ resolutionNumber }}</div>
|
||||
</div>
|
||||
}
|
||||
@if (resolutionDate) {
|
||||
<div class="detail-block">
|
||||
<div class="detail-label">Resolution Date</div>
|
||||
<div class="detail-value">{{ resolutionDate | dateFormat }}</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -133,64 +139,71 @@
|
||||
|
||||
<!-- Transactions Table -->
|
||||
@if (filteredTransactions.length > 0) {
|
||||
<table class="statement-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-sr">#</th>
|
||||
<th class="col-date">Date</th>
|
||||
<th class="col-desc">Description</th>
|
||||
<th class="col-ref">Ref No.</th>
|
||||
<th class="col-amount text-right">Shares Purchased</th>
|
||||
<th class="col-amount text-right">Shares Redeemed</th>
|
||||
<th class="col-balance text-right">Share Balance</th>
|
||||
<th class="col-amount text-right">Amount (₹)</th>
|
||||
<th class="col-desc">Resolution No. / Meeting</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@for (txn of filteredTransactions; track txn.id; let i = $index) {
|
||||
<tr [class.debit-row]="isRedeem(txn)" [class.credit-row]="!isRedeem(txn)">
|
||||
<td class="col-sr text-center">{{ i + 1 }}</td>
|
||||
<td class="col-date">{{ txn.purchasedDate | dateFormat }}</td>
|
||||
<td class="col-desc">
|
||||
<span class="txn-desc">{{ txn.type.value }} ({{ txn.status.value }})</span>
|
||||
</td>
|
||||
<td class="col-ref text-muted mono">{{ txn.id }}</td>
|
||||
<td class="col-amount text-right credit-amount">
|
||||
@if (!isRedeem(txn)) {
|
||||
{{ txn.numberOfShares }}
|
||||
}
|
||||
</td>
|
||||
<td class="col-amount text-right debit-amount">
|
||||
@if (isRedeem(txn)) {
|
||||
{{ txn.numberOfShares }}
|
||||
}
|
||||
</td>
|
||||
<td class="col-balance text-right balance-amount">{{ txn.runningBalance }}</td>
|
||||
<td class="col-amount text-right">
|
||||
{{ txn.amount | currency: currency?.code : 'symbol-narrow' : '1.2-2' }}
|
||||
</td>
|
||||
<td class="col-desc">
|
||||
@if (isRedeem(txn)) {
|
||||
{{ txn.resolutionNumber || '—' }}
|
||||
@if (txn.meetingDate) {
|
||||
({{ txn.meetingDate | dateFormat }})
|
||||
}
|
||||
} @else {
|
||||
—
|
||||
}
|
||||
</td>
|
||||
<div class="statement-table-scroll">
|
||||
<table class="statement-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-sr text-center">#</th>
|
||||
<th class="col-date text-left">Date</th>
|
||||
<th class="col-desc text-left">Description</th>
|
||||
<th class="col-ref text-center">Ref No.</th>
|
||||
<th class="col-amount text-right">Shares Purchased</th>
|
||||
<th class="col-amount text-right">Shares Redeemed</th>
|
||||
<th class="col-balance text-right">Share Balance</th>
|
||||
<th class="col-amount text-right">Amount (₹)</th>
|
||||
<th class="col-resolution text-left">Resolution No. / Meeting</th>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr class="total-row">
|
||||
<td colspan="6" class="text-right total-label">Closing Share Balance</td>
|
||||
<td class="text-right closing-balance">{{ totalApprovedShares }}</td>
|
||||
<td colspan="2"></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</thead>
|
||||
<tbody>
|
||||
@for (txn of filteredTransactions; track txn.id; let i = $index) {
|
||||
<tr [class.debit-row]="isRedeem(txn)" [class.credit-row]="!isRedeem(txn)">
|
||||
<td class="col-sr text-center">{{ i + 1 }}</td>
|
||||
<td class="col-date text-left">{{ txn.purchasedDate | dateFormat }}</td>
|
||||
<td class="col-desc text-left">
|
||||
<span class="txn-desc">{{ txn.type.value }} ({{ txn.status.value }})</span>
|
||||
</td>
|
||||
<td class="col-ref text-center text-muted mono">{{ txn.id }}</td>
|
||||
<td class="col-amount text-right credit-amount">
|
||||
@if (!isRedeem(txn)) {
|
||||
{{ txn.numberOfShares }}
|
||||
}
|
||||
</td>
|
||||
<td class="col-amount text-right debit-amount">
|
||||
@if (isRedeem(txn)) {
|
||||
{{ txn.numberOfShares }}
|
||||
}
|
||||
</td>
|
||||
<td class="col-balance text-right balance-amount">{{ txn.runningBalance }}</td>
|
||||
<td class="col-amount text-right">
|
||||
{{ txn.amount | currency: currency?.code : 'symbol-narrow' : '1.2-2' }}
|
||||
</td>
|
||||
<td class="col-resolution text-left">
|
||||
@if (isRedeem(txn)) {
|
||||
{{ txn.resolutionNumber || '—' }}
|
||||
@if (txn.meetingDate) {
|
||||
({{ txn.meetingDate | dateFormat }})
|
||||
}
|
||||
} @else {
|
||||
<!-- Purchases are authorised by the share account's own board resolution, which is
|
||||
held on the account rather than the transaction. -->
|
||||
{{ resolutionNumber || '—' }}
|
||||
@if (resolutionDate) {
|
||||
({{ resolutionDate | dateFormat }})
|
||||
}
|
||||
}
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<tr class="total-row">
|
||||
<td colspan="6" class="text-right total-label">Closing Share Balance</td>
|
||||
<td class="text-right closing-balance">{{ totalApprovedShares }}</td>
|
||||
<td colspan="2"></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>
|
||||
} @else {
|
||||
<div class="no-data-block">
|
||||
<mat-icon>inbox</mat-icon>
|
||||
|
||||
Reference in New Issue
Block a user