mirror of
https://dev.azure.com/hugendubel/ISA/_git/ISA-Frontend
synced 2025-12-31 09:37:15 +01:00
#3880 Branch Id in Autocomplete Request - Kundenbestellung
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user