update customer filter and overview
This commit is contained in:
@@ -31,6 +31,16 @@
|
||||
}
|
||||
</mat-autocomplete>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field class="margin">
|
||||
<mat-label>{{'turnovers.filter.customer' | i18n}}</mat-label>
|
||||
<input type="text" matInput (input)="setInputFilter('customer', $event.target)">
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field class="margin">
|
||||
<mat-label>{{'turnovers.filter.motif' | i18n}}</mat-label>
|
||||
<input type="text" matInput (input)="setInputFilter('motif', $event.target)">
|
||||
</mat-form-field>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -19,9 +19,19 @@
|
||||
<mat-datepicker-toggle matIconSuffix [for]="picker"></mat-datepicker-toggle>
|
||||
<mat-date-range-picker #picker></mat-date-range-picker>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field class="margin">
|
||||
<mat-label>{{'turnovers.filter.customer' | i18n}}</mat-label>
|
||||
<input type="text" matInput (input)="setInputFilter('customer', $event.target)">
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field class="margin">
|
||||
<mat-label>{{'turnovers.filter.motif' | i18n}}</mat-label>
|
||||
<input type="text" matInput (input)="setInputFilter('motif', $event.target)">
|
||||
</mat-form-field>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<ui-turnovers class="flex column grow" [turnovers]="turnovers" (page)="applyPage($event)"
|
||||
<ui-turnovers class="flex column grow" [turnovers]="turnovers" [overview]="overview" (page)="applyPage($event)"
|
||||
(sort)="applySort($event)"></ui-turnovers>
|
||||
</div>
|
||||
@@ -14,6 +14,7 @@ import { UserManagementService } from 'src/app/services/user.management.service'
|
||||
export class PageTurnovers implements OnInit {
|
||||
|
||||
turnovers: any;
|
||||
overview: any[];
|
||||
sort: string = "created";
|
||||
descending: boolean = true;
|
||||
filterOpen: boolean = false;
|
||||
@@ -40,6 +41,17 @@ export class PageTurnovers implements OnInit {
|
||||
this.turnovers = { error: error };
|
||||
}
|
||||
})
|
||||
|
||||
this.turnoverService.overview(this.turnovers.limit || 15, this.turnovers.offset || 0, this.sort, this.descending, this.turnovers.filter).subscribe({
|
||||
next: (data: any) => {
|
||||
this.overview = data;
|
||||
if (!this.overview) {
|
||||
this.overview = ['', 0, 0];
|
||||
}
|
||||
}, error: (error) => {
|
||||
this.turnovers = { error: error };
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
applyPage(event: PageEvent) {
|
||||
@@ -54,6 +66,10 @@ export class PageTurnovers implements OnInit {
|
||||
this.update();
|
||||
}
|
||||
|
||||
setInputFilter(key: string, target: EventTarget) {
|
||||
this.setFilter(key, (target as HTMLInputElement).value);
|
||||
}
|
||||
|
||||
setFilter(key: string, value) {
|
||||
if (value != this.turnovers.filter[key]) {
|
||||
this.turnovers.filter[key] = value;
|
||||
|
||||
@@ -16,6 +16,10 @@ export class TurnoverService {
|
||||
return this.abstractService.fetch("/turnovers", limit, offset, sort, descending, filter);
|
||||
}
|
||||
|
||||
overview(limit: number, offset: number, sort: string, descending: boolean, filter: any | undefined) {
|
||||
return this.abstractService.fetch("/turnovers/overview", limit, offset, sort, descending, filter);
|
||||
}
|
||||
|
||||
get(id: number) {
|
||||
return this.http.get(environment.apiUrl + "/turnovers/" + id);
|
||||
}
|
||||
|
||||
@@ -125,6 +125,12 @@
|
||||
<span class="spacer"></span>
|
||||
|
||||
<div class="mat-mdc-paginator flex">
|
||||
@if (overview && overview.length > 2) {
|
||||
<div class="flex middle">
|
||||
<span class="margin">{{'turnover.price.total' | i18n:(overview[1] | number: '1.2-2')}}</span> <span
|
||||
class="margin">{{'turnover.timeInvestment.total' | i18n:(overview[2] | number: '1.1-1')}}</span>
|
||||
</div>
|
||||
}
|
||||
<span class="spacer"></span>
|
||||
<mat-paginator [pageSizeOptions]="pageSizeOptions" [pageIndex]="turnovers.offset / turnovers.limit"
|
||||
[length]="turnovers.total" [pageSize]="turnovers.limit" (page)="page.emit($event)" showFirstLastButtons>
|
||||
|
||||
@@ -11,6 +11,7 @@ import { Router } from '@angular/router';
|
||||
export class UiTurnovers implements OnInit {
|
||||
|
||||
@Input() turnovers: any;
|
||||
@Input() overview: any[];
|
||||
@Input() showFilter: boolean = true;
|
||||
@Input() linkTurnover: boolean = true;
|
||||
@Input() username: boolean = false;
|
||||
|
||||
@@ -115,13 +115,15 @@
|
||||
"price": {
|
||||
".": "Preis",
|
||||
"error": "Angabe des Preises erforderlich",
|
||||
"suffix": "€"
|
||||
"suffix": "€",
|
||||
"total": "Umsatz: {0} €"
|
||||
},
|
||||
"remark": "Bemerkungen",
|
||||
"success": "Erfolgreich gespeichert",
|
||||
"timeInvestment": {
|
||||
".": "Zeiteinsatz",
|
||||
"suffix": "Std."
|
||||
"suffix": "Std.",
|
||||
"total": "Zeiteinsatz: {0} Std."
|
||||
},
|
||||
"update": "Aktualisieren",
|
||||
"updated": {
|
||||
@@ -134,10 +136,12 @@
|
||||
".": "Buchungen",
|
||||
"filter": {
|
||||
"created": {
|
||||
".": "Erstellungsdatum",
|
||||
".": "Zeitraum",
|
||||
"from": "von",
|
||||
"to": "bis"
|
||||
},
|
||||
"customer": "Kunde durchsuchen",
|
||||
"motif": "Motif durchsuchen",
|
||||
"username": "User auswählen"
|
||||
},
|
||||
"mine": "Eigene Buchungen"
|
||||
|
||||
Reference in New Issue
Block a user