feat(dds): batch run preview on its own page, runs popup, projected GLs in approvals
- Generate opens the run on /organization/dds-batch-processing/run/:id with a back arrow, Post and Discard beside the figures, agent-wise table, View popup and CSV export; the table scrolls inside the page. A posted, running or failed run opens there read-only - Batch screen lists generated-but-unposted runs as buttons to reopen them; Previous runs moved into a popup with status and job chips, search, date range, pagination, row detail and export; posting progress is followed from the run status - Shared helpers for job names, money and agent grouping - Approval review shows, for a calculation run, the entries its matching Posting run will book, marked "when posted" Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
+23
-4
@@ -515,14 +515,27 @@
|
||||
}}
|
||||
</span>
|
||||
</div>
|
||||
@if (entriesProjected) {
|
||||
<div class="dri-detail-item dri-detail-item--full">
|
||||
<span class="dri-detail-label">Ledger</span>
|
||||
<span class="dri-detail-value"
|
||||
>No journal entry is made when this is approved - it records what has been earned. The entries below
|
||||
are what the matching Posting run will book.</span
|
||||
>
|
||||
</div>
|
||||
}
|
||||
<div class="dri-detail-item">
|
||||
<span class="dri-detail-label">DR Accounts</span>
|
||||
<span class="dri-detail-label">{{
|
||||
entriesProjected ? 'DR Accounts (when posted)' : 'DR Accounts'
|
||||
}}</span>
|
||||
<span class="dri-detail-value"
|
||||
>{{ debitLines.length }} account{{ debitLines.length !== 1 ? 's' : '' }}</span
|
||||
>
|
||||
</div>
|
||||
<div class="dri-detail-item">
|
||||
<span class="dri-detail-label">CR Accounts</span>
|
||||
<span class="dri-detail-label">{{
|
||||
entriesProjected ? 'CR Accounts (when posted)' : 'CR Accounts'
|
||||
}}</span>
|
||||
<span class="dri-detail-value"
|
||||
>{{ creditLines.length }} account{{ creditLines.length !== 1 ? 's' : '' }}</span
|
||||
>
|
||||
@@ -547,7 +560,10 @@
|
||||
<div class="dri-card">
|
||||
<div class="dri-section-title">
|
||||
<mat-icon>arrow_upward</mat-icon>
|
||||
Debit Entries ({{ debitLines.length }} account{{ debitLines.length !== 1 ? 's' : '' }} — funds out)
|
||||
{{ entriesProjected ? 'Debit entries when posted' : 'Debit Entries' }} ({{ debitLines.length }} account{{
|
||||
debitLines.length !== 1 ? 's' : ''
|
||||
}}
|
||||
— funds out)
|
||||
</div>
|
||||
<table class="dri-cr-table">
|
||||
<thead>
|
||||
@@ -585,7 +601,10 @@
|
||||
<div class="dri-card">
|
||||
<div class="dri-section-title">
|
||||
<mat-icon>arrow_downward</mat-icon>
|
||||
Credit Entries ({{ creditLines.length }} account{{ creditLines.length !== 1 ? 's' : '' }} — funds in)
|
||||
{{ entriesProjected ? 'Credit entries when posted' : 'Credit Entries' }} ({{ creditLines.length }} account{{
|
||||
creditLines.length !== 1 ? 's' : ''
|
||||
}}
|
||||
— funds in)
|
||||
</div>
|
||||
<table class="dri-cr-table">
|
||||
<thead>
|
||||
|
||||
@@ -189,6 +189,15 @@ export class DdsApprovalReviewComponent implements OnInit {
|
||||
private groups: { name: string; icon: string; changed: number; fields: any[] }[] = [];
|
||||
|
||||
/** Whether the entry moves money at all, and so has an amount and debit and credit sides to show. */
|
||||
/**
|
||||
* A calculation run is approved to record what has been earned in DDS's own tables; it makes no journal
|
||||
* entry itself. The sides shown for it are what the matching Posting run will book, marked so they are
|
||||
* not read as entries made on approval.
|
||||
*/
|
||||
get entriesProjected(): boolean {
|
||||
return (this.detail?.lines || []).some((line: any) => line.projected);
|
||||
}
|
||||
|
||||
get movesMoney(): boolean {
|
||||
return (this.entry?.amount !== null && this.entry?.amount !== undefined) || !!this.detail?.lines?.length;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user