#4533 Removed unnessecary code and commented debounce out. Fixed Breadcrumb and Searchbox so that ORD doesnt show after Scan

This commit is contained in:
Nino
2023-12-28 12:48:40 +01:00
parent 9dbb251254
commit c43ddef51c
3 changed files with 15 additions and 40 deletions

View File

@@ -67,7 +67,9 @@ export abstract class PickupShelfBaseComponent implements OnInit {
// der debounce soll verhindern, dass die breadcrumb zu oft aktualisiert,
// besonders bei asynchronen calls kommt es sonst zu fehlern
@debounce(500)
// @debounce(500)
// Auskommentiert, da es zu anderen Problemen führt, siehe z.B. Ticket #4538 oder #4540
// Ursprungsproblem des Tickets #4533 konnte anders gelöst werden, somit wird debounce hier nicht mehr benötigt
private _runChecks() {
const processId = this._checkAndUpdateProcessId();
const queryParams = this._checkAndUpdateQueryParams();

View File

@@ -9,13 +9,12 @@ import { NavigationRoute, PickUpShelfOutNavigationService } from '@shared/servic
import { AsyncPipe } from '@angular/common';
import { DBHOrderItemListItemDTO } from '@swagger/oms';
import { Observable, of } from 'rxjs';
import { skipWhile, take } from 'rxjs/operators';
import { take } from 'rxjs/operators';
import { provideActionHandlers } from '@core/command';
import { ActionHandlerServices } from '@domain/oms';
import { ActionHandlerService } from '../services/action-handler.service';
import { FilterAutocompleteProvider } from '@shared/components/filter';
import { PickUpShelfOutAutocompleteProvider } from './providers/pickup-shelf-out-autocomplete.provider';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
@Component({
selector: 'page-pickup-shelf-out',
@@ -63,44 +62,12 @@ export class PickupShelfOutComponent extends PickupShelfBaseComponent {
return this._pickupShelfOutNavigationService.defaultRoute({ processId: data.processId });
}
private _getLatestList(): Promise<DBHOrderItemListItemDTO[]> {
return this.listStore.list$
.pipe(
takeUntilDestroyed(this.destroyRef),
skipWhile((list) => list.length === 0),
take(1)
)
.toPromise();
}
async getNameForListBreadcrumb(data: GetNameForBreadcrumbData): Promise<string> {
const mainQs = data.queryParams?.main_qs;
if (!mainQs) {
return 'Alle';
getNameForListBreadcrumb(data: GetNameForBreadcrumbData): string | Promise<string> {
if (data.queryParams?.main_qs) {
return data.queryParams.main_qs;
}
/**
* #4533
* Wenn ein Abholschein gescennt wird dann beinhaltet dieser einen Prefix "ORD:".
* Wenn dieser Prefix vorhanden ist, dann soll der Name des Kunden angezeigt werden.
*/
if (mainQs.startsWith('ORD:')) {
const items = await this._getLatestList();
const item = items[0];
if (item) {
let name = `${item.lastName} ${item.firstName}`.trim();
if (item.organisation) {
name = name.length === 0 ? item.organisation : `${name} - ${item.organisation}`;
}
return name;
}
}
return mainQs;
return 'Alle';
}
getPathFoListBreadcrumb(data: GetPathForBreadcrumbData): NavigationRoute | Promise<NavigationRoute> {

View File

@@ -113,7 +113,13 @@ export class PickupShelfStore extends ComponentStore<PickupShelfState> implement
}
setQueryParams(queryParams: Record<string, string> | undefined) {
this.patchState({ queryParams });
// #4533 Wenn ein Abholschein gescannt wird, soll ORD: nicht in der Suchbox stehen und somit auch nicht in der Breadcrumb enthalten sein
const isScannedPickUpCode = queryParams?.main_qs?.includes('ORD:');
if (isScannedPickUpCode) {
this.patchState({ queryParams: { ...queryParams, main_qs: queryParams?.main_qs?.replace('ORD:', '') } });
} else {
this.patchState({ queryParams });
}
}
cancelListRequests() {