Brings the DDS (Daily Deposit Scheme) UI from feature/dds onto the current dev-latest: - Agent settlement (Agent Tran), Close Party account, DDS reports, Party-Savings link field - Agent collection entry screen, per-agent GL account, maturity auto close - Approvals tab, vouchers, payout & close, Sundry GL search, closure tab and fixes - Menu: DDS Party Master, DDS Accounts, DDS Collection, DDS Reports and Locker links placed in the Deposits mega panel groups; Agent Master, Commission Slab and DDS Batch Processing under Organization; DDS Approvals tab in the checker inbox No content conflicts. Nothing from dev-latest is removed. Merge adjustments: - package-lock.json: kept dev-latest's lock file. feature/dds does not add or change any dependency in package.json; its lock file was only regenerated (about 18k lines removed and 12k added), which would have changed resolved versions for packages already on dev-latest. - Dropped src/app/deposits/party-master/CBS-Backend.code-workspace, a VS Code workspace file holding local folder paths, not app code. - angular.json: bundle budget raised to 18mb warning / 20mb error, as on feature/dds. Lint fixes required by the pre-commit hook (no behaviour change): - Prettier formatting on 12 DDS files. - create-party.component.scss: the dense data-entry section deliberately re-targets the base selectors to override them, so no-duplicate-selectors is disabled for that section instead of merging rules and changing the cascade. - notice-dialog / create-dds-account-type scss: stylelint-disable-line for the "ch" width unit. - commission-slab-master.component.scss: stylelint auto-fix. Verified with tsc -p src/tsconfig.app.json --noEmit, stylelint, prettier and eslint on all merged files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
57 lines
2.1 KiB
HTML
57 lines
2.1 KiB
HTML
<!--
|
||
Copyright since 2025 Mifos Initiative
|
||
|
||
This Source Code Form is subject to the terms of the Mozilla Public
|
||
License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||
-->
|
||
|
||
<h2 mat-dialog-title>{{ title }}</h2>
|
||
|
||
<mat-dialog-content>
|
||
<mat-form-field appearance="outline" class="dcd-field">
|
||
<mat-label>Party</mat-label>
|
||
<mat-select [(ngModel)]="partyCode" (selectionChange)="partyChanged()">
|
||
@for (p of eligibleParties; track p.id) {
|
||
<mat-option [value]="p.partyCode">
|
||
{{ p.partyCode }} · {{ p.partyName }} · Daily {{ p.dailyDepositAmount | number: '1.0-0' }}
|
||
</mat-option>
|
||
}
|
||
</mat-select>
|
||
@if (eligibleParties.length === 0) {
|
||
<!-- Only reachable on the arrears side: nobody is behind within the window. -->
|
||
<mat-hint class="dcd-none">No party has recoverable days</mat-hint>
|
||
}
|
||
</mat-form-field>
|
||
|
||
<mat-form-field appearance="outline" class="dcd-field">
|
||
<mat-label>Days</mat-label>
|
||
<mat-select [(ngModel)]="days" [disabled]="!partyCode">
|
||
@for (d of dayOptions; track d) {
|
||
<mat-option [value]="d">{{ d }} {{ d === 1 ? 'day' : 'days' }}</mat-option>
|
||
}
|
||
</mat-select>
|
||
@if (isAdvance) {
|
||
<mat-hint>Up to 5 days</mat-hint>
|
||
} @else if (partyCode) {
|
||
<mat-hint>Only days still within the catch-up window</mat-hint>
|
||
}
|
||
</mat-form-field>
|
||
|
||
<!--
|
||
What it comes to, shown before it is added rather than after. The clerk quotes this to the
|
||
customer, so it has to be the scheme's own figure and has to be visible while deciding.
|
||
-->
|
||
@if (amount > 0) {
|
||
<div class="dcd-amount">
|
||
<span class="dcd-amount__figure">{{ amount | number: '1.2-2' }}</span>
|
||
<span class="dcd-amount__basis"> {{ days }} × {{ party?.dailyDepositAmount | number: '1.2-2' }} daily </span>
|
||
</div>
|
||
}
|
||
</mat-dialog-content>
|
||
|
||
<mat-dialog-actions align="end">
|
||
<button mat-button mat-dialog-close type="button">Cancel</button>
|
||
<button mat-raised-button color="primary" type="button" [disabled]="!canAdd" (click)="add()">Add</button>
|
||
</mat-dialog-actions>
|