mirror of
https://dev.azure.com/hugendubel/ISA/_git/ISA-Frontend
synced 2025-12-28 22:42:11 +01:00
Merge branch 'develop' into release/3.0
This commit is contained in:
@@ -415,6 +415,10 @@
|
||||
{
|
||||
"name": "isa-box-out",
|
||||
"alias": "Versandbestellung (oder gemischt)"
|
||||
},
|
||||
{
|
||||
"name": "package-variant-closed",
|
||||
"alias": "Bestellung ohne Konto"
|
||||
},{
|
||||
"name": "person",
|
||||
"alias": "Onlinekonto"
|
||||
|
||||
@@ -237,7 +237,19 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
||||
.navigate();
|
||||
}
|
||||
} else if (searchCompleted?.clear || this.route.outlet === 'primary') {
|
||||
await this._navigationService.getArticleSearchResultsPath(processId, { queryParams: params }).navigate();
|
||||
const ean = this.route?.snapshot?.params?.ean;
|
||||
|
||||
if (ean) {
|
||||
await this._navigationService
|
||||
.getArticleDetailsPathByEan({
|
||||
processId,
|
||||
ean,
|
||||
extras: { queryParams: params },
|
||||
})
|
||||
.navigate();
|
||||
} else {
|
||||
await this._navigationService.getArticleSearchResultsPath(processId, { queryParams: params }).navigate();
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
export const CustomerLabelColor = {
|
||||
Abholfachbestellung: '#EDEFF0',
|
||||
'Versandbestellung (oder gemischt)': '#EDEFF0',
|
||||
'Bestellung ohne Konto': '#EDEFF0',
|
||||
Onlinekonto: '#804279',
|
||||
'Onlinekonto mit Kundenkarte': '#804279',
|
||||
'Business Konto (auf Rechnung)': '#804279',
|
||||
@@ -10,6 +11,7 @@ export const CustomerLabelColor = {
|
||||
|
||||
export const CustomerLabelTextColor = {
|
||||
Abholfachbestellung: '#000000',
|
||||
'Bestellung ohne Konto': '#000000',
|
||||
'Versandbestellung (oder gemischt)': '#000000',
|
||||
Onlinekonto: '#FFFFFF',
|
||||
'Onlinekonto mit Kundenkarte': '#FFFFFF',
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
import { Component, ChangeDetectionStrategy, Input } from '@angular/core';
|
||||
import { Router } from '@angular/router';
|
||||
import { ApplicationService } from '@core/application';
|
||||
import { ProductsFeed } from '@domain/isa';
|
||||
import { ProductCatalogNavigationService } from '@shared/services';
|
||||
import { first } from 'rxjs/operators';
|
||||
|
||||
@Component({
|
||||
selector: 'page-products-card',
|
||||
@@ -12,9 +14,19 @@ export class ProductsCardComponent {
|
||||
@Input()
|
||||
feed: ProductsFeed;
|
||||
|
||||
constructor(private _router: Router) {}
|
||||
constructor(private _navigation: ProductCatalogNavigationService, private _app: ApplicationService) {}
|
||||
|
||||
navigatetToProduct(ean: string) {
|
||||
this._router.navigate(['/kunde/product/details/ean', ean]);
|
||||
async navigatetToProduct(ean: string) {
|
||||
let processes = await this._app.getProcesses$('customer').pipe(first()).toPromise();
|
||||
|
||||
processes = processes.sort((a, b) => b.activated - a.activated);
|
||||
|
||||
this._navigation
|
||||
.getArticleDetailsPathByEan({
|
||||
processId: processes[0]?.id ?? Date.now(),
|
||||
ean,
|
||||
extras: { queryParams: { main_qs: this.feed.items.map((i) => i.product.ean).join(';') } },
|
||||
})
|
||||
.navigate();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,7 +140,8 @@ export class PickupShelfFilterComponent {
|
||||
}
|
||||
|
||||
clearFilter(filter: Filter) {
|
||||
this.store.setQueryParams({});
|
||||
const { main_qs } = filter.getQueryParams();
|
||||
this.store.setQueryParams({ main_qs });
|
||||
}
|
||||
|
||||
hasSelectedOptions(filter: Filter) {
|
||||
|
||||
@@ -39,23 +39,23 @@
|
||||
</div>
|
||||
|
||||
<div class="page-pickup-shelf-list-item__item-ean-quantity-changed flex flex-col">
|
||||
<div class="page-pickup-shelf-list-item__item-ean text-p2 flex flex-row mb-[0.375rem]">
|
||||
<div class="page-pickup-shelf-list-item__item-ean text-p2 flex flex-row mb-[0.375rem]" [attr.data-ean]="item?.product?.ean">
|
||||
<div class="min-w-[7.5rem]">EAN</div>
|
||||
<div class="font-bold">{{ item?.product?.ean }}</div>
|
||||
</div>
|
||||
|
||||
<div class="page-pickup-shelf-list-item__item-quantity flex flex-row text-p2 mb-[0.375rem]">
|
||||
<div class="page-pickup-shelf-list-item__item-quantity flex flex-row text-p2 mb-[0.375rem]" [attr.data-menge]="item.quantity">
|
||||
<div class="min-w-[7.5rem]">Menge</div>
|
||||
<div class="font-bold">{{ item.quantity }} x</div>
|
||||
</div>
|
||||
|
||||
<div class="page-pickup-shelf-list-item__item-changed text-p2">
|
||||
<div class="page-pickup-shelf-list-item__item-changed text-p2" [attr.data-geaendert]="item?.processingStatusDate">
|
||||
<div *ngIf="showChangeDate; else showOrderDate" class="flex flex-row">
|
||||
<div class="min-w-[7.5rem]">Geändert</div>
|
||||
<div class="font-bold">{{ item?.processingStatusDate | date: 'dd.MM.yy | HH:mm' }} Uhr</div>
|
||||
</div>
|
||||
<ng-template #showOrderDate>
|
||||
<div class="flex flex-row">
|
||||
<div class="flex flex-row" [attr.data-bestelldatum]="item?.orderDate">
|
||||
<div class="min-w-[7.5rem]">Bestelldatum</div>
|
||||
<div class="font-bold">{{ item?.orderDate | date: 'dd.MM.yy | HH:mm' }} Uhr</div>
|
||||
</div>
|
||||
@@ -67,6 +67,8 @@
|
||||
<div
|
||||
*ngIf="showCompartmentCode"
|
||||
class="page-pickup-shelf-list-item__item-order-number text-h3 mb-[0.375rem] self-end font-bold break-all text-right"
|
||||
[attr.data-compartment-code]="item?.compartmentCode"
|
||||
[attr.data-compartment-info]="item?.compartmentInfo"
|
||||
>
|
||||
{{ item?.compartmentCode }}{{ item?.compartmentInfo && '_' + item?.compartmentInfo }}
|
||||
</div>
|
||||
@@ -75,6 +77,7 @@
|
||||
<div
|
||||
class="page-pickup-shelf-list-item__item-processing-status flex flex-row mb-[0.375rem] rounded p-3 py-[0.125rem] text-white"
|
||||
[style]="processingStatusColor"
|
||||
[attr.data-processing-status]="item.processingStatus"
|
||||
>
|
||||
{{ item.processingStatus | processingStatus }}
|
||||
</div>
|
||||
@@ -83,6 +86,7 @@
|
||||
<div
|
||||
class="font-bold flex flex-row items-center justify-center text-p2 text-[#26830C]"
|
||||
*ngIf="item.features?.paid && (isTablet || isDesktopSmall || primaryOutletActive)"
|
||||
[attr.data-paid]="item.features?.paid"
|
||||
>
|
||||
<shared-icon class="flex items-center justify-center mr-[0.375rem]" [size]="24" icon="credit-card"></shared-icon>
|
||||
{{ item.features?.paid }}
|
||||
@@ -105,7 +109,10 @@
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div class="page-pickup-shelf-list-item__item-special-comment break-words font-bold text-p2 mt-[0.375rem] text-[#996900]">
|
||||
<div
|
||||
[attr.data-special-comment]="item?.specialComment"
|
||||
class="page-pickup-shelf-list-item__item-special-comment break-words font-bold text-p2 mt-[0.375rem] text-[#996900]"
|
||||
>
|
||||
{{ item?.specialComment }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -41,10 +41,7 @@ export function selectFilter(state: PickupShelfState) {
|
||||
}
|
||||
|
||||
// Wenn queryParams ein leeres Objekt ist, dann wird der Filter gesetzt, aber ohne Werte (leerer Filter)
|
||||
if (isEmpty(queryParams)) {
|
||||
filter.unselectAllFilterOptions();
|
||||
return filter;
|
||||
}
|
||||
filter.unselectAllFilterOptions();
|
||||
|
||||
// Wenn queryParams ein Objekt mit Werten ist, dann wird der Filter gesetzt
|
||||
filter.fromQueryParams(queryParams);
|
||||
|
||||
@@ -31,9 +31,10 @@
|
||||
|
||||
<div class="inline-flex flex-row bg-white rounded-md mt-4">
|
||||
<button
|
||||
class="w-48 py-2 bg-white rounded-md font-bold"
|
||||
class="w-48 py-2 rounded-md font-bold"
|
||||
type="button"
|
||||
*ngFor="let source of sources$ | async"
|
||||
[class.bg-white]="(selectedSource$ | async) !== source"
|
||||
[class.bg-active-branch]="(selectedSource$ | async) === source"
|
||||
[class.text-white]="(selectedSource$ | async) === source"
|
||||
(click)="setSource(source)"
|
||||
|
||||
Reference in New Issue
Block a user