fix: Diverse problems in the Organization section

This fixes a number of layout issues in the Organization section,
replaces "Advanced Search" in the path by "Fund Mapping",
adds a missing translation and
fixes a broken link on the Organization page itself.

FIXES: WEB-227, WEB-226, WEB-225, WEB-224
This commit is contained in:
Felix van Hove
2025-06-29 16:36:48 +02:00
parent a4f675d643
commit 3713df0235
17 changed files with 401 additions and 382 deletions
@@ -1,190 +1,192 @@
<mat-card class="container" *ngIf="!isCollapsed">
<form [formGroup]="fundMappingForm" (ngSubmit)="submit()">
<div class="layout-row-wrap gap-2percent responsive-column align-start-center">
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Loan Status' | translate }}</mat-label>
<mat-select formControlName="loanStatus" multiple>
<mat-option value="all">{{ 'labels.inputs.All' | translate }}</mat-option>
<mat-option value="active">{{ 'labels.inputs.Active' | translate }}</mat-option>
<mat-option value="closed">{{ 'labels.inputs.Overpaid' | translate }}</mat-option>
<mat-option value="overpaid">{{ 'labels.inputs.Closed (obligations met)' | translate }}</mat-option>
<mat-option value="writeoff">{{ 'labels.inputs.Closed (written-off)' | translate }}</mat-option>
</mat-select>
</mat-form-field>
<span class="flex-48 hide-lt-md"></span>
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Product' | translate }}</mat-label>
<mat-select formControlName="loanProducts" multiple>
<mat-option *ngFor="let product of advanceSearchTemplate.loanProducts" [value]="product.id">
{{ product.name }}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
<mat-select formControlName="offices" multiple>
<mat-option *ngFor="let office of advanceSearchTemplate.offices" [value]="office.id">
{{ office.name }}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field class="flex-31">
<mat-label>{{ 'labels.inputs.Date Type' | translate }}</mat-label>
<mat-select required formControlName="loanDateOption">
<mat-option value="approvalDate">{{ 'labels.inputs.Approval Date' | translate }}</mat-option>
<mat-option value="createdDate">{{ 'labels.inputs.Creation Date' | translate }}</mat-option>
<mat-option value="disbursalDate">{{ 'labels.inputs.Disbursement Date' | translate }}</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field class="flex-fill flex-31" (click)="fromDatePicker.open()">
<mat-label>{{ 'labels.inputs.From Date' | translate }}</mat-label>
<input
matInput
[min]="minDate"
[max]="maxDate"
[matDatepicker]="fromDatePicker"
formControlName="loanFromDate"
required
/>
<mat-datepicker-toggle matSuffix [for]="fromDatePicker"></mat-datepicker-toggle>
<mat-datepicker #fromDatePicker></mat-datepicker>
<mat-error *ngIf="fundMappingForm.controls.loanFromDate.hasError('required')">
{{ 'labels.inputs.From Date' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-form-field class="flex-fill flex-31" (click)="toDatePicker.open()">
<mat-label>{{ 'labels.inputs.To Date' | translate }}</mat-label>
<input
matInput
[min]="minDate"
[max]="maxDate"
[matDatepicker]="toDatePicker"
formControlName="loanToDate"
required
/>
<mat-datepicker-toggle matSuffix [for]="toDatePicker"></mat-datepicker-toggle>
<mat-datepicker #toDatePicker></mat-datepicker>
<mat-error *ngIf="fundMappingForm.controls.loanToDate.hasError('required')">
{{ 'labels.inputs.To Date' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-checkbox
labelPosition="before"
formControlName="includeOutStandingAmountPercentage"
class="margin-b flex-73"
>
{{ 'labels.inputs.Loan Outstanding Percentage' | translate }}
</mat-checkbox>
<div
*ngIf="fundMappingForm.value.includeOutStandingAmountPercentage"
class="flex-fill layout-row-wrap gap-2percent layout-xs-column"
>
<mat-form-field *ngIf="fundMappingForm.contains('outStandingAmountPercentageCondition')" class="flex-31">
<mat-label>{{ 'labels.inputs.Comparison Condition' | translate }}</mat-label>
<mat-select required formControlName="outStandingAmountPercentageCondition">
<mat-option value="between">{{ 'labels.inputs.between' | translate }}</mat-option>
<mat-option value="<=">&lt;=</mat-option>
<mat-option value=">=">&gt;=</mat-option>
<mat-option value="<">&lt;</mat-option>
<mat-option value=">">&gt;</mat-option>
<mat-option value="=">=</mat-option>
<mat-card-content>
<div class="layout-row-wrap gap-2percent responsive-column align-start-center">
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Loan Status' | translate }}</mat-label>
<mat-select formControlName="loanStatus" multiple>
<mat-option value="all">{{ 'labels.inputs.All' | translate }}</mat-option>
<mat-option value="active">{{ 'labels.inputs.Active' | translate }}</mat-option>
<mat-option value="closed">{{ 'labels.inputs.Overpaid' | translate }}</mat-option>
<mat-option value="overpaid">{{ 'labels.inputs.Closed (obligations met)' | translate }}</mat-option>
<mat-option value="writeoff">{{ 'labels.inputs.Closed (written-off)' | translate }}</mat-option>
</mat-select>
<mat-error *ngIf="fundMappingForm.controls.outStandingAmountPercentageCondition.hasError('required')">
{{ 'labels.inputs.Comparison Condition' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="fundMappingForm.contains('minOutStandingAmountPercentage')" class="flex-31">
<mat-label>{{ 'labels.inputs.Minimum Value' | translate }}</mat-label>
<input type="number" matInput required formControlName="minOutStandingAmountPercentage" />
<mat-error *ngIf="fundMappingForm.controls.minOutStandingAmountPercentage.hasError('required')">
{{ 'labels.inputs.Minimum Value' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<span class="flex-48 hide-lt-md"></span>
<mat-form-field *ngIf="fundMappingForm.contains('outStandingAmountPercentage')" class="flex-31">
<mat-label>{{ 'labels.inputs.Comparison Value' | translate }}</mat-label>
<input type="number" matInput required formControlName="outStandingAmountPercentage" />
<mat-error *ngIf="fundMappingForm.controls.outStandingAmountPercentage.hasError('required')">
{{ 'labels.inputs.Comparison Value' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="fundMappingForm.contains('maxOutStandingAmountPercentage')" class="flex-31">
<mat-label>{{ 'labels.inputs.Maximum Value' | translate }}</mat-label>
<input type="number" matInput required formControlName="maxOutStandingAmountPercentage" />
<mat-error *ngIf="fundMappingForm.controls.maxOutStandingAmountPercentage.hasError('required')">
{{ 'labels.inputs.Maximum Value' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
</div>
<mat-checkbox class="flex-73 margin-b" labelPosition="before" formControlName="includeOutstandingAmount">
{{ 'labels.inputs.Loan Outstanding Amount' | translate }}
</mat-checkbox>
<div
*ngIf="fundMappingForm.value.includeOutstandingAmount"
class="flex-fill layout-row-wrap gap-2percent responsive-column"
>
<mat-form-field *ngIf="fundMappingForm.contains('outstandingAmountCondition')" class="flex-31">
<mat-label>{{ 'labels.inputs.Comparison Condition' | translate }}</mat-label>
<mat-select required formControlName="outstandingAmountCondition">
<mat-option value="between">{{ 'labels.inputs.between' | translate }}</mat-option>
<mat-option value="<=">&lt;=</mat-option>
<mat-option value=">=">&gt;=</mat-option>
<mat-option value="<">&lt;</mat-option>
<mat-option value=">">&gt;</mat-option>
<mat-option value="=">=</mat-option>
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Product' | translate }}</mat-label>
<mat-select formControlName="loanProducts" multiple>
<mat-option *ngFor="let product of advanceSearchTemplate.loanProducts" [value]="product.id">
{{ product.name }}
</mat-option>
</mat-select>
<mat-error *ngIf="fundMappingForm.controls.outstandingAmountCondition.hasError('required')">
{{ 'labels.inputs.Comparison Condition' | translate }} {{ 'labels.commons.is' | translate }}
</mat-form-field>
<mat-form-field class="flex-48">
<mat-label>{{ 'labels.inputs.Office' | translate }}</mat-label>
<mat-select formControlName="offices" multiple>
<mat-option *ngFor="let office of advanceSearchTemplate.offices" [value]="office.id">
{{ office.name }}
</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field class="flex-31">
<mat-label>{{ 'labels.inputs.Date Type' | translate }}</mat-label>
<mat-select required formControlName="loanDateOption">
<mat-option value="approvalDate">{{ 'labels.inputs.Approval Date' | translate }}</mat-option>
<mat-option value="createdDate">{{ 'labels.inputs.Creation Date' | translate }}</mat-option>
<mat-option value="disbursalDate">{{ 'labels.inputs.Disbursement Date' | translate }}</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field class="flex-31" (click)="fromDatePicker.open()">
<mat-label>{{ 'labels.inputs.From Date' | translate }}</mat-label>
<input
matInput
[min]="minDate"
[max]="maxDate"
[matDatepicker]="fromDatePicker"
formControlName="loanFromDate"
required
/>
<mat-datepicker-toggle matSuffix [for]="fromDatePicker"></mat-datepicker-toggle>
<mat-datepicker #fromDatePicker></mat-datepicker>
<mat-error *ngIf="fundMappingForm.controls.loanFromDate.hasError('required')">
{{ 'labels.inputs.From Date' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="fundMappingForm.contains('minOutstandingAmount')" class="flex-31">
<mat-label>{{ 'labels.inputs.Minimum Value' | translate }}</mat-label>
<input type="number" matInput required formControlName="minOutstandingAmount" />
<mat-error *ngIf="fundMappingForm.controls.minOutstandingAmount.hasError('required')">
{{ 'labels.inputs.Minimum Value' | translate }} {{ 'labels.commons.is' | translate }}
<mat-form-field class="flex-31" (click)="toDatePicker.open()">
<mat-label>{{ 'labels.inputs.To Date' | translate }}</mat-label>
<input
matInput
[min]="minDate"
[max]="maxDate"
[matDatepicker]="toDatePicker"
formControlName="loanToDate"
required
/>
<mat-datepicker-toggle matSuffix [for]="toDatePicker"></mat-datepicker-toggle>
<mat-datepicker #toDatePicker></mat-datepicker>
<mat-error *ngIf="fundMappingForm.controls.loanToDate.hasError('required')">
{{ 'labels.inputs.To Date' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="fundMappingForm.contains('outstandingAmount')" class="flex-31">
<mat-label>{{ 'labels.inputs.Comparison Value' | translate }}</mat-label>
<input type="number" matInput required formControlName="outstandingAmount" />
<mat-error *ngIf="fundMappingForm.controls.outstandingAmount.hasError('required')">
{{ 'labels.inputs.Comparison Value' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-checkbox
labelPosition="before"
formControlName="includeOutStandingAmountPercentage"
class="margin-b flex-73"
>
{{ 'labels.inputs.Loan Outstanding Percentage' | translate }}
</mat-checkbox>
<mat-form-field *ngIf="fundMappingForm.contains('maxOutstandingAmount')" class="flex-31">
<mat-label>{{ 'labels.inputs.Maximum Value' | translate }}</mat-label>
<input type="number" matInput required formControlName="maxOutstandingAmount" />
<mat-error *ngIf="fundMappingForm.controls.maxOutstandingAmount.hasError('required')">
{{ 'labels.inputs.Maximum Value' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<div
*ngIf="fundMappingForm.value.includeOutStandingAmountPercentage"
class="flex-fill layout-row-wrap gap-2percent layout-xs-column"
>
<mat-form-field *ngIf="fundMappingForm.contains('outStandingAmountPercentageCondition')" class="flex-31">
<mat-label>{{ 'labels.inputs.Comparison Condition' | translate }}</mat-label>
<mat-select required formControlName="outStandingAmountPercentageCondition">
<mat-option value="between">{{ 'labels.inputs.between' | translate }}</mat-option>
<mat-option value="<=">&lt;=</mat-option>
<mat-option value=">=">&gt;=</mat-option>
<mat-option value="<">&lt;</mat-option>
<mat-option value=">">&gt;</mat-option>
<mat-option value="=">=</mat-option>
</mat-select>
<mat-error *ngIf="fundMappingForm.controls.outStandingAmountPercentageCondition.hasError('required')">
{{ 'labels.inputs.Comparison Condition' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="fundMappingForm.contains('minOutStandingAmountPercentage')" class="flex-31">
<mat-label>{{ 'labels.inputs.Minimum Value' | translate }}</mat-label>
<input type="number" matInput required formControlName="minOutStandingAmountPercentage" />
<mat-error *ngIf="fundMappingForm.controls.minOutStandingAmountPercentage.hasError('required')">
{{ 'labels.inputs.Minimum Value' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="fundMappingForm.contains('outStandingAmountPercentage')" class="flex-31">
<mat-label>{{ 'labels.inputs.Comparison Value' | translate }}</mat-label>
<input type="number" matInput required formControlName="outStandingAmountPercentage" />
<mat-error *ngIf="fundMappingForm.controls.outStandingAmountPercentage.hasError('required')">
{{ 'labels.inputs.Comparison Value' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="fundMappingForm.contains('maxOutStandingAmountPercentage')" class="flex-31">
<mat-label>{{ 'labels.inputs.Maximum Value' | translate }}</mat-label>
<input type="number" matInput required formControlName="maxOutStandingAmountPercentage" />
<mat-error *ngIf="fundMappingForm.controls.maxOutStandingAmountPercentage.hasError('required')">
{{ 'labels.inputs.Maximum Value' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
</div>
<mat-checkbox class="flex-73 margin-b" labelPosition="before" formControlName="includeOutstandingAmount">
{{ 'labels.inputs.Loan Outstanding Amount' | translate }}
</mat-checkbox>
<div
*ngIf="fundMappingForm.value.includeOutstandingAmount"
class="flex-fill layout-row-wrap gap-2percent responsive-column"
>
<mat-form-field *ngIf="fundMappingForm.contains('outstandingAmountCondition')" class="flex-31">
<mat-label>{{ 'labels.inputs.Comparison Condition' | translate }}</mat-label>
<mat-select required formControlName="outstandingAmountCondition">
<mat-option value="between">{{ 'labels.inputs.between' | translate }}</mat-option>
<mat-option value="<=">&lt;=</mat-option>
<mat-option value=">=">&gt;=</mat-option>
<mat-option value="<">&lt;</mat-option>
<mat-option value=">">&gt;</mat-option>
<mat-option value="=">=</mat-option>
</mat-select>
<mat-error *ngIf="fundMappingForm.controls.outstandingAmountCondition.hasError('required')">
{{ 'labels.inputs.Comparison Condition' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="fundMappingForm.contains('minOutstandingAmount')" class="flex-31">
<mat-label>{{ 'labels.inputs.Minimum Value' | translate }}</mat-label>
<input type="number" matInput required formControlName="minOutstandingAmount" />
<mat-error *ngIf="fundMappingForm.controls.minOutstandingAmount.hasError('required')">
{{ 'labels.inputs.Minimum Value' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="fundMappingForm.contains('outstandingAmount')" class="flex-31">
<mat-label>{{ 'labels.inputs.Comparison Value' | translate }}</mat-label>
<input type="number" matInput required formControlName="outstandingAmount" />
<mat-error *ngIf="fundMappingForm.controls.outstandingAmount.hasError('required')">
{{ 'labels.inputs.Comparison Value' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="fundMappingForm.contains('maxOutstandingAmount')" class="flex-31">
<mat-label>{{ 'labels.inputs.Maximum Value' | translate }}</mat-label>
<input type="number" matInput required formControlName="maxOutstandingAmount" />
<mat-error *ngIf="fundMappingForm.controls.maxOutstandingAmount.hasError('required')">
{{ 'labels.inputs.Maximum Value' | translate }} {{ 'labels.commons.is' | translate }}
<strong>{{ 'labels.commons.required' | translate }}</strong>
</mat-error>
</mat-form-field>
</div>
</div>
</div>
</mat-card-content>
<mat-card-actions class="layout-row align-center gap-5px responsive-column">
<button type="button" mat-raised-button [routerLink]="['../']">{{ 'labels.buttons.Cancel' | translate }}</button>
@@ -1,225 +1,229 @@
<mat-card class="container">
<div class="layout-row-wrap gap-2px responsive-column">
<mat-form-field class="flex-fill flex-18">
<mat-label>{{ 'labels.text.Search by Text' | translate }}</mat-label>
<input matInput [formControl]="searchText" />
</mat-form-field>
<mat-card-content>
<div class="layout-row-wrap gap-2px responsive-column">
<mat-form-field class="flex-18">
<mat-label>{{ 'labels.text.Search by Text' | translate }}</mat-label>
<input matInput [formControl]="searchText" />
</mat-form-field>
<mat-form-field class="flex-fill flex-18" (click)="effectiveFromDatePicker.open()">
<mat-label>{{ 'labels.text.Effective Date From' | translate }}</mat-label>
<input
matInput
[min]="minDate"
[max]="maxDate"
[matDatepicker]="effectiveFromDatePicker"
[formControl]="effectiveFromDate"
/>
<mat-datepicker-toggle matSuffix [for]="effectiveFromDatePicker"></mat-datepicker-toggle>
<mat-datepicker #effectiveFromDatePicker></mat-datepicker>
</mat-form-field>
<mat-form-field class="flex-18" (click)="effectiveFromDatePicker.open()">
<mat-label>{{ 'labels.text.Effective Date From' | translate }}</mat-label>
<input
matInput
[min]="minDate"
[max]="maxDate"
[matDatepicker]="effectiveFromDatePicker"
[formControl]="effectiveFromDate"
/>
<mat-datepicker-toggle matSuffix [for]="effectiveFromDatePicker"></mat-datepicker-toggle>
<mat-datepicker #effectiveFromDatePicker></mat-datepicker>
</mat-form-field>
<mat-form-field class="flex-fill flex-18" (click)="effectiveToDatePicker.open()">
<mat-label>{{ 'labels.text.Effective Date To' | translate }}</mat-label>
<input
matInput
[min]="minDate"
[max]="maxDate"
[matDatepicker]="effectiveToDatePicker"
[formControl]="effectiveToDate"
/>
<mat-datepicker-toggle matSuffix [for]="effectiveToDatePicker"></mat-datepicker-toggle>
<mat-datepicker #effectiveToDatePicker></mat-datepicker>
</mat-form-field>
<mat-form-field class="flex-18" (click)="effectiveToDatePicker.open()">
<mat-label>{{ 'labels.text.Effective Date To' | translate }}</mat-label>
<input
matInput
[min]="minDate"
[max]="maxDate"
[matDatepicker]="effectiveToDatePicker"
[formControl]="effectiveToDate"
/>
<mat-datepicker-toggle matSuffix [for]="effectiveToDatePicker"></mat-datepicker-toggle>
<mat-datepicker #effectiveToDatePicker></mat-datepicker>
</mat-form-field>
<mat-form-field class="flex-fill flex-18" (click)="settlementFromDatePicker.open()">
<mat-label>{{ 'labels.text.Settlement Date From' | translate }}</mat-label>
<input
matInput
[min]="minDate"
[max]="maxDate"
[matDatepicker]="settlementFromDatePicker"
[formControl]="settlementFromDate"
/>
<mat-datepicker-toggle matSuffix [for]="settlementFromDatePicker"></mat-datepicker-toggle>
<mat-datepicker #settlementFromDatePicker></mat-datepicker>
</mat-form-field>
<mat-form-field class="flex-18" (click)="settlementFromDatePicker.open()">
<mat-label>{{ 'labels.text.Settlement Date From' | translate }}</mat-label>
<input
matInput
[min]="minDate"
[max]="maxDate"
[matDatepicker]="settlementFromDatePicker"
[formControl]="settlementFromDate"
/>
<mat-datepicker-toggle matSuffix [for]="settlementFromDatePicker"></mat-datepicker-toggle>
<mat-datepicker #settlementFromDatePicker></mat-datepicker>
</mat-form-field>
<mat-form-field class="flex-fill flex-18" (click)="settlementToDatePicker.open()">
<mat-label>{{ 'labels.text.Settlement Date To' | translate }}</mat-label>
<input
matInput
[min]="minDate"
[max]="maxDate"
[matDatepicker]="settlementToDatePicker"
[formControl]="settlementToDate"
/>
<mat-datepicker-toggle matSuffix [for]="settlementToDatePicker"></mat-datepicker-toggle>
<mat-datepicker #settlementToDatePicker></mat-datepicker>
</mat-form-field>
<mat-form-field class="flex-18" (click)="settlementToDatePicker.open()">
<mat-label>{{ 'labels.text.Settlement Date To' | translate }}</mat-label>
<input
matInput
[min]="minDate"
[max]="maxDate"
[matDatepicker]="settlementToDatePicker"
[formControl]="settlementToDate"
/>
<mat-datepicker-toggle matSuffix [for]="settlementToDatePicker"></mat-datepicker-toggle>
<mat-datepicker #settlementToDatePicker></mat-datepicker>
</mat-form-field>
<div class="center m-t-15 flex-98">
<button mat-raised-button color="primary" (click)="searchEAO()">
<fa-icon icon="search" class="m-r-10"></fa-icon> {{ 'labels.buttons.Search' | translate }}
</button>
<div class="center m-t-15 flex-98">
<button mat-raised-button color="primary" (click)="searchEAO()">
<fa-icon icon="search" class="m-r-10"></fa-icon> {{ 'labels.buttons.Search' | translate }}
</button>
</div>
</div>
</div>
<div class="mat-elevation-z8 container m-t-20">
<div *ngIf="isLoading" class="loader">
<div class="loading"></div>
</div>
<mat-accordion *ngIf="existsDataToFilter">
<mat-expansion-panel *ngFor="let record of searchResults; index as i" class="record">
<mat-expansion-panel-header>
<mat-panel-title>
<div class="mat-elevation-z8 container m-t-20">
<div *ngIf="isLoading" class="loader">
<div class="loading"></div>
</div>
<mat-accordion *ngIf="existsDataToFilter">
<mat-expansion-panel *ngFor="let record of searchResults; index as i" class="record">
<mat-expansion-panel-header>
<mat-panel-title>
<table>
<tr>
<td>
<div [ngClass]="itemStatus(record.status)" class="m-r-20">
<fa-icon icon="stop"></fa-icon>
<span class="m-l-10 status">{{ record.status }}</span>
</div>
</td>
<td class="field-name">{{ 'labels.inputs.Owner External Id' | translate }}</td>
<td>
<mifosx-external-identifier externalId="{{ record.owner.externalId }}"></mifosx-external-identifier>
</td>
<td class="field-name">{{ 'labels.inputs.Transfer External Id' | translate }}</td>
<td>
<mifosx-external-identifier
externalId="{{ record.transferExternalId }}"
></mifosx-external-identifier>
</td>
<td class="field-name">{{ 'labels.inputs.Effective From' | translate }}</td>
<td>{{ record.effectiveFrom | dateFormat }}</td>
</tr>
</table>
</mat-panel-title>
</mat-expansion-panel-header>
<div class="external-asset-transfer">
<table>
<tr>
<td>
<div [ngClass]="itemStatus(record.status)" class="m-r-20">
<fa-icon icon="stop"></fa-icon>
<span class="m-l-10 status">{{ record.status }}</span>
</div>
</td>
<td class="field-name">{{ 'labels.inputs.Owner External Id' | translate }}</td>
<td>
<mifosx-external-identifier externalId="{{ record.owner.externalId }}"></mifosx-external-identifier>
</td>
<td class="field-name">{{ 'labels.inputs.Transfer External Id' | translate }}</td>
<td>
<mifosx-external-identifier externalId="{{ record.transferExternalId }}"></mifosx-external-identifier>
</td>
<td class="field-name">{{ 'labels.inputs.Effective From' | translate }}</td>
<td>{{ record.effectiveFrom | dateFormat }}</td>
</tr>
<tbody>
<tr>
<td class="m-l-5 flex-25">
<b>{{ 'labels.inputs.Status' | translate }} :</b>
</td>
<td class="flex-25 m-l-5 left">
<div [ngClass]="itemStatus(record.status)">
<fa-icon icon="stop"></fa-icon>
<span class="m-l-5 status">{{ record.status }}</span>
</div>
</td>
<td class="m-l-5 flex-25">
<b>{{ 'labels.inputs.Owner External Id' | translate }} :</b>
</td>
<td class="flex-25 m-l-5 left">
<mifosx-external-identifier
externalId="{{ record.owner.externalId }}"
completed="true"
></mifosx-external-identifier>
</td>
</tr>
<tr>
<td class="m-l-5 flex-25">
<b>{{ 'labels.inputs.Settlement Date' | translate }} :</b>
</td>
<td class="m-l-5 flex-25">
{{ record.settlementDate | dateFormat }}
</td>
<td class="m-l-5 flex-25">
<b>{{ 'labels.inputs.Effective Date' | translate }} :</b>
</td>
<td class="m-l-5 flex-25">
{{ record.effectiveFrom | dateFormat }}
</td>
</tr>
<tr *ngIf="record.details">
<td class="m-l-5 flex-25">
<b>{{ 'labels.inputs.Details' | translate }} :</b>
</td>
<td class="flex-75 left">
<table>
<tbody>
<tr>
<td class="flex-50 m-l-5">
<b>{{ 'labels.inputs.Principal Outstanding' | translate }} :</b>
</td>
<td class="flex-50 r-amount">
{{ record.details.totalPrincipalOutstanding | formatNumber }}
</td>
</tr>
<tr>
<td class="flex-50 m-l-5">
<b>{{ 'labels.inputs.Interest Outstanding' | translate }} :</b>
</td>
<td class="flex-50 r-amount">
{{ record.details.totalInterestOutstanding | formatNumber }}
</td>
</tr>
<tr>
<td class="flex-50 m-l-5">
<b>{{ 'labels.inputs.Fees Outstanding' | translate }} :</b>
</td>
<td class="flex-50 r-amount">
{{ record.details.totalFeeChargesOutstanding | formatNumber }}
</td>
</tr>
<tr>
<td class="flex-50 m-l-5">
<b>{{ 'labels.inputs.Penalties Outstanding' | translate }} :</b>
</td>
<td class="flex-50 r-amount">
{{ record.details.totalPenaltyChargesOutstanding | formatNumber }}
</td>
</tr>
<tr>
<td class="flex-50 m-l-5">
<b>{{ 'labels.inputs.Outstanding' | translate }} :</b>
</td>
<td class="flex-50 r-amount">{{ record.details.totalOutstanding | formatNumber }}</td>
</tr>
<tr>
<td class="flex-50 m-l-5">
<b>{{ 'labels.inputs.Overpaid' | translate }} :</b>
</td>
<td class="flex-50 r-amount">{{ record.details.totalOverpaid | formatNumber }}</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</mat-panel-title>
</mat-expansion-panel-header>
</div>
<div class="external-asset-transfer">
<table>
<tbody>
<tr>
<td class="m-l-5 flex-25">
<b>{{ 'labels.inputs.Status' | translate }} :</b>
</td>
<td class="flex-25 m-l-5 left">
<div [ngClass]="itemStatus(record.status)">
<fa-icon icon="stop"></fa-icon>
<span class="m-l-5 status">{{ record.status }}</span>
</div>
</td>
<td class="m-l-5 flex-25">
<b>{{ 'labels.inputs.Owner External Id' | translate }} :</b>
</td>
<td class="flex-25 m-l-5 left">
<mifosx-external-identifier
externalId="{{ record.owner.externalId }}"
completed="true"
></mifosx-external-identifier>
</td>
</tr>
<tr>
<td class="m-l-5 flex-25">
<b>{{ 'labels.inputs.Settlement Date' | translate }} :</b>
</td>
<td class="m-l-5 flex-25">
{{ record.settlementDate | dateFormat }}
</td>
<td class="m-l-5 flex-25">
<b>{{ 'labels.inputs.Effective Date' | translate }} :</b>
</td>
<td class="m-l-5 flex-25">
{{ record.effectiveFrom | dateFormat }}
</td>
</tr>
<tr *ngIf="record.details">
<td class="m-l-5 flex-25">
<b>{{ 'labels.inputs.Details' | translate }} :</b>
</td>
<td class="flex-75 left">
<table>
<tbody>
<tr>
<td class="flex-50 m-l-5">
<b>{{ 'labels.inputs.Principal Outstanding' | translate }} :</b>
</td>
<td class="flex-50 r-amount">
{{ record.details.totalPrincipalOutstanding | formatNumber }}
</td>
</tr>
<tr>
<td class="flex-50 m-l-5">
<b>{{ 'labels.inputs.Interest Outstanding' | translate }} :</b>
</td>
<td class="flex-50 r-amount">
{{ record.details.totalInterestOutstanding | formatNumber }}
</td>
</tr>
<tr>
<td class="flex-50 m-l-5">
<b>{{ 'labels.inputs.Fees Outstanding' | translate }} :</b>
</td>
<td class="flex-50 r-amount">
{{ record.details.totalFeeChargesOutstanding | formatNumber }}
</td>
</tr>
<tr>
<td class="flex-50 m-l-5">
<b>{{ 'labels.inputs.Penalties Outstanding' | translate }} :</b>
</td>
<td class="flex-50 r-amount">
{{ record.details.totalPenaltyChargesOutstanding | formatNumber }}
</td>
</tr>
<tr>
<td class="flex-50 m-l-5">
<b>{{ 'labels.inputs.Outstanding' | translate }} :</b>
</td>
<td class="flex-50 r-amount">{{ record.details.totalOutstanding | formatNumber }}</td>
</tr>
<tr>
<td class="flex-50 m-l-5">
<b>{{ 'labels.inputs.Overpaid' | translate }} :</b>
</td>
<td class="flex-50 r-amount">{{ record.details.totalOverpaid | formatNumber }}</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<mat-divider [inset]="true"></mat-divider>
<mat-divider [inset]="true"></mat-divider>
<div class="record-actions layout-row align-flex-end" *ngIf="canBeCancelled(record)">
<button
mat-button
color="warn"
(click)="cancelPendingSale(record)"
matTooltip="{{ 'labels.text.Cancel Pending Sale' | translate }}"
>
<fa-icon icon="trash"></fa-icon>
</button>
</div>
</mat-expansion-panel>
</mat-accordion>
<div class="record-actions layout-row align-flex-end" *ngIf="canBeCancelled(record)">
<button
mat-button
color="warn"
(click)="cancelPendingSale(record)"
matTooltip="{{ 'labels.text.Cancel Pending Sale' | translate }}"
>
<fa-icon icon="trash"></fa-icon>
</button>
</div>
</mat-expansion-panel>
</mat-accordion>
<mat-paginator
[pageSize]="pageSize"
[pageSizeOptions]="[50, 100, 200]"
[length]="totalRows"
(page)="pageChanged($event)"
showFirstLastButtons
*ngIf="existsDataToFilter"
></mat-paginator>
</div>
<div class="alert" *ngIf="!existsDataToFilter">
<div class="message">
<i class="fa fa-exclamation-circle alert-check"></i>
{{ 'labels.text.No data found' | translate }}
<mat-paginator
[pageSize]="pageSize"
[pageSizeOptions]="[50, 100, 200]"
[length]="totalRows"
(page)="pageChanged($event)"
showFirstLastButtons
*ngIf="existsDataToFilter"
></mat-paginator>
</div>
</div>
<div class="alert" *ngIf="!existsDataToFilter">
<div class="message">
<i class="fa fa-exclamation-circle alert-check"></i>
{{ 'labels.text.No data found' | translate }}
</div>
</div>
</mat-card-content>
</mat-card>
@@ -339,7 +339,7 @@ const routes: Routes = [
{
path: 'fund-mapping',
component: FundMappingComponent,
data: { title: 'Advance Search', breadcrumb: 'Advance Search' },
data: { title: 'Fund Mapping', breadcrumb: 'Fund Mapping' },
resolve: {
advanceSearchTemplate: AdvanceSearchTemplateResolver
}
@@ -102,7 +102,7 @@
<div #standinginstructions>
<mat-list-item *mifosxHasPermission="'READ_STANDINGINSTRUCTION'">
<div class="menu-list-item-content">
<div class="menu-left-section" [routerLink]="['standing-instructions']">
<div class="menu-left-section" [routerLink]="['standing-instructions-history']">
<mat-icon matListIcon>
<fa-icon icon="book" size="sm"></fa-icon>
</mat-icon>
+1
View File
@@ -1425,6 +1425,7 @@
"Created At": "Vytvořeno v",
"Created By": "Vytvořil",
"Created On": "Vytvořeno dne",
"Creation Date": "Datum vytvoření",
"Credit": "Kredit",
"Credit Account": "Úvěrový účet",
"Credit Account Name": "Název kreditního účtu",
+1
View File
@@ -1425,6 +1425,7 @@
"Created At": "Hergestellt in",
"Created By": "Erstellt von",
"Created On": "Erstellt am",
"Creation Date": "Erstellungsdatum",
"Credit": "Kredit",
"Credit Account": "Kreditkonto",
"Credit Account Name": "Name des Kreditkontos",
+1
View File
@@ -1429,6 +1429,7 @@
"Created At": "Created At",
"Created By": "Created By",
"Created On": "Created On",
"Creation Date": "Creation Date",
"Credit": "Credit",
"Credit Account": "Credit Account",
"Credit Account Name": "Credit Account Name",
+1
View File
@@ -1424,6 +1424,7 @@
"Created At": "Creado en",
"Created By": "Creado por",
"Created On": "Creado en",
"Creation Date": "Fecha de creación",
"Credit": "Crédito",
"Credit Account": "Cuenta de crédito",
"Credit Account Name": "Nombre de la cuenta de crédito",
+1
View File
@@ -1424,6 +1424,7 @@
"Created At": "Creado en",
"Created By": "Creado por",
"Created On": "Creado en",
"Creation Date": "Fecha de creación",
"Credit": "Crédito",
"Credit Account": "Cuenta de crédito",
"Credit Account Name": "Nombre de la cuenta de crédito",
+1
View File
@@ -1425,6 +1425,7 @@
"Created At": "Créé à",
"Created By": "Créé par",
"Created On": "Créé sur",
"Creation Date": "Date de création",
"Credit": "Crédit",
"Credit Account": "Compte créditeur",
"Credit Account Name": "Nom du compte de crédit",
+1
View File
@@ -1425,6 +1425,7 @@
"Created At": "Creato a",
"Created By": "Creato da",
"Created On": "Creato",
"Creation Date": "Data di creazione",
"Credit": "Credito",
"Credit Account": "Conto di credito",
"Credit Account Name": "Nome del conto di credito",
+1
View File
@@ -1426,6 +1426,7 @@
"Created At": "생성 날짜",
"Created By": "작성자",
"Created On": "에 만든",
"Creation Date": "생성 날짜",
"Credit": "신용 거래",
"Credit Account": "신용 계좌",
"Credit Account Name": "신용 계좌 이름",
+1
View File
@@ -1425,6 +1425,7 @@
"Created At": "Sukurta",
"Created By": "Sukurta",
"Created On": "Sukurtas",
"Creation Date": "Sukūrimo data",
"Credit": "Kreditas",
"Credit Account": "Kredito sąskaita",
"Credit Account Name": "Kredito sąskaitos pavadinimas",
+1
View File
@@ -1425,6 +1425,7 @@
"Created At": "Izveidots plkst",
"Created By": "Radīts",
"Created On": "Izveidots",
"Creation Date": "Izveidošanas datums",
"Credit": "Kredīts",
"Credit Account": "Kredīta konts",
"Credit Account Name": "Kredīta konta nosaukums",
+1
View File
@@ -1425,6 +1425,7 @@
"Created At": "मा सिर्जना गरियो",
"Created By": "द्वारा सिर्जना गरिएको",
"Created On": "मा सिर्जना गरियो",
"Creation Date": "सिर्जना मिति",
"Credit": "क्रेडिट",
"Credit Account": "क्रेडिट खाता",
"Credit Account Name": "क्रेडिट खाता नाम",
+1
View File
@@ -1425,6 +1425,7 @@
"Created At": "Criado em",
"Created By": "Criado por",
"Created On": "Criado em",
"Creation Date": "Data de Criação",
"Credit": "Crédito",
"Credit Account": "Conta de crédito",
"Credit Account Name": "Nome da conta de crédito",
+1
View File
@@ -1425,6 +1425,7 @@
"Created At": "Imeundwa Katika",
"Created By": "Imetengenezwa na",
"Created On": "Imeundwa Juu",
"Creation Date": "Tarehe ya Uumbaji",
"Credit": "Mikopo",
"Credit Account": "Akaunti ya Mkopo",
"Credit Account Name": "Jina la Akaunti ya Mkopo",