#3880 Branch Id in Autocomplete Request - Kundenbestellung

This commit is contained in:
Lorenz Hilpert
2023-02-28 11:40:05 +01:00
parent edf96434b7
commit ebc6a01b7a

View File

@@ -1,36 +1,53 @@
import { Injectable } from '@angular/core';
import { DomainCustomerOrderService, DomainOmsService } from '@domain/oms';
import { ApplicationService } from '@core/application';
import { DomainCustomerOrderService } from '@domain/oms';
import { BranchDTO } from '@swagger/checkout';
import { AutocompleteTokenDTO } from '@swagger/oms';
import { UiFilterAutocomplete, UiFilterAutocompleteProvider, UiInput } from '@ui/filter';
import { cloneDeep } from 'lodash';
import { Observable, of } from 'rxjs';
import { catchError, map } from 'rxjs/operators';
import { catchError, map, switchMap } from 'rxjs/operators';
@Injectable()
export class CustomerOrderSearchMainAutocompleteProvider extends UiFilterAutocompleteProvider {
for = 'goods-out';
constructor(private omsService: DomainCustomerOrderService) {
constructor(private omsService: DomainCustomerOrderService, private applicationService: ApplicationService) {
super();
}
complete(input: UiInput): Observable<UiFilterAutocomplete[]> {
const token = input?.parent?.parent?.getQueryToken();
const filter = token?.filter;
const type = Object.keys(token?.input).join(';');
if (input.value.length >= 3) {
return this.omsService
.complete({
filter,
input: input.value,
take: 5,
type,
})
.pipe(
catchError(() => of({ result: [] })),
map((res) => res.result)
);
return this.applicationService.getSelectedBranch$().pipe(
switchMap((branch) =>
this.omsService.complete(this.createAutocompleteToken(input, branch)).pipe(catchError(() => of({ result: [] })))
),
map((res) => res.result)
);
} else {
return of([]);
}
}
createAutocompleteToken(input: UiInput, branch: BranchDTO | undefined): AutocompleteTokenDTO {
const autocomnpleteToken: AutocompleteTokenDTO = {};
const token = input?.parent?.parent?.getQueryToken();
const filter = token?.filter ?? {};
const type = Object.keys(token?.input).join(';');
if (branch?.id) {
autocomnpleteToken.filter = { ...filter, branch_id: String(branch.id) };
} else {
autocomnpleteToken.filter = filter;
}
autocomnpleteToken.input = input?.value ?? '';
autocomnpleteToken.type = type;
autocomnpleteToken.take = 5;
return autocomnpleteToken;
}
}