From cb6779fc831dabeca1b1dadacd04066ddfec9768 Mon Sep 17 00:00:00 2001 From: Lorenz Hilpert Date: Tue, 12 Nov 2024 17:14:19 +0100 Subject: [PATCH 01/16] Bump minor version from 3 to 4 in Azure Pipelines configuration --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 6329e418d..02904b6e7 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -12,7 +12,7 @@ variables: value: '3' # Minor Version einstellen - name: 'Minor' - value: '3' + value: '4' - name: 'Patch' value: "$[counter(format('{0}.{1}', variables['Major'], variables['Minor']),0)]" - name: 'BuildUniqueID' From b926efb6356f73d99236d9c0d742c2446dad43ee Mon Sep 17 00:00:00 2001 From: Nino Date: Mon, 25 Nov 2024 15:21:37 +0100 Subject: [PATCH 02/16] #4885 Compartment Info Bugfix --- .../pickup-shelf-in-details.component.html | 6 +- .../pickup-shelf-in-details.component.ts | 14 +-- .../pickup-shelf-out-details.component.html | 4 +- .../pickup-shelf-details-tags.component.html | 12 +-- .../pickup-shelf-details-tags.component.ts | 86 +++++-------------- 5 files changed, 37 insertions(+), 85 deletions(-) diff --git a/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-details/pickup-shelf-in-details.component.html b/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-details/pickup-shelf-in-details.component.html index da3c4b52c..a5273d160 100644 --- a/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-details/pickup-shelf-in-details.component.html +++ b/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-details/pickup-shelf-in-details.component.html @@ -34,7 +34,11 @@ > - +
diff --git a/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-details/pickup-shelf-in-details.component.ts b/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-details/pickup-shelf-in-details.component.ts index 736df4edd..0c2ff5660 100644 --- a/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-details/pickup-shelf-in-details.component.ts +++ b/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-details/pickup-shelf-in-details.component.ts @@ -1,4 +1,4 @@ -import { Component, ChangeDetectionStrategy, inject, OnInit, AfterViewInit, ViewChild, effect, untracked } from '@angular/core'; +import { Component, ChangeDetectionStrategy, inject, OnInit, ViewChild, effect, untracked } from '@angular/core'; import { PickupShelfDetailsBaseComponent } from '../../pickup-shelf-details-base.component'; import { AsyncPipe, NgFor, NgIf } from '@angular/common'; import { PickUpShelfDetailsHeaderComponent } from '../../shared/pickup-shelf-details-header/pickup-shelf-details-header.component'; @@ -42,7 +42,7 @@ import { SkeletonLoaderComponent } from '@shared/components/loader'; SkeletonLoaderComponent, ], }) -export class PickupShelfInDetailsComponent extends PickupShelfDetailsBaseComponent implements OnInit, AfterViewInit { +export class PickupShelfInDetailsComponent extends PickupShelfDetailsBaseComponent implements OnInit { runCheckTrigger = inject(RunCheckTrigger); @ViewChild(PickUpShelfDetailsTagsComponent, { static: false }) @@ -146,14 +146,8 @@ export class PickupShelfInDetailsComponent extends PickupShelfDetailsBaseCompone // }); } - ngAfterViewInit() { - this._registerPickUpShelfDetailsTagsComponentChanges(); - } - - private _registerPickUpShelfDetailsTagsComponentChanges() { - this.orderItems$.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((_) => { - this.pickUpShelfDetailsTags?.registerOnChange((compartmentInfo) => (this.store.selectedCompartmentInfo = compartmentInfo)); - }); + changeSelectedCompartmentInfo(compartmentInfo: string) { + this.store.selectedCompartmentInfo = compartmentInfo; } async handleAction({ diff --git a/apps/isa-app/src/page/pickup-shelf/pickup-shelf-out/pickup-shelf-out-details/pickup-shelf-out-details.component.html b/apps/isa-app/src/page/pickup-shelf/pickup-shelf-out/pickup-shelf-out-details/pickup-shelf-out-details.component.html index 0cce8a011..6da54a220 100644 --- a/apps/isa-app/src/page/pickup-shelf/pickup-shelf-out/pickup-shelf-out-details/pickup-shelf-out-details.component.html +++ b/apps/isa-app/src/page/pickup-shelf/pickup-shelf-out/pickup-shelf-out-details/pickup-shelf-out-details.component.html @@ -33,9 +33,9 @@
diff --git a/apps/isa-app/src/page/pickup-shelf/shared/pickup-shelf-details-tags/pickup-shelf-details-tags.component.html b/apps/isa-app/src/page/pickup-shelf/shared/pickup-shelf-details-tags/pickup-shelf-details-tags.component.html index 360f76805..5bf2dd7b0 100644 --- a/apps/isa-app/src/page/pickup-shelf/shared/pickup-shelf-details-tags/pickup-shelf-details-tags.component.html +++ b/apps/isa-app/src/page/pickup-shelf/shared/pickup-shelf-details-tags/pickup-shelf-details-tags.component.html @@ -2,26 +2,26 @@ diff --git a/apps/isa-app/src/page/pickup-shelf/shared/pickup-shelf-details-tags/pickup-shelf-details-tags.component.ts b/apps/isa-app/src/page/pickup-shelf/shared/pickup-shelf-details-tags/pickup-shelf-details-tags.component.ts index bf4cb2765..f95815d78 100644 --- a/apps/isa-app/src/page/pickup-shelf/shared/pickup-shelf-details-tags/pickup-shelf-details-tags.component.ts +++ b/apps/isa-app/src/page/pickup-shelf/shared/pickup-shelf-details-tags/pickup-shelf-details-tags.component.ts @@ -1,9 +1,7 @@ -import { AsyncPipe, NgFor } from '@angular/common'; -import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit, forwardRef } from '@angular/core'; -import { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms'; +import { NgFor } from '@angular/common'; +import { ChangeDetectionStrategy, Component, computed, model } from '@angular/core'; +import { FormsModule } from '@angular/forms'; import { UiCommonModule } from '@ui/common'; -import { BehaviorSubject, Subscription } from 'rxjs'; -import { first, map } from 'rxjs/operators'; @Component({ selector: 'page-pickup-shelf-details-tags', @@ -12,72 +10,28 @@ import { first, map } from 'rxjs/operators'; changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'page-pickup-shelf-details-tags' }, standalone: true, - imports: [NgFor, UiCommonModule, FormsModule, AsyncPipe], - providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => PickUpShelfDetailsTagsComponent), multi: true }], + imports: [NgFor, UiCommonModule, FormsModule], }) -export class PickUpShelfDetailsTagsComponent implements OnInit, OnDestroy, ControlValueAccessor { - selected$ = new BehaviorSubject(''); +export class PickUpShelfDetailsTagsComponent { + $selected = model(undefined, { alias: 'selected' }); + $inputValue = model(undefined, { alias: 'inputValue' }); readonly defaultTags = ['Maxi', 'Mini', 'Kleinkram', 'Nonbook', 'Kalender']; - inputValueSubject = new BehaviorSubject(''); - - inputValue$ = this.inputValueSubject.asObservable(); - - disabled = false; - - private onChange = (value: string) => {}; - - private onTouched = () => {}; - - get inputValue() { - return this.inputValueSubject.value; - } - - controlSize$ = this.inputValue$.pipe(map((value) => (value ? Math.min(value?.length, 15) : 3))); - - private subscription = new Subscription(); - - constructor(private _cdr: ChangeDetectorRef) {} - - writeValue(obj: any): void { - this.selected$.next(obj); - this._cdr.markForCheck(); - } - - registerOnChange(fn: any): void { - this.onChange = fn; - } - - registerOnTouched(fn: any): void { - this.onTouched = fn; - } - - setDisabledState?(isDisabled: boolean): void { - this.disabled = isDisabled; - } - - ngOnInit() { - this.subscription.add( - this.selected$.pipe(map((selected) => (this.defaultTags.includes(selected) ? '' : selected))).subscribe(this.inputValueSubject), - ); - } - - ngOnDestroy() { - this.inputValueSubject.unsubscribe(); - this.subscription.unsubscribe(); - } - - async setCompartmentInfo(compartmentInfo: string) { - const currentCompartmentInfo = await this.selected$.pipe(first()).toPromise(); - if (currentCompartmentInfo === compartmentInfo) { - this.onChange(undefined); - this.selected$.next(undefined); - } else { - this.onChange(compartmentInfo); - this.selected$.next(compartmentInfo); + $controlSize = computed(() => { + const value = this.$inputValue(); + if (!!value) { + return Math.min(value.length, 15); } + return 3; + }); - this._cdr.markForCheck(); + setCompartmentInfo(compartmentInfo: string) { + const currentCompartmentInfo = this.$selected(); + if (currentCompartmentInfo === compartmentInfo) { + this.$selected.set(undefined); + } else { + this.$selected.set(compartmentInfo); + } } } From f97253e82a6d194ff23930502d460cf716b72e0b Mon Sep 17 00:00:00 2001 From: Nino Date: Mon, 25 Nov 2024 15:31:24 +0100 Subject: [PATCH 03/16] Refactor distinctUntilChanged to use a custom equality check in pickup-shelf-details.store.ts --- .../src/page/pickup-shelf/store/pickup-shelf-details.store.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts b/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts index c27fae39d..b6277416a 100644 --- a/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts +++ b/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts @@ -70,7 +70,7 @@ export class PickupShelfDetailsStore extends ComponentStore s).pipe(switchMap((s) => this._listStore.itemsForPreview$(s))), ]).pipe( map(([orderItems, itemsForPreview]) => (orderItems?.length ? orderItems : itemsForPreview)), - distinctUntilChanged(isEqual), + distinctUntilChanged((a, b) => isEqual(a, b)), ); get orderItems() { From 0fcdb308b5c22b8a2c56ec9fed85d90956f030ad Mon Sep 17 00:00:00 2001 From: Lorenz Hilpert Date: Mon, 25 Nov 2024 16:50:15 +0100 Subject: [PATCH 04/16] Remove Scandit overlay component and enhance error handling in ScanditScanAdapter; add logging for order item fetching in PickupShelfDetailsStore and list components --- .../lib/scandit/scandit-overlay.component.html | 2 -- .../adapter/scan/scandit/scandit.scan-adapter.ts | 16 ++++++++++------ .../pickup-shelf-in-details.component.ts | 4 +++- .../pickup-shelf-in-list.component.ts | 1 + .../store/pickup-shelf-details.store.ts | 2 ++ .../scroll-container.directive.ts | 2 +- 6 files changed, 17 insertions(+), 10 deletions(-) delete mode 100644 apps/adapter/scan/src/lib/scandit/scandit-overlay.component.html diff --git a/apps/adapter/scan/src/lib/scandit/scandit-overlay.component.html b/apps/adapter/scan/src/lib/scandit/scandit-overlay.component.html deleted file mode 100644 index 96f5dc5c8..000000000 --- a/apps/adapter/scan/src/lib/scandit/scandit-overlay.component.html +++ /dev/null @@ -1,2 +0,0 @@ -
- diff --git a/apps/isa-app/src/adapter/scan/scandit/scandit.scan-adapter.ts b/apps/isa-app/src/adapter/scan/scandit/scandit.scan-adapter.ts index 807a3a2fb..b855f598e 100644 --- a/apps/isa-app/src/adapter/scan/scandit/scandit.scan-adapter.ts +++ b/apps/isa-app/src/adapter/scan/scandit/scandit.scan-adapter.ts @@ -28,13 +28,17 @@ export class ScanditScanAdapter implements ScanAdapter { async init(): Promise { if (this._environmentService.isTablet()) { - await configure({ - licenseKey: this._config.get('licence.scandit'), - libraryLocation: new URL('scandit', document.baseURI).toString(), - moduleLoaders: [barcodeCaptureLoader()], - }); + try { + await configure({ + licenseKey: this._config.get('licence.scandit'), + libraryLocation: new URL('scandit', document.baseURI).toString(), + moduleLoaders: [barcodeCaptureLoader()], + }); - return true; + return true; + } catch (error) { + console.error('ScanditScanAdapter.init', error); + } } return false; diff --git a/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-details/pickup-shelf-in-details.component.ts b/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-details/pickup-shelf-in-details.component.ts index 0c2ff5660..e94824bcf 100644 --- a/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-details/pickup-shelf-in-details.component.ts +++ b/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-details/pickup-shelf-in-details.component.ts @@ -89,6 +89,8 @@ export class PickupShelfInDetailsComponent extends PickupShelfDetailsBaseCompone displayedCompartmentInfo$ = this.store.compartmentInfo$; + $selectedOrderItem = toSignal(this.selectedItem$); + latestCompartmentInfos$ = this.store.latestCompartmentCodeAndInfoForOrder$; latestDisplayedCompartmentInfos$ = this.latestCompartmentInfos$.pipe( @@ -112,7 +114,7 @@ export class PickupShelfInDetailsComponent extends PickupShelfDetailsBaseCompone effect(() => { const customerNumber = this.$customerNumber(); - this.$orderItems(); + this.$selectedOrderItem(); if (customerNumber) { untracked(() => { diff --git a/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-list/pickup-shelf-in-list.component.ts b/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-list/pickup-shelf-in-list.component.ts index adc47a259..58f43baa0 100644 --- a/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-list/pickup-shelf-in-list.component.ts +++ b/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-list/pickup-shelf-in-list.component.ts @@ -205,6 +205,7 @@ export class PickUpShelfInListComponent implements OnInit, AfterViewInit { } loadMore() { + console.log('loadMore'); this.store.fetchMoreList(); } } diff --git a/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts b/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts index b6277416a..c99d36b5d 100644 --- a/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts +++ b/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts @@ -723,6 +723,7 @@ export class PickupShelfDetailsStore extends ComponentStore { + console.log('beforeFetchCoverOrderItems'); this.patchState({ fetchingCoverOrderItems: true }); }; @@ -731,6 +732,7 @@ export class PickupShelfDetailsStore extends ComponentStore { + console.log('fetchCoverOrderItemsDone', res); this.patchState({ fetchingCoverOrderItems: false, coverOrderItems: res.result }); }; diff --git a/apps/isa-app/src/shared/directives/scroll-container/scroll-container.directive.ts b/apps/isa-app/src/shared/directives/scroll-container/scroll-container.directive.ts index edc044b02..4a852a2ac 100644 --- a/apps/isa-app/src/shared/directives/scroll-container/scroll-container.directive.ts +++ b/apps/isa-app/src/shared/directives/scroll-container/scroll-container.directive.ts @@ -11,7 +11,7 @@ export class ScrollContainerDirective { @Output() scrolledToBottom = new EventEmitter(); - private _delta: number = 0; + private _delta: number = 50; @Input() set delta(value: NumberInput) { From 721fd06c760cd6271167e1ee2b8f51f174d9a6c4 Mon Sep 17 00:00:00 2001 From: Lorenz Hilpert Date: Mon, 25 Nov 2024 16:51:43 +0100 Subject: [PATCH 05/16] Remove console logs from beforeFetchCoverOrderItems and fetchCoverOrderItemsDone methods in PickupShelfDetailsStore --- .../src/page/pickup-shelf/store/pickup-shelf-details.store.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts b/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts index c99d36b5d..b6277416a 100644 --- a/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts +++ b/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts @@ -723,7 +723,6 @@ export class PickupShelfDetailsStore extends ComponentStore { - console.log('beforeFetchCoverOrderItems'); this.patchState({ fetchingCoverOrderItems: true }); }; @@ -732,7 +731,6 @@ export class PickupShelfDetailsStore extends ComponentStore { - console.log('fetchCoverOrderItemsDone', res); this.patchState({ fetchingCoverOrderItems: false, coverOrderItems: res.result }); }; From 387e6b08edf8af145ad85a31ce5c85a09ed7e63e Mon Sep 17 00:00:00 2001 From: Nino Date: Mon, 25 Nov 2024 17:31:49 +0100 Subject: [PATCH 06/16] Remove unused selectedCompartmentInfo properties from PickupShelfOutDetailsComponent --- .../pickup-shelf-out-details.component.html | 1 - .../pickup-shelf-out-details.component.ts | 4 ---- 2 files changed, 5 deletions(-) diff --git a/apps/isa-app/src/page/pickup-shelf/pickup-shelf-out/pickup-shelf-out-details/pickup-shelf-out-details.component.html b/apps/isa-app/src/page/pickup-shelf/pickup-shelf-out/pickup-shelf-out-details/pickup-shelf-out-details.component.html index 6da54a220..3cfbeb1c8 100644 --- a/apps/isa-app/src/page/pickup-shelf/pickup-shelf-out/pickup-shelf-out-details/pickup-shelf-out-details.component.html +++ b/apps/isa-app/src/page/pickup-shelf/pickup-shelf-out/pickup-shelf-out-details/pickup-shelf-out-details.component.html @@ -33,7 +33,6 @@
diff --git a/apps/isa-app/src/page/pickup-shelf/pickup-shelf-out/pickup-shelf-out-details/pickup-shelf-out-details.component.ts b/apps/isa-app/src/page/pickup-shelf/pickup-shelf-out/pickup-shelf-out-details/pickup-shelf-out-details.component.ts index d7b9e57c1..d6bd04371 100644 --- a/apps/isa-app/src/page/pickup-shelf/pickup-shelf-out/pickup-shelf-out-details/pickup-shelf-out-details.component.ts +++ b/apps/isa-app/src/page/pickup-shelf/pickup-shelf-out/pickup-shelf-out-details/pickup-shelf-out-details.component.ts @@ -75,10 +75,6 @@ export class PickupShelfOutDetailsComponent extends PickupShelfDetailsBaseCompon map(([orderItems, fetchingItems]) => orderItems?.length === 0 && fetchingItems), ); - selectedCompartmentInfo = this.store.selectedCompartmentInfo; - - selectedCompartmentInfo$ = this.store.selectedCompartmentInfo$; - showTagsComponent$ = this.store.showTagsComponent$; changeActionLoader$ = new BehaviorSubject(undefined); From f62e198aeda1f579eeafeba42d67eb2264d0436f Mon Sep 17 00:00:00 2001 From: Lorenz Hilpert Date: Tue, 26 Nov 2024 16:34:32 +0100 Subject: [PATCH 07/16] Fix - Nachbestellen - Dropdown wird nun nach der Auswahl geschlossen und Button Bestellen ist wieder klickbar --- apps/isa-app/src/modal/reorder/reorder.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/isa-app/src/modal/reorder/reorder.component.html b/apps/isa-app/src/modal/reorder/reorder.component.html index b88db2467..0f3a690d3 100644 --- a/apps/isa-app/src/modal/reorder/reorder.component.html +++ b/apps/isa-app/src/modal/reorder/reorder.component.html @@ -73,7 +73,7 @@ - From 6743c8e6301c90738af1dd3ecc1d47ac7b28e71d Mon Sep 17 00:00:00 2001 From: Lorenz Hilpert Date: Tue, 26 Nov 2024 16:56:50 +0100 Subject: [PATCH 08/16] =?UTF-8?q?Fix=20#4891=20Kundendaten=20erfassen=20//?= =?UTF-8?q?=20Land=20bei=20Lieferung=20nicht=20ausw=C3=A4hlbar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../select/select-option.component.ts | 1 + .../components/select/select.component.ts | 18 +++++------------- 2 files changed, 6 insertions(+), 13 deletions(-) diff --git a/apps/isa-app/src/shared/components/select/select-option.component.ts b/apps/isa-app/src/shared/components/select/select-option.component.ts index c7ff6c8fd..3753be02c 100644 --- a/apps/isa-app/src/shared/components/select/select-option.component.ts +++ b/apps/isa-app/src/shared/components/select/select-option.component.ts @@ -46,6 +46,7 @@ export class SelectOptionComponent implements FocusableOption { select(event: Event): void { event.preventDefault(); event.stopPropagation(); + console.log('SelectOptionComponent.select', this.value, this._onSelect); this._onSelect(this.value); } } diff --git a/apps/isa-app/src/shared/components/select/select.component.ts b/apps/isa-app/src/shared/components/select/select.component.ts index 0156b6253..8acd6e1c5 100644 --- a/apps/isa-app/src/shared/components/select/select.component.ts +++ b/apps/isa-app/src/shared/components/select/select.component.ts @@ -12,7 +12,6 @@ import { HostListener, ElementRef, HostBinding, - AfterContentInit, OnDestroy, } from '@angular/core'; import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; @@ -20,7 +19,6 @@ import { SelectOptionComponent } from './select-option.component'; import { IconComponent } from '@shared/components/icon'; import { BaseFormControlDirective } from '@shared/components/form-control'; import { Subject } from 'rxjs'; -import { takeUntil } from 'rxjs/operators'; import { NgIf } from '@angular/common'; @Component({ @@ -34,7 +32,7 @@ import { NgIf } from '@angular/common'; imports: [IconComponent, NgIf], providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: SelectComponent, multi: true }], }) -export class SelectComponent extends BaseFormControlDirective implements ControlValueAccessor, AfterContentInit, OnDestroy { +export class SelectComponent extends BaseFormControlDirective implements ControlValueAccessor, OnDestroy { @ContentChildren(SelectOptionComponent) options: QueryList; @@ -101,16 +99,6 @@ export class SelectComponent extends BaseFormControlDirective implement super(); } - ngAfterContentInit() { - this.options.changes.pipe(takeUntil(this._onDestroy$)).subscribe(() => { - this.options.forEach((option) => { - option.registerOnSelect((value) => this.setValue(value)); - }); - - this._cdr.markForCheck(); - }); - } - ngOnDestroy() { this._onDestroy$.next(); this._onDestroy$.complete(); @@ -158,6 +146,10 @@ export class SelectComponent extends BaseFormControlDirective implement this._open = true; this._forceClose = false; this._cdr.markForCheck(); + + this.options.forEach((option) => { + option.registerOnSelect((value) => this.setValue(value)); + }); } close() { From fa66d2389a90966bfa9333ac14e117443acde955 Mon Sep 17 00:00:00 2001 From: Lorenz Hilpert Date: Tue, 26 Nov 2024 17:02:57 +0100 Subject: [PATCH 09/16] =?UTF-8?q?Improvements=20-=20Um=20Cover=20Items=20d?= =?UTF-8?q?ie=20nicht=20zur=20ausge=C3=A4jlten=20bestellung=20geh=C3=B6ren?= =?UTF-8?q?=20zu=20filtern?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/pickup-shelf-details.selectors.ts | 21 +++++++++++-------- .../store/pickup-shelf-details.store.ts | 8 +------ 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.selectors.ts b/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.selectors.ts index 9616cb1a1..2a24a2ba4 100644 --- a/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.selectors.ts +++ b/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.selectors.ts @@ -1,3 +1,4 @@ +import moment from 'moment'; import { PickupShelfDetailsState } from './pickup-shelf-details.state'; import { DBHOrderItemListItemDTO, KeyValueDTOOfStringAndString } from '@swagger/oms'; @@ -125,18 +126,15 @@ export const selectLatestCompartmentCodeAndInfoForOrder = (s: PickupShelfDetails // Ticket #4397 - Sortieren und Filtern der angezeigten CoverItems nach latestCompartmentCode und Info const coverItem = coverItems + // Item should have the processing status 128 "eingetroffen" ?.filter((a) => a.processingStatus === 128) + // Items should be ready for pick up today ?.filter((a) => { if (a.readyForPickUp) { - const readyForPickUp = new Date(a.readyForPickUp); - const today = new Date(Date.now()); + const readyForPickUp = moment(a.readyForPickUp); + const today = moment.now(); - // May use dateAdapter utility functions here to check if the date is the same - return ( - (readyForPickUp.getFullYear() - today.getFullYear() || - readyForPickUp.getMonth() - today.getMonth() || - readyForPickUp.getDate() - today.getDate()) === 0 - ); + return readyForPickUp.isSame(today, 'day'); } return false; }) @@ -277,4 +275,9 @@ export const selectCustomerNumber = (s: PickupShelfDetailsState) => { export const selectFetchingCoverOrderItems = (s: PickupShelfDetailsState) => s.fetchingCoverOrderItems ?? false; -export const selectCoverOrderItems = (s: PickupShelfDetailsState) => s.coverOrderItems ?? []; +export const selectCoverOrderItems = (s: PickupShelfDetailsState) => { + const coverItems = s.coverOrderItems ?? []; + const selected = selectedOrderItem(s); + + return coverItems.filter((item) => item.buyerNumber === selected?.buyerNumber); +}; diff --git a/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts b/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts index b6277416a..63eb57b94 100644 --- a/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts +++ b/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts @@ -59,12 +59,6 @@ export class PickupShelfDetailsStore extends ComponentStore s).pipe(switchMap((s) => this._listStore.itemsForPreview$(s))), @@ -723,7 +717,7 @@ export class PickupShelfDetailsStore extends ComponentStore { - this.patchState({ fetchingCoverOrderItems: true }); + this.patchState({ fetchingCoverOrderItems: true, coverOrderItems: [] }); }; updateOrderItemSubsetLoading(orderItemSubsetLoading: boolean) { From 98a9346c1a7ffa17c172ca00798c3f8b6180db05 Mon Sep 17 00:00:00 2001 From: Lorenz Hilpert Date: Wed, 27 Nov 2024 11:43:49 +0100 Subject: [PATCH 10/16] Refactor customer number handling and add combined observable for customer number and selected order item changes --- .../pickup-shelf-in-details.component.ts | 17 +++++++++++------ .../store/pickup-shelf-details.store.ts | 2 +- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-details/pickup-shelf-in-details.component.ts b/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-details/pickup-shelf-in-details.component.ts index e94824bcf..7d8d9db1b 100644 --- a/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-details/pickup-shelf-in-details.component.ts +++ b/apps/isa-app/src/page/pickup-shelf/pickup-shelf-in/pickup-shelf-in-details/pickup-shelf-in-details.component.ts @@ -10,7 +10,7 @@ import { UiSpinnerModule } from '@ui/spinner'; import { OnInitDirective } from '@shared/directives/element-lifecycle'; import { PickupShelfInNavigationService } from '@shared/services/navigation'; import { BehaviorSubject, asapScheduler, combineLatest } from 'rxjs'; -import { distinctUntilChanged, map, shareReplay } from 'rxjs/operators'; +import { distinctUntilChanged, filter, map, shareReplay, tap, throttleTime } from 'rxjs/operators'; import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop'; import { DBHOrderItemListItemDTO, KeyValueDTOOfStringAndString } from '@swagger/oms'; import { UiErrorModalComponent, UiModalService } from '@ui/modal'; @@ -52,7 +52,7 @@ export class PickupShelfInDetailsComponent extends PickupShelfDetailsBaseCompone order$ = this.store.order$; - $customerNumber = toSignal(this.store.customerNumber$); + $customerNumber = toSignal(this.store.customerNumber$.pipe(distinctUntilChanged())); orderItems$ = this.store.orderItems$.pipe(shareReplay(1)); @@ -89,8 +89,6 @@ export class PickupShelfInDetailsComponent extends PickupShelfDetailsBaseCompone displayedCompartmentInfo$ = this.store.compartmentInfo$; - $selectedOrderItem = toSignal(this.selectedItem$); - latestCompartmentInfos$ = this.store.latestCompartmentCodeAndInfoForOrder$; latestDisplayedCompartmentInfos$ = this.latestCompartmentInfos$.pipe( @@ -106,6 +104,14 @@ export class PickupShelfInDetailsComponent extends PickupShelfDetailsBaseCompone map(([compartmentInfo, changeActionDisabled]) => !!compartmentInfo || changeActionDisabled), ); + customerNumberAndSelevtedOrderItemIdsChanges$ = combineLatest([this.store.customerNumber$, this.store.selectedOrderItem$]).pipe( + filter(([_, selectedOrderItem]) => !!selectedOrderItem), + distinctUntilChanged((a, b) => isEqual(a, b)), + map(([customerNumber, selectedOrderItem]) => ({ customerNumber, selectedOrderItem })), + ); + + $customerNumberAndSelevtedOrderItemIdsChanges = toSignal(this.customerNumberAndSelevtedOrderItemIdsChanges$); + constructor( private _uiModal: UiModalService, private _activatedRoute: ActivatedRoute, @@ -113,8 +119,7 @@ export class PickupShelfInDetailsComponent extends PickupShelfDetailsBaseCompone super(); effect(() => { - const customerNumber = this.$customerNumber(); - this.$selectedOrderItem(); + const { customerNumber } = this.$customerNumberAndSelevtedOrderItemIdsChanges(); if (customerNumber) { untracked(() => { diff --git a/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts b/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts index 63eb57b94..1468415c6 100644 --- a/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts +++ b/apps/isa-app/src/page/pickup-shelf/store/pickup-shelf-details.store.ts @@ -20,7 +20,7 @@ import { } from '@swagger/oms'; import { PickupShelfIOService, PickupShelfService } from '@domain/pickup-shelf'; import { Injectable, inject } from '@angular/core'; -import { delayWhen, distinctUntilChanged, filter, map, mergeMap, switchMap, take, tap, withLatestFrom } from 'rxjs/operators'; +import { distinctUntilChanged, filter, map, mergeMap, switchMap, tap, withLatestFrom } from 'rxjs/operators'; import { UiModalService } from '@ui/modal'; import { CrmCustomerService } from '@domain/crm'; import * as Selectors from './pickup-shelf-details.selectors'; From 9ba05253e9b41d12e300415eea6271191aa7e5ce Mon Sep 17 00:00:00 2001 From: Lorenz Hilpert Date: Wed, 27 Nov 2024 11:52:02 +0100 Subject: [PATCH 11/16] Enhance select component to register options on initialization and remove debug log --- .../select/select-option.component.ts | 2 +- .../components/select/select.component.ts | 20 ++++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/apps/isa-app/src/shared/components/select/select-option.component.ts b/apps/isa-app/src/shared/components/select/select-option.component.ts index 3753be02c..a420b4a80 100644 --- a/apps/isa-app/src/shared/components/select/select-option.component.ts +++ b/apps/isa-app/src/shared/components/select/select-option.component.ts @@ -46,7 +46,7 @@ export class SelectOptionComponent implements FocusableOption { select(event: Event): void { event.preventDefault(); event.stopPropagation(); - console.log('SelectOptionComponent.select', this.value, this._onSelect); + this._onSelect(this.value); } } diff --git a/apps/isa-app/src/shared/components/select/select.component.ts b/apps/isa-app/src/shared/components/select/select.component.ts index 8acd6e1c5..38108ce09 100644 --- a/apps/isa-app/src/shared/components/select/select.component.ts +++ b/apps/isa-app/src/shared/components/select/select.component.ts @@ -13,6 +13,9 @@ import { ElementRef, HostBinding, OnDestroy, + AfterContentInit, + inject, + DestroyRef, } from '@angular/core'; import { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms'; import { SelectOptionComponent } from './select-option.component'; @@ -20,6 +23,7 @@ import { IconComponent } from '@shared/components/icon'; import { BaseFormControlDirective } from '@shared/components/form-control'; import { Subject } from 'rxjs'; import { NgIf } from '@angular/common'; +import { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop'; @Component({ selector: 'shared-select', @@ -32,7 +36,9 @@ import { NgIf } from '@angular/common'; imports: [IconComponent, NgIf], providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: SelectComponent, multi: true }], }) -export class SelectComponent extends BaseFormControlDirective implements ControlValueAccessor, OnDestroy { +export class SelectComponent extends BaseFormControlDirective implements AfterContentInit, ControlValueAccessor, OnDestroy { + private destroyRef = inject(DestroyRef); + @ContentChildren(SelectOptionComponent) options: QueryList; @@ -99,6 +105,18 @@ export class SelectComponent extends BaseFormControlDirective implement super(); } + ngAfterContentInit(): void { + this.options.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => { + this.options.forEach((option) => { + option.registerOnSelect((value) => this.setValue(value)); + }); + }); + + this.options.forEach((option) => { + option.registerOnSelect((value) => this.setValue(value)); + }); + } + ngOnDestroy() { this._onDestroy$.next(); this._onDestroy$.complete(); From 34e96f0751b2a391f0c7403ab8f3b9fbb284f647 Mon Sep 17 00:00:00 2001 From: Nino Righi Date: Wed, 27 Nov 2024 14:20:24 +0000 Subject: [PATCH 12/16] Merged PR 1821: Refactor getCachedData method to be asynchronous and improve cache handling Refactor getCachedData method to be asynchronous and improve cache handling --- .../search-results/search-results.component.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/isa-app/src/page/catalog/article-search/search-results/search-results.component.ts b/apps/isa-app/src/page/catalog/article-search/search-results/search-results.component.ts index 8bdbb9b3d..e6c32ae96 100644 --- a/apps/isa-app/src/page/catalog/article-search/search-results/search-results.component.ts +++ b/apps/isa-app/src/page/catalog/article-search/search-results/search-results.component.ts @@ -166,6 +166,7 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi if (!isEqual(cleanQueryParams, this.cleanupQueryParams(this.searchService.filter.getQueryParams()))) { await this.searchService.setDefaultFilter(queryParams); const data = await this.getCachedData(processId, queryParams, selectedBranch?.id); + if (data.items?.length > 0) { this.searchService.setItems(data.items); this.searchService.setHits(data.hits); @@ -392,15 +393,14 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi }); } - getCachedData(processId: number, params: Record = {}, branchId: number) { + async getCachedData(processId: number, params: Record = {}, branchId: number) { const qparams = this.cleanupQueryParams({ ...params, processId: String(processId), branchId: String(branchId) }); + const cacheData = await this.cache.get<{ + items: ItemDTO[]; + hits: number; + }>(qparams); - return ( - this.cache.get<{ - items: ItemDTO[]; - hits: number; - }>(qparams) || { items: [], hits: 0 } - ); + return cacheData ?? { items: [], hits: 0 }; } cleanupQueryParams(params: Record = {}) { From a0c8035dbbbeb9f9bd0158369648a30dda867c84 Mon Sep 17 00:00:00 2001 From: Nino Righi Date: Wed, 27 Nov 2024 14:21:12 +0000 Subject: [PATCH 13/16] Merged PR 1820: Fix - Close dropdown after selecting a reason in add product modal Fix - Close dropdown after selecting a reason in add product modal --- .../modals/add-product-modal/add-product-modal.component.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/isa-app/src/page/remission/modals/add-product-modal/add-product-modal.component.html b/apps/isa-app/src/page/remission/modals/add-product-modal/add-product-modal.component.html index d6f45cb91..4ce1f3829 100644 --- a/apps/isa-app/src/page/remission/modals/add-product-modal/add-product-modal.component.html +++ b/apps/isa-app/src/page/remission/modals/add-product-modal/add-product-modal.component.html @@ -40,7 +40,7 @@ - From 17a68b9dbbdcd1840a85585c23bb25ef26a40a5a Mon Sep 17 00:00:00 2001 From: Lorenz Hilpert Date: Thu, 28 Nov 2024 16:49:28 +0000 Subject: [PATCH 14/16] Merged PR 1823: #4895 - Add download availability to article details component and update pri... #4895 - Add download availability to article details component and update price mapping logic --- .../catalog/article-details/article-details.component.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/isa-app/src/page/catalog/article-details/article-details.component.ts b/apps/isa-app/src/page/catalog/article-details/article-details.component.ts index fa7e11d6d..1750d990d 100644 --- a/apps/isa-app/src/page/catalog/article-details/article-details.component.ts +++ b/apps/isa-app/src/page/catalog/article-details/article-details.component.ts @@ -164,6 +164,7 @@ export class ArticleDetailsComponent implements OnInit, OnDestroy { this.store.deliveryAvailability$, this.store.deliveryDigAvailability$, this.store.deliveryB2BAvailability$, + this.store.downloadAvailability$, ]).pipe( map((availabilities) => { return availabilities?.some((availability) => (availability as any)?.priceMaintained) ?? false; @@ -177,8 +178,9 @@ export class ArticleDetailsComponent implements OnInit, OnDestroy { this.store.deliveryAvailability$, this.store.deliveryDigAvailability$, this.store.deliveryB2BAvailability$, + this.store.downloadAvailability$, ]).pipe( - map(([item, takeAway, pickUp, delivery, deliveryDig, deliveryB2B]) => { + map(([item, takeAway, pickUp, delivery, deliveryDig, deliveryB2B, download]) => { const hasPickupOrTakeaway = takeAway?.inStock || pickUp?.inStock; if (hasPickupOrTakeaway && item?.catalogAvailability?.price?.value?.value) { @@ -201,6 +203,10 @@ export class ArticleDetailsComponent implements OnInit, OnDestroy { return deliveryB2B.price; } + if (download?.price?.value?.value) { + return download.price; + } + return null; }), ); From f57988f83e745a921f7e0e63d1f9e0c0e319720d Mon Sep 17 00:00:00 2001 From: Lorenz Hilpert Date: Thu, 5 Dec 2024 15:38:24 +0100 Subject: [PATCH 15/16] Update Scandit Licence Key for production --- apps/isa-app/src/config/config.production.json | 2 +- apps/isa-app/src/config/config.staging.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/isa-app/src/config/config.production.json b/apps/isa-app/src/config/config.production.json index d9b8d45f2..a03e8394e 100644 --- a/apps/isa-app/src/config/config.production.json +++ b/apps/isa-app/src/config/config.production.json @@ -73,7 +73,7 @@ }, "checkForUpdates": 3600000, "licence": { - "scandit": "AqeFthV/MMKEPoQNIB3vSLYDthFhJ0F03QQtH+4f/ivCRKdYPjxnMU94RVMEaldhNTQj5sB8mJVNWq0vbHCzqul36KcLdG0kwFfBiXAoEkfOe2bRGTCX4bASLuwfHVv8+AG+Pwdhelf3XMcIvnrGkiR91EmRGeebiiVX448H6U+WdyXJtns/W/ZgdMZBGUHA4WsG9Ct5SyLGaeGYI1iK8LZtpKzLBcsvYwOkDeI4IjIuOZpMpy6CzmBAHQlAHWKmwjDizWwB2rU2BZ6i+3H99mpvSz9PCWm9PS+Jr30Me13bb+Oz5zHxeMdoJtZNIhsTgWyVErUlcuceNIibrDj84L4qfmHKPQtalW10+w9ODwRIS+nLCWOpo9we+UCsFgMJLX3lH0ZIXEWEZjAxhzXmdxxGEcroQQXAIH3PsN8RUSuaC6PPOirvKmZUbW3XUun+vmxMWxhDyGwnat9CpDpQ+CpsyPECaUEkbkVEg/Mq42QxVHF25UgZ37c5gN0wHNAjal/HSpZfLBzDeC5Y/iKqgKhjf68Bf7lnOBYokWFUxBRdcKLhtz3nGNZL3UpabCULf2J5lOZ0Mj8hdC+P4UNZMCRVEs4UR9pqHEoJVdQ5KMO8cXcvKGxGG4hT9UNNbk9o+jNWOlhCribVTmkj6kmInB8zDFkceKy3HUSC8p9TlzjxfBpzN0oVMG9DIlkTWh3nryr4lDJimIz4AriI6Xft3NJgiIkUVAjsTHl33IRz7jwyQOzyUR197o0ojRwvLpm3zkHwap4lyvMz7SoYhKoyN66Aul3K5iic8hVVUuriChEZyIwYml71vAfIpmwZC5GVF5XJBT1r0OG+xmJbH6sae0gOnMpFyed3R+BH/AU2OY9nrnTNLN83pk8huK7BPQVnpAQqU76IrZP5GAyd1GNRi9WWJo4mHefe/9/x22lfHg7BELhOXoJlDZWoj4uOYJVVycQD/ninQMtwkry/9VEOQmrg76bRVbz2OZ3RFDw/AXBd+1jA0K7gIP9G5dN4x2NjNbzPE4gMhHvNi+vUy8x+1uHRQdBzI/F7EkuFb59eKZYe1EHTofnzGofZUgiuXMDDVTi8dE80PmFRCTnNvEtK8rRcBFSqWxeX1u5h+PR8btTagOH0hNCNWUaVYpIcHXvKP5gFFluPy5+RR3TRXYhBKOeb+Q2uxrowwVJs2FOxwfORtKXti8pGIw9bVZk9yNCqafPuURqGKMw/e+H8ElIWaiWH2mcY9dDKN6lBhOdKYjhKQZ/4t9H+ZbyeKzebH8habpAZEDdN0fbqDMwWTD+eKo02s5wOzJ+0z4BpDszMd2acvQ1GVrF0KajpReco2FE+AQpbxHM2KQfKqiDHOUd02nG9AHjKRf/xUTySpD8pG3DvPZC+ImqQZN/t7/IegQptgrezq2w2y0L89sgNnnhRopaMRt/sPSirTXh/NA==" + "scandit": "ATSVF4WBEUdWFabwSBws+xhCeCSCzgKZVEUjDXt0v6EpJHyN7lNmjMNmg8S+ADBh6h/Wn6Vl1b8TDhw3Fl1ZdkFoQ88zZUgagRY9vKpAjzimETtcVmzAA05W498GYgSr42+q4P9dkGO1RPdcOXqAgZZpNlsaQnyP1WjOMvgRRouwBxnoVCwkir8//kLxJaHPJKSYQNcTdRNMgqNPq/vUwdYVrzg26ltn7eC5imeXyYuQH3u2L4TVuRjr3SDVqsv7lnybh3ijg3dLoI93atUBuxbmzvoWzyb2mxrchJ9DaxrBy0igV2qFzzF1R6QvlNTyvN9HyUvZ0/sPS1DqOoql9bqG7ibyGOdRa2/vfIDTLbVEIaym8yQzErBBqthjviCub2pYXGX+ai9xXufuqRDyX29uCafxSv6sQsnVcEnuLEmP6gdmGBMVvH/WEZHnGn6bQpfWwFIGRZZKM+SxTdToJanj3jxNF/pO445/YZWJBDRT5nP55gESsrwiTXbb+i9lY4Hx7srEQJR07lJWASfKGX6IJtUaIstl7KnO6VI72XI2Zo01SAQAOw7m5+70LgYN1woYoAcziCSFyuIfJavGF0zd1cAu95Cwo0E8+y/YcAO3jwEqFE8oH7PkqKEf4XbF166quTf3AmVQJ8Q6lfSqWlZTps/dDGCAOe3Z63drIbh2bu3A/49bjT1TS7RFK5QvkKCtrM8zOS1DhEDjPPNR84BD/vbpjehHUlG6i7xlTwhmYblQR1oMUpfqrHqX5b9Lg2qADH+AfKRJ7Xd/kPSXdEw7MvJaZFpv9VuiFlUv37EyQBopyFhWYxRU9Kb1XfmkxpO+TCovzmEbKpWxi8KBYOdbX3QaNBW6HQLEd79+H8E=" }, "gender": { "0": "Keine Anrede", diff --git a/apps/isa-app/src/config/config.staging.json b/apps/isa-app/src/config/config.staging.json index 10300e77e..c136d92aa 100644 --- a/apps/isa-app/src/config/config.staging.json +++ b/apps/isa-app/src/config/config.staging.json @@ -73,7 +73,7 @@ }, "checkForUpdates": 3600000, "licence": { - "scandit": "AqeFthV/MMKEPoQNIB3vSLYDthFhJ0F03QQtH+4f/ivCRKdYPjxnMU94RVMEaldhNTQj5sB8mJVNWq0vbHCzqul36KcLdG0kwFfBiXAoEkfOe2bRGTCX4bASLuwfHVv8+AG+Pwdhelf3XMcIvnrGkiR91EmRGeebiiVX448H6U+WdyXJtns/W/ZgdMZBGUHA4WsG9Ct5SyLGaeGYI1iK8LZtpKzLBcsvYwOkDeI4IjIuOZpMpy6CzmBAHQlAHWKmwjDizWwB2rU2BZ6i+3H99mpvSz9PCWm9PS+Jr30Me13bb+Oz5zHxeMdoJtZNIhsTgWyVErUlcuceNIibrDj84L4qfmHKPQtalW10+w9ODwRIS+nLCWOpo9we+UCsFgMJLX3lH0ZIXEWEZjAxhzXmdxxGEcroQQXAIH3PsN8RUSuaC6PPOirvKmZUbW3XUun+vmxMWxhDyGwnat9CpDpQ+CpsyPECaUEkbkVEg/Mq42QxVHF25UgZ37c5gN0wHNAjal/HSpZfLBzDeC5Y/iKqgKhjf68Bf7lnOBYokWFUxBRdcKLhtz3nGNZL3UpabCULf2J5lOZ0Mj8hdC+P4UNZMCRVEs4UR9pqHEoJVdQ5KMO8cXcvKGxGG4hT9UNNbk9o+jNWOlhCribVTmkj6kmInB8zDFkceKy3HUSC8p9TlzjxfBpzN0oVMG9DIlkTWh3nryr4lDJimIz4AriI6Xft3NJgiIkUVAjsTHl33IRz7jwyQOzyUR197o0ojRwvLpm3zkHwap4lyvMz7SoYhKoyN66Aul3K5iic8hVVUuriChEZyIwYml71vAfIpmwZC5GVF5XJBT1r0OG+xmJbH6sae0gOnMpFyed3R+BH/AU2OY9nrnTNLN83pk8huK7BPQVnpAQqU76IrZP5GAyd1GNRi9WWJo4mHefe/9/x22lfHg7BELhOXoJlDZWoj4uOYJVVycQD/ninQMtwkry/9VEOQmrg76bRVbz2OZ3RFDw/AXBd+1jA0K7gIP9G5dN4x2NjNbzPE4gMhHvNi+vUy8x+1uHRQdBzI/F7EkuFb59eKZYe1EHTofnzGofZUgiuXMDDVTi8dE80PmFRCTnNvEtK8rRcBFSqWxeX1u5h+PR8btTagOH0hNCNWUaVYpIcHXvKP5gFFluPy5+RR3TRXYhBKOeb+Q2uxrowwVJs2FOxwfORtKXti8pGIw9bVZk9yNCqafPuURqGKMw/e+H8ElIWaiWH2mcY9dDKN6lBhOdKYjhKQZ/4t9H+ZbyeKzebH8habpAZEDdN0fbqDMwWTD+eKo02s5wOzJ+0z4BpDszMd2acvQ1GVrF0KajpReco2FE+AQpbxHM2KQfKqiDHOUd02nG9AHjKRf/xUTySpD8pG3DvPZC+ImqQZN/t7/IegQptgrezq2w2y0L89sgNnnhRopaMRt/sPSirTXh/NA==" + "scandit": "ATSVF4WBEUdWFabwSBws+xhCeCSCzgKZVEUjDXt0v6EpJHyN7lNmjMNmg8S+ADBh6h/Wn6Vl1b8TDhw3Fl1ZdkFoQ88zZUgagRY9vKpAjzimETtcVmzAA05W498GYgSr42+q4P9dkGO1RPdcOXqAgZZpNlsaQnyP1WjOMvgRRouwBxnoVCwkir8//kLxJaHPJKSYQNcTdRNMgqNPq/vUwdYVrzg26ltn7eC5imeXyYuQH3u2L4TVuRjr3SDVqsv7lnybh3ijg3dLoI93atUBuxbmzvoWzyb2mxrchJ9DaxrBy0igV2qFzzF1R6QvlNTyvN9HyUvZ0/sPS1DqOoql9bqG7ibyGOdRa2/vfIDTLbVEIaym8yQzErBBqthjviCub2pYXGX+ai9xXufuqRDyX29uCafxSv6sQsnVcEnuLEmP6gdmGBMVvH/WEZHnGn6bQpfWwFIGRZZKM+SxTdToJanj3jxNF/pO445/YZWJBDRT5nP55gESsrwiTXbb+i9lY4Hx7srEQJR07lJWASfKGX6IJtUaIstl7KnO6VI72XI2Zo01SAQAOw7m5+70LgYN1woYoAcziCSFyuIfJavGF0zd1cAu95Cwo0E8+y/YcAO3jwEqFE8oH7PkqKEf4XbF166quTf3AmVQJ8Q6lfSqWlZTps/dDGCAOe3Z63drIbh2bu3A/49bjT1TS7RFK5QvkKCtrM8zOS1DhEDjPPNR84BD/vbpjehHUlG6i7xlTwhmYblQR1oMUpfqrHqX5b9Lg2qADH+AfKRJ7Xd/kPSXdEw7MvJaZFpv9VuiFlUv37EyQBopyFhWYxRU9Kb1XfmkxpO+TCovzmEbKpWxi8KBYOdbX3QaNBW6HQLEd79+H8E=" }, "gender": { "0": "Keine Anrede", From bb5b6e2e59c029bcf0a9468840c47bba4cd59956 Mon Sep 17 00:00:00 2001 From: Lorenz Hilpert Date: Thu, 5 Dec 2024 16:35:45 +0100 Subject: [PATCH 16/16] Update Scandit licence key for staging environment --- apps/isa-app/src/config/config.staging.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/isa-app/src/config/config.staging.json b/apps/isa-app/src/config/config.staging.json index c136d92aa..10300e77e 100644 --- a/apps/isa-app/src/config/config.staging.json +++ b/apps/isa-app/src/config/config.staging.json @@ -73,7 +73,7 @@ }, "checkForUpdates": 3600000, "licence": { - "scandit": "ATSVF4WBEUdWFabwSBws+xhCeCSCzgKZVEUjDXt0v6EpJHyN7lNmjMNmg8S+ADBh6h/Wn6Vl1b8TDhw3Fl1ZdkFoQ88zZUgagRY9vKpAjzimETtcVmzAA05W498GYgSr42+q4P9dkGO1RPdcOXqAgZZpNlsaQnyP1WjOMvgRRouwBxnoVCwkir8//kLxJaHPJKSYQNcTdRNMgqNPq/vUwdYVrzg26ltn7eC5imeXyYuQH3u2L4TVuRjr3SDVqsv7lnybh3ijg3dLoI93atUBuxbmzvoWzyb2mxrchJ9DaxrBy0igV2qFzzF1R6QvlNTyvN9HyUvZ0/sPS1DqOoql9bqG7ibyGOdRa2/vfIDTLbVEIaym8yQzErBBqthjviCub2pYXGX+ai9xXufuqRDyX29uCafxSv6sQsnVcEnuLEmP6gdmGBMVvH/WEZHnGn6bQpfWwFIGRZZKM+SxTdToJanj3jxNF/pO445/YZWJBDRT5nP55gESsrwiTXbb+i9lY4Hx7srEQJR07lJWASfKGX6IJtUaIstl7KnO6VI72XI2Zo01SAQAOw7m5+70LgYN1woYoAcziCSFyuIfJavGF0zd1cAu95Cwo0E8+y/YcAO3jwEqFE8oH7PkqKEf4XbF166quTf3AmVQJ8Q6lfSqWlZTps/dDGCAOe3Z63drIbh2bu3A/49bjT1TS7RFK5QvkKCtrM8zOS1DhEDjPPNR84BD/vbpjehHUlG6i7xlTwhmYblQR1oMUpfqrHqX5b9Lg2qADH+AfKRJ7Xd/kPSXdEw7MvJaZFpv9VuiFlUv37EyQBopyFhWYxRU9Kb1XfmkxpO+TCovzmEbKpWxi8KBYOdbX3QaNBW6HQLEd79+H8E=" + "scandit": "AqeFthV/MMKEPoQNIB3vSLYDthFhJ0F03QQtH+4f/ivCRKdYPjxnMU94RVMEaldhNTQj5sB8mJVNWq0vbHCzqul36KcLdG0kwFfBiXAoEkfOe2bRGTCX4bASLuwfHVv8+AG+Pwdhelf3XMcIvnrGkiR91EmRGeebiiVX448H6U+WdyXJtns/W/ZgdMZBGUHA4WsG9Ct5SyLGaeGYI1iK8LZtpKzLBcsvYwOkDeI4IjIuOZpMpy6CzmBAHQlAHWKmwjDizWwB2rU2BZ6i+3H99mpvSz9PCWm9PS+Jr30Me13bb+Oz5zHxeMdoJtZNIhsTgWyVErUlcuceNIibrDj84L4qfmHKPQtalW10+w9ODwRIS+nLCWOpo9we+UCsFgMJLX3lH0ZIXEWEZjAxhzXmdxxGEcroQQXAIH3PsN8RUSuaC6PPOirvKmZUbW3XUun+vmxMWxhDyGwnat9CpDpQ+CpsyPECaUEkbkVEg/Mq42QxVHF25UgZ37c5gN0wHNAjal/HSpZfLBzDeC5Y/iKqgKhjf68Bf7lnOBYokWFUxBRdcKLhtz3nGNZL3UpabCULf2J5lOZ0Mj8hdC+P4UNZMCRVEs4UR9pqHEoJVdQ5KMO8cXcvKGxGG4hT9UNNbk9o+jNWOlhCribVTmkj6kmInB8zDFkceKy3HUSC8p9TlzjxfBpzN0oVMG9DIlkTWh3nryr4lDJimIz4AriI6Xft3NJgiIkUVAjsTHl33IRz7jwyQOzyUR197o0ojRwvLpm3zkHwap4lyvMz7SoYhKoyN66Aul3K5iic8hVVUuriChEZyIwYml71vAfIpmwZC5GVF5XJBT1r0OG+xmJbH6sae0gOnMpFyed3R+BH/AU2OY9nrnTNLN83pk8huK7BPQVnpAQqU76IrZP5GAyd1GNRi9WWJo4mHefe/9/x22lfHg7BELhOXoJlDZWoj4uOYJVVycQD/ninQMtwkry/9VEOQmrg76bRVbz2OZ3RFDw/AXBd+1jA0K7gIP9G5dN4x2NjNbzPE4gMhHvNi+vUy8x+1uHRQdBzI/F7EkuFb59eKZYe1EHTofnzGofZUgiuXMDDVTi8dE80PmFRCTnNvEtK8rRcBFSqWxeX1u5h+PR8btTagOH0hNCNWUaVYpIcHXvKP5gFFluPy5+RR3TRXYhBKOeb+Q2uxrowwVJs2FOxwfORtKXti8pGIw9bVZk9yNCqafPuURqGKMw/e+H8ElIWaiWH2mcY9dDKN6lBhOdKYjhKQZ/4t9H+ZbyeKzebH8habpAZEDdN0fbqDMwWTD+eKo02s5wOzJ+0z4BpDszMd2acvQ1GVrF0KajpReco2FE+AQpbxHM2KQfKqiDHOUd02nG9AHjKRf/xUTySpD8pG3DvPZC+ImqQZN/t7/IegQptgrezq2w2y0L89sgNnnhRopaMRt/sPSirTXh/NA==" }, "gender": { "0": "Keine Anrede",