mirror of
https://dev.azure.com/hugendubel/ISA/_git/ISA-Frontend
synced 2025-12-28 22:42:11 +01:00
chore(swagger-oms, swagger-checkout): Update Swagger and resolved breaking changes
This commit is contained in:
@@ -12,7 +12,13 @@ import {
|
|||||||
ShoppingCartItemDTO,
|
ShoppingCartItemDTO,
|
||||||
} from '@generated/swagger/checkout-api';
|
} from '@generated/swagger/checkout-api';
|
||||||
import { DomainCheckoutService } from '@domain/checkout';
|
import { DomainCheckoutService } from '@domain/checkout';
|
||||||
import { catchError, mergeMap, switchMap, tap, withLatestFrom } from 'rxjs/operators';
|
import {
|
||||||
|
catchError,
|
||||||
|
mergeMap,
|
||||||
|
switchMap,
|
||||||
|
tap,
|
||||||
|
withLatestFrom,
|
||||||
|
} from 'rxjs/operators';
|
||||||
import {
|
import {
|
||||||
BranchService,
|
BranchService,
|
||||||
DisplayOrderDTO,
|
DisplayOrderDTO,
|
||||||
@@ -40,7 +46,10 @@ export interface KulturpassOrderModalState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class KulturpassOrderModalStore extends ComponentStore<KulturpassOrderModalState> implements OnStoreInit {
|
export class KulturpassOrderModalStore
|
||||||
|
extends ComponentStore<KulturpassOrderModalState>
|
||||||
|
implements OnStoreInit
|
||||||
|
{
|
||||||
private _checkoutService = inject(DomainCheckoutService);
|
private _checkoutService = inject(DomainCheckoutService);
|
||||||
private _branchService = inject(BranchService);
|
private _branchService = inject(BranchService);
|
||||||
private _authService = inject(AuthService);
|
private _authService = inject(AuthService);
|
||||||
@@ -87,23 +96,33 @@ export class KulturpassOrderModalStore extends ComponentStore<KulturpassOrderMod
|
|||||||
|
|
||||||
readonly order$ = this.select((state) => state.order);
|
readonly order$ = this.select((state) => state.order);
|
||||||
|
|
||||||
readonly updateCheckout = this.updater((state, checkout: CheckoutDTO) => ({ ...state, checkout }));
|
readonly updateCheckout = this.updater((state, checkout: CheckoutDTO) => ({
|
||||||
|
...state,
|
||||||
|
checkout,
|
||||||
|
}));
|
||||||
|
|
||||||
readonly updateOrder = this.updater((state, order: OrderDTO) => ({ ...state, order }));
|
readonly updateOrder = this.updater((state, order: OrderDTO) => ({
|
||||||
|
...state,
|
||||||
|
order,
|
||||||
|
}));
|
||||||
|
|
||||||
readonly fetchShoppingCart$ = this.select((state) => state.fetchShoppingCart);
|
readonly fetchShoppingCart$ = this.select((state) => state.fetchShoppingCart);
|
||||||
|
|
||||||
readonly updateFetchShoppingCart = this.updater((state, fetchShoppingCart: boolean) => ({
|
readonly updateFetchShoppingCart = this.updater(
|
||||||
...state,
|
(state, fetchShoppingCart: boolean) => ({
|
||||||
fetchShoppingCart,
|
...state,
|
||||||
}));
|
fetchShoppingCart,
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
readonly ordering$ = this.select((state) => state.ordering);
|
readonly ordering$ = this.select((state) => state.ordering);
|
||||||
|
|
||||||
loadBranch = this.effect(($) =>
|
loadBranch = this.effect(($) =>
|
||||||
$.pipe(
|
$.pipe(
|
||||||
switchMap(() =>
|
switchMap(() =>
|
||||||
this._branchService.BranchGetBranches({}).pipe(tapResponse(this.handleBranchResponse, this.handleBranchError)),
|
this._branchService
|
||||||
|
.BranchGetBranches({})
|
||||||
|
.pipe(tapResponse(this.handleBranchResponse, this.handleBranchError)),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@@ -111,31 +130,45 @@ export class KulturpassOrderModalStore extends ComponentStore<KulturpassOrderMod
|
|||||||
handleBranchResponse = (res: ResponseArgsOfIEnumerableOfBranchDTO) => {
|
handleBranchResponse = (res: ResponseArgsOfIEnumerableOfBranchDTO) => {
|
||||||
const branchNumber = this._authService.getClaimByKey('branch_no');
|
const branchNumber = this._authService.getClaimByKey('branch_no');
|
||||||
|
|
||||||
this.patchState({ branch: res.result.find((b) => b.branchNumber === branchNumber) });
|
this.patchState({
|
||||||
|
branch: res.result.find((b) => b.branchNumber === branchNumber),
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
handleBranchError = (err) => {
|
handleBranchError = (err) => {
|
||||||
this._modal.error('Fehler beim Laden der Filiale', err);
|
this._modal.error('Fehler beim Laden der Filiale', err);
|
||||||
};
|
};
|
||||||
|
|
||||||
createShoppingCart = this.effect((orderItemListItem$: Observable<OrderItemListItemDTO>) =>
|
createShoppingCart = this.effect(
|
||||||
orderItemListItem$.pipe(
|
(orderItemListItem$: Observable<OrderItemListItemDTO>) =>
|
||||||
tap((orderItemListItem) => {
|
orderItemListItem$.pipe(
|
||||||
this.patchState({ orderItemListItem });
|
tap((orderItemListItem) => {
|
||||||
this.updateFetchShoppingCart(true);
|
this.patchState({ orderItemListItem });
|
||||||
}),
|
this.updateFetchShoppingCart(true);
|
||||||
switchMap((orderItemListItem) =>
|
}),
|
||||||
this._checkoutService
|
switchMap((orderItemListItem) =>
|
||||||
.getShoppingCart({ processId: this.processId })
|
this._checkoutService
|
||||||
.pipe(tapResponse(this.handleCreateShoppingCartResponse, this.handleCreateShoppingCartError)),
|
.getShoppingCart({ processId: this.processId })
|
||||||
|
.pipe(
|
||||||
|
tapResponse(
|
||||||
|
this.handleCreateShoppingCartResponse,
|
||||||
|
this.handleCreateShoppingCartError,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
handleCreateShoppingCartResponse = (res: ShoppingCartDTO) => {
|
handleCreateShoppingCartResponse = (res: ShoppingCartDTO) => {
|
||||||
this.patchState({ shoppingCart: res });
|
this.patchState({ shoppingCart: res });
|
||||||
this._checkoutService.setBuyer({ processId: this.processId, buyer: this.order.buyer });
|
this._checkoutService.setBuyer({
|
||||||
this._checkoutService.setPayer({ processId: this.processId, payer: this.order.billing?.data });
|
processId: this.processId,
|
||||||
|
buyer: this.order.buyer,
|
||||||
|
});
|
||||||
|
this._checkoutService.setPayer({
|
||||||
|
processId: this.processId,
|
||||||
|
payer: this.order.billing?.data,
|
||||||
|
});
|
||||||
|
|
||||||
this.updateFetchShoppingCart(false);
|
this.updateFetchShoppingCart(false);
|
||||||
};
|
};
|
||||||
@@ -154,7 +187,9 @@ export class KulturpassOrderModalStore extends ComponentStore<KulturpassOrderMod
|
|||||||
processId: this.processId,
|
processId: this.processId,
|
||||||
items: [add],
|
items: [add],
|
||||||
})
|
})
|
||||||
.pipe(tapResponse(this.handleAddItemResponse, this.handleAddItemError)),
|
.pipe(
|
||||||
|
tapResponse(this.handleAddItemResponse, this.handleAddItemError),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@@ -174,7 +209,12 @@ export class KulturpassOrderModalStore extends ComponentStore<KulturpassOrderMod
|
|||||||
shoppingCartItemId: change.id,
|
shoppingCartItemId: change.id,
|
||||||
update: { quantity: change.quantity },
|
update: { quantity: change.quantity },
|
||||||
})
|
})
|
||||||
.pipe(tapResponse(this.handleQuantityChangeResponse, this.handleQuantityChangeError)),
|
.pipe(
|
||||||
|
tapResponse(
|
||||||
|
this.handleQuantityChangeResponse,
|
||||||
|
this.handleQuantityChangeError,
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@@ -206,7 +246,10 @@ export class KulturpassOrderModalStore extends ComponentStore<KulturpassOrderMod
|
|||||||
this.onOrderSuccess(res.result.item1[0], res.result.item2);
|
this.onOrderSuccess(res.result.item1[0], res.result.item2);
|
||||||
};
|
};
|
||||||
|
|
||||||
onOrderSuccess = (displayOrder: DisplayOrderDTO, action: KeyValueDTOOfStringAndString[]) => {};
|
onOrderSuccess = (
|
||||||
|
displayOrder: DisplayOrderDTO,
|
||||||
|
action: KeyValueDTOOfStringAndString[],
|
||||||
|
) => {};
|
||||||
|
|
||||||
handleOrderError = (err: any) => {
|
handleOrderError = (err: any) => {
|
||||||
this._modal.error('Fehler beim Bestellen', err);
|
this._modal.error('Fehler beim Bestellen', err);
|
||||||
@@ -215,8 +258,9 @@ export class KulturpassOrderModalStore extends ComponentStore<KulturpassOrderMod
|
|||||||
|
|
||||||
itemQuantityByCatalogProductNumber(catalogProductNumber: string) {
|
itemQuantityByCatalogProductNumber(catalogProductNumber: string) {
|
||||||
return (
|
return (
|
||||||
this.shoppingCart?.items?.find((i) => getCatalogProductNumber(i?.data) === catalogProductNumber)?.data
|
this.shoppingCart?.items?.find(
|
||||||
?.quantity ?? 0
|
(i) => getCatalogProductNumber(i?.data) === catalogProductNumber,
|
||||||
|
)?.data?.quantity ?? 0
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -227,7 +271,11 @@ export class KulturpassOrderModalStore extends ComponentStore<KulturpassOrderMod
|
|||||||
.canAddItemsKulturpass([item?.product])
|
.canAddItemsKulturpass([item?.product])
|
||||||
.pipe(
|
.pipe(
|
||||||
tapResponse(
|
tapResponse(
|
||||||
(results) => this.handleCanAddItemResponse({ item, result: results?.find((_) => true) }),
|
(results) =>
|
||||||
|
this.handleCanAddItemResponse({
|
||||||
|
item,
|
||||||
|
result: results?.find((_) => true),
|
||||||
|
}),
|
||||||
this.handleCanAddItemError,
|
this.handleCanAddItemError,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -235,14 +283,23 @@ export class KulturpassOrderModalStore extends ComponentStore<KulturpassOrderMod
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
handleCanAddItemResponse = ({ item, result }: { item: ItemDTO; result: KulturPassResult }) => {
|
handleCanAddItemResponse = ({
|
||||||
|
item,
|
||||||
|
result,
|
||||||
|
}: {
|
||||||
|
item: ItemDTO;
|
||||||
|
result: KulturPassResult;
|
||||||
|
}) => {
|
||||||
if (result?.canAdd) {
|
if (result?.canAdd) {
|
||||||
this.addItemToShoppingCart(item);
|
this.addItemToShoppingCart(item);
|
||||||
} else {
|
} else {
|
||||||
this._modal.open({
|
this._modal.open({
|
||||||
content: UiMessageModalComponent,
|
content: UiMessageModalComponent,
|
||||||
title: 'Artikel nicht förderfähig',
|
title: 'Artikel nicht förderfähig',
|
||||||
data: { message: result?.message, closeAction: 'ohne Artikel fortfahren' },
|
data: {
|
||||||
|
message: result?.message,
|
||||||
|
closeAction: 'ohne Artikel fortfahren',
|
||||||
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -254,14 +311,18 @@ export class KulturpassOrderModalStore extends ComponentStore<KulturpassOrderMod
|
|||||||
addItemToShoppingCart = this.effect((item$: Observable<ItemDTO>) =>
|
addItemToShoppingCart = this.effect((item$: Observable<ItemDTO>) =>
|
||||||
item$.pipe(
|
item$.pipe(
|
||||||
mergeMap((item) => {
|
mergeMap((item) => {
|
||||||
const takeAwayAvailability$ = this._availabilityService.getTakeAwayAvailability({
|
const takeAwayAvailability$ =
|
||||||
item: {
|
this._availabilityService.getTakeAwayAvailability({
|
||||||
ean: item.product.ean,
|
item: {
|
||||||
itemId: item.id,
|
ean: item.product.ean,
|
||||||
price: item.catalogAvailability.price,
|
itemId: item.id,
|
||||||
},
|
price: item.catalogAvailability.price,
|
||||||
quantity: this.itemQuantityByCatalogProductNumber(getCatalogProductNumber(item)) + 1,
|
},
|
||||||
});
|
quantity:
|
||||||
|
this.itemQuantityByCatalogProductNumber(
|
||||||
|
getCatalogProductNumber(item),
|
||||||
|
) + 1,
|
||||||
|
});
|
||||||
|
|
||||||
const deliveryAvailability$ = this._availabilityService
|
const deliveryAvailability$ = this._availabilityService
|
||||||
.getDeliveryAvailability({
|
.getDeliveryAvailability({
|
||||||
@@ -270,7 +331,10 @@ export class KulturpassOrderModalStore extends ComponentStore<KulturpassOrderMod
|
|||||||
itemId: item.id,
|
itemId: item.id,
|
||||||
price: item.catalogAvailability.price,
|
price: item.catalogAvailability.price,
|
||||||
},
|
},
|
||||||
quantity: this.itemQuantityByCatalogProductNumber(getCatalogProductNumber(item)) + 1,
|
quantity:
|
||||||
|
this.itemQuantityByCatalogProductNumber(
|
||||||
|
getCatalogProductNumber(item),
|
||||||
|
) + 1,
|
||||||
})
|
})
|
||||||
.pipe(
|
.pipe(
|
||||||
catchError((err) => {
|
catchError((err) => {
|
||||||
@@ -279,7 +343,10 @@ export class KulturpassOrderModalStore extends ComponentStore<KulturpassOrderMod
|
|||||||
);
|
);
|
||||||
|
|
||||||
return zip(takeAwayAvailability$, deliveryAvailability$).pipe(
|
return zip(takeAwayAvailability$, deliveryAvailability$).pipe(
|
||||||
tapResponse(this.handleAddItemToShoppingCartResponse2(item), this.handleAddItemToShoppingCartError),
|
tapResponse(
|
||||||
|
this.handleAddItemToShoppingCartResponse2(item),
|
||||||
|
this.handleAddItemToShoppingCartError,
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
),
|
),
|
||||||
@@ -287,20 +354,27 @@ export class KulturpassOrderModalStore extends ComponentStore<KulturpassOrderMod
|
|||||||
|
|
||||||
handleAddItemToShoppingCartResponse2 =
|
handleAddItemToShoppingCartResponse2 =
|
||||||
(item: ItemDTO) =>
|
(item: ItemDTO) =>
|
||||||
([takeAwayAvailability, deliveryAvailability]: [AvailabilityDTO, AvailabilityDTO]) => {
|
([takeAwayAvailability, deliveryAvailability]: [
|
||||||
|
AvailabilityDTO,
|
||||||
|
AvailabilityDTO,
|
||||||
|
]) => {
|
||||||
let isPriceMaintained = item?.catalogAvailability?.priceMaintained;
|
let isPriceMaintained = item?.catalogAvailability?.priceMaintained;
|
||||||
let onlinePrice = -1;
|
let onlinePrice = -1;
|
||||||
|
|
||||||
if (deliveryAvailability) {
|
if (deliveryAvailability) {
|
||||||
isPriceMaintained = isPriceMaintained ?? deliveryAvailability['priceMaintained'] ?? false;
|
isPriceMaintained =
|
||||||
|
isPriceMaintained ?? deliveryAvailability['priceMaintained'] ?? false;
|
||||||
onlinePrice = deliveryAvailability?.price?.value?.value ?? -1;
|
onlinePrice = deliveryAvailability?.price?.value?.value ?? -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Preis und priceMaintained werden immer erst vom Katalog genommen. Bei nicht Verfügbarkeit greifen die anderen Availabilities
|
// Preis und priceMaintained werden immer erst vom Katalog genommen. Bei nicht Verfügbarkeit greifen die anderen Availabilities
|
||||||
const offlinePrice =
|
const offlinePrice =
|
||||||
item?.catalogAvailability?.price?.value?.value ?? takeAwayAvailability?.price?.value?.value ?? -1;
|
item?.catalogAvailability?.price?.value?.value ??
|
||||||
|
takeAwayAvailability?.price?.value?.value ??
|
||||||
|
-1;
|
||||||
const availability = takeAwayAvailability;
|
const availability = takeAwayAvailability;
|
||||||
availability.price = item?.catalogAvailability?.price ?? takeAwayAvailability?.price;
|
availability.price =
|
||||||
|
item?.catalogAvailability?.price ?? takeAwayAvailability?.price;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Onlinepreis ist niedliger als der Offlinepreis
|
* Onlinepreis ist niedliger als der Offlinepreis
|
||||||
@@ -314,7 +388,11 @@ export class KulturpassOrderModalStore extends ComponentStore<KulturpassOrderMod
|
|||||||
* wenn der Artikel Preisgebunden ist, wird der Ladenpreis verwendet
|
* wenn der Artikel Preisgebunden ist, wird der Ladenpreis verwendet
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!!deliveryAvailability && onlinePrice < offlinePrice && !isPriceMaintained) {
|
if (
|
||||||
|
!!deliveryAvailability &&
|
||||||
|
onlinePrice < offlinePrice &&
|
||||||
|
!isPriceMaintained
|
||||||
|
) {
|
||||||
availability.price = deliveryAvailability.price;
|
availability.price = deliveryAvailability.price;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -333,10 +411,13 @@ export class KulturpassOrderModalStore extends ComponentStore<KulturpassOrderMod
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
promotion: {
|
promotion: {
|
||||||
points: 0,
|
value: 0,
|
||||||
},
|
},
|
||||||
itemType: item.type,
|
itemType: item.type,
|
||||||
product: { catalogProductNumber: getCatalogProductNumber(item), ...item.product },
|
product: {
|
||||||
|
catalogProductNumber: getCatalogProductNumber(item),
|
||||||
|
...item.product,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
this.addItem(addToShoppingCartDTO);
|
this.addItem(addToShoppingCartDTO);
|
||||||
@@ -346,15 +427,28 @@ export class KulturpassOrderModalStore extends ComponentStore<KulturpassOrderMod
|
|||||||
this._modal.error('Fehler beim Hinzufügen des Artikels', err);
|
this._modal.error('Fehler beim Hinzufügen des Artikels', err);
|
||||||
};
|
};
|
||||||
|
|
||||||
setAvailability = this.updater((state, data: { catalogProductNumber: string; availability: AvailabilityDTO }) => {
|
setAvailability = this.updater(
|
||||||
return { ...state, availabilities: { ...state.availabilities, [data.catalogProductNumber]: data.availability } };
|
(
|
||||||
});
|
state,
|
||||||
|
data: { catalogProductNumber: string; availability: AvailabilityDTO },
|
||||||
|
) => {
|
||||||
|
return {
|
||||||
|
...state,
|
||||||
|
availabilities: {
|
||||||
|
...state.availabilities,
|
||||||
|
[data.catalogProductNumber]: data.availability,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
getAvailability(catalogProductNumber: string): AvailabilityDTO | undefined {
|
getAvailability(catalogProductNumber: string): AvailabilityDTO | undefined {
|
||||||
return this.get((state) => state.availabilities[catalogProductNumber]);
|
return this.get((state) => state.availabilities[catalogProductNumber]);
|
||||||
}
|
}
|
||||||
|
|
||||||
getAvailability$(catalogProductNumber: string): Observable<AvailabilityDTO | undefined> {
|
getAvailability$(
|
||||||
|
catalogProductNumber: string,
|
||||||
|
): Observable<AvailabilityDTO | undefined> {
|
||||||
return this.select((state) => state.availabilities[catalogProductNumber]);
|
return this.select((state) => state.availabilities[catalogProductNumber]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,11 @@ import {
|
|||||||
} from './purchase-options.helpers';
|
} from './purchase-options.helpers';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { first, switchMap } from 'rxjs/operators';
|
import { first, switchMap } from 'rxjs/operators';
|
||||||
import { DEFAULT_PRICE_DTO, DEFAULT_PRICE_VALUE, DEFAULT_VAT_VALUE } from '../constants';
|
import {
|
||||||
|
DEFAULT_PRICE_DTO,
|
||||||
|
DEFAULT_PRICE_VALUE,
|
||||||
|
DEFAULT_VAT_VALUE,
|
||||||
|
} from '../constants';
|
||||||
import {
|
import {
|
||||||
AddToShoppingCartDTO,
|
AddToShoppingCartDTO,
|
||||||
EntityDTOContainerOfDestinationDTO,
|
EntityDTOContainerOfDestinationDTO,
|
||||||
@@ -103,7 +107,9 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
return this.get(Selectors.getPurchaseOptionsInAvailabilities);
|
return this.get(Selectors.getPurchaseOptionsInAvailabilities);
|
||||||
}
|
}
|
||||||
|
|
||||||
getPurchaseOptionsInAvailabilities$ = this.select(Selectors.getPurchaseOptionsInAvailabilities);
|
getPurchaseOptionsInAvailabilities$ = this.select(
|
||||||
|
Selectors.getPurchaseOptionsInAvailabilities,
|
||||||
|
);
|
||||||
|
|
||||||
get itemsForList() {
|
get itemsForList() {
|
||||||
return this.get(Selectors.getItemsForList);
|
return this.get(Selectors.getItemsForList);
|
||||||
@@ -160,29 +166,48 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
addFetchingAvailability = this.updater((state, fetchState: FetchingAvailability) => {
|
addFetchingAvailability = this.updater(
|
||||||
return {
|
(state, fetchState: FetchingAvailability) => {
|
||||||
...state,
|
return {
|
||||||
fetchingAvailabilities: [...state.fetchingAvailabilities, fetchState],
|
...state,
|
||||||
};
|
fetchingAvailabilities: [...state.fetchingAvailabilities, fetchState],
|
||||||
});
|
};
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
removeFetchingAvailability = this.updater((state, fetchState: FetchingAvailability) => {
|
removeFetchingAvailability = this.updater(
|
||||||
return {
|
(state, fetchState: FetchingAvailability) => {
|
||||||
...state,
|
return {
|
||||||
fetchingAvailabilities: state.fetchingAvailabilities.filter((f) => f.id !== fetchState.id),
|
...state,
|
||||||
};
|
fetchingAvailabilities: state.fetchingAvailabilities.filter(
|
||||||
});
|
(f) => f.id !== fetchState.id,
|
||||||
|
),
|
||||||
|
};
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
async initialize({ items, processId, type, inStoreBranch, pickupBranch }: PurchaseOptionsModalData) {
|
async initialize({
|
||||||
const selectedBranch = await this._service.getSelectedBranchForProcess(processId).toPromise();
|
items,
|
||||||
|
processId,
|
||||||
|
type,
|
||||||
|
inStoreBranch,
|
||||||
|
pickupBranch,
|
||||||
|
}: PurchaseOptionsModalData) {
|
||||||
|
const selectedBranch = await this._service
|
||||||
|
.getSelectedBranchForProcess(processId)
|
||||||
|
.toPromise();
|
||||||
const defaultBranch = await this._service.fetchDefaultBranch().toPromise();
|
const defaultBranch = await this._service.fetchDefaultBranch().toPromise();
|
||||||
const customerFeatures = await this._service.getCustomerFeatures(processId).toPromise();
|
const customerFeatures = await this._service
|
||||||
|
.getCustomerFeatures(processId)
|
||||||
|
.toPromise();
|
||||||
|
|
||||||
this.patchState({
|
this.patchState({
|
||||||
processId: processId,
|
processId: processId,
|
||||||
type: type,
|
type: type,
|
||||||
items: items.map((item) => ({ ...item, quantity: item['quantity'] ?? 1 })),
|
items: items.map((item) => ({
|
||||||
|
...item,
|
||||||
|
quantity: item['quantity'] ?? 1,
|
||||||
|
})),
|
||||||
defaultBranch: selectedBranch ?? defaultBranch,
|
defaultBranch: selectedBranch ?? defaultBranch,
|
||||||
pickupBranch: pickupBranch ?? selectedBranch,
|
pickupBranch: pickupBranch ?? selectedBranch,
|
||||||
inStoreBranch: inStoreBranch ?? selectedBranch,
|
inStoreBranch: inStoreBranch ?? selectedBranch,
|
||||||
@@ -255,7 +280,8 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
const items = await this._catalogService
|
const items = await this._catalogService
|
||||||
.searchByEans({ eans: this.items.map((item) => item.product.ean) })
|
.searchByEans({ eans: this.items.map((item) => item.product.ean) })
|
||||||
.toPromise();
|
.toPromise();
|
||||||
if (items.result.length > 0) await this._addCatalogueAvailabilities(items.result);
|
if (items.result.length > 0)
|
||||||
|
await this._addCatalogueAvailabilities(items.result);
|
||||||
} else {
|
} else {
|
||||||
await this._addCatalogueAvailabilities(items as ItemDTO[]);
|
await this._addCatalogueAvailabilities(items as ItemDTO[]);
|
||||||
}
|
}
|
||||||
@@ -264,7 +290,9 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
// #4813 - Function updated - "this.updater" didn't work, so "this.patchState" gets used instead
|
// #4813 - Function updated - "this.updater" didn't work, so "this.patchState" gets used instead
|
||||||
// Added firstDayOfSale for catalogAvailability via ShoppingCart Route
|
// Added firstDayOfSale for catalogAvailability via ShoppingCart Route
|
||||||
private async _addCatalogueAvailabilities(items: ItemDTO[]) {
|
private async _addCatalogueAvailabilities(items: ItemDTO[]) {
|
||||||
const currentAvailabilities = await this.availabilities$.pipe(first()).toPromise();
|
const currentAvailabilities = await this.availabilities$
|
||||||
|
.pipe(first())
|
||||||
|
.toPromise();
|
||||||
const availabilities = [...currentAvailabilities];
|
const availabilities = [...currentAvailabilities];
|
||||||
items.forEach((item) => {
|
items.forEach((item) => {
|
||||||
const catalogAvailability = item.catalogAvailability;
|
const catalogAvailability = item.catalogAvailability;
|
||||||
@@ -272,7 +300,10 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
purchaseOption: 'catalog',
|
purchaseOption: 'catalog',
|
||||||
itemId: item.id,
|
itemId: item.id,
|
||||||
ean: item.product.ean, // Hier brauchen wir zusätzlich die EAN - siehe purchase-options-list-item.component.ts: "get isEVT()"
|
ean: item.product.ean, // Hier brauchen wir zusätzlich die EAN - siehe purchase-options-list-item.component.ts: "get isEVT()"
|
||||||
data: { price: catalogAvailability?.price, firstDayOfSale: catalogAvailability?.firstDayOfSale },
|
data: {
|
||||||
|
price: catalogAvailability?.price,
|
||||||
|
firstDayOfSale: catalogAvailability?.firstDayOfSale,
|
||||||
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -287,8 +318,14 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
|
|
||||||
const id = uniqueId('availability_');
|
const id = uniqueId('availability_');
|
||||||
try {
|
try {
|
||||||
this.addFetchingAvailability({ id, itemId: itemData.sourceId, purchaseOption: 'pickup' });
|
this.addFetchingAvailability({
|
||||||
const res = await this._service.fetchPickupAvailability(itemData, itemData.quantity, branch).toPromise();
|
id,
|
||||||
|
itemId: itemData.sourceId,
|
||||||
|
purchaseOption: 'pickup',
|
||||||
|
});
|
||||||
|
const res = await this._service
|
||||||
|
.fetchPickupAvailability(itemData, itemData.quantity, branch)
|
||||||
|
.toPromise();
|
||||||
|
|
||||||
const availability: Availability = {
|
const availability: Availability = {
|
||||||
itemId: itemData.sourceId,
|
itemId: itemData.sourceId,
|
||||||
@@ -301,7 +338,11 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
console.error('_loadPickupAvailability', err);
|
console.error('_loadPickupAvailability', err);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.removeFetchingAvailability({ id, itemId: itemData.sourceId, purchaseOption: 'pickup' });
|
this.removeFetchingAvailability({
|
||||||
|
id,
|
||||||
|
itemId: itemData.sourceId,
|
||||||
|
purchaseOption: 'pickup',
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _loadInStoreAvailability(itemData: ItemData) {
|
private async _loadInStoreAvailability(itemData: ItemData) {
|
||||||
@@ -310,8 +351,14 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
|
|
||||||
const id = uniqueId('availability_');
|
const id = uniqueId('availability_');
|
||||||
try {
|
try {
|
||||||
this.addFetchingAvailability({ id, itemId: itemData.sourceId, purchaseOption: 'in-store' });
|
this.addFetchingAvailability({
|
||||||
const res = await this._service.fetchInStoreAvailability(itemData, itemData.quantity, branch).toPromise();
|
id,
|
||||||
|
itemId: itemData.sourceId,
|
||||||
|
purchaseOption: 'in-store',
|
||||||
|
});
|
||||||
|
const res = await this._service
|
||||||
|
.fetchInStoreAvailability(itemData, itemData.quantity, branch)
|
||||||
|
.toPromise();
|
||||||
|
|
||||||
const availability: Availability = {
|
const availability: Availability = {
|
||||||
itemId: itemData.sourceId,
|
itemId: itemData.sourceId,
|
||||||
@@ -324,14 +371,24 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
console.error('_loadInStoreAvailability', err);
|
console.error('_loadInStoreAvailability', err);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.removeFetchingAvailability({ id, itemId: itemData.sourceId, purchaseOption: 'in-store' });
|
this.removeFetchingAvailability({
|
||||||
|
id,
|
||||||
|
itemId: itemData.sourceId,
|
||||||
|
purchaseOption: 'in-store',
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _loadDeliveryAvailability(itemData: ItemData) {
|
private async _loadDeliveryAvailability(itemData: ItemData) {
|
||||||
const id = uniqueId('availability_');
|
const id = uniqueId('availability_');
|
||||||
try {
|
try {
|
||||||
this.addFetchingAvailability({ id, itemId: itemData.sourceId, purchaseOption: 'delivery' });
|
this.addFetchingAvailability({
|
||||||
const res = await this._service.fetchDeliveryAvailability(itemData, itemData.quantity).toPromise();
|
id,
|
||||||
|
itemId: itemData.sourceId,
|
||||||
|
purchaseOption: 'delivery',
|
||||||
|
});
|
||||||
|
const res = await this._service
|
||||||
|
.fetchDeliveryAvailability(itemData, itemData.quantity)
|
||||||
|
.toPromise();
|
||||||
const availability: Availability = {
|
const availability: Availability = {
|
||||||
itemId: itemData.sourceId,
|
itemId: itemData.sourceId,
|
||||||
purchaseOption: 'delivery',
|
purchaseOption: 'delivery',
|
||||||
@@ -343,14 +400,24 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
console.error('_loadDeliveryAvailability', error);
|
console.error('_loadDeliveryAvailability', error);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.removeFetchingAvailability({ id, itemId: itemData.sourceId, purchaseOption: 'delivery' });
|
this.removeFetchingAvailability({
|
||||||
|
id,
|
||||||
|
itemId: itemData.sourceId,
|
||||||
|
purchaseOption: 'delivery',
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _loadDigDeliveryAvailability(itemData: ItemData) {
|
private async _loadDigDeliveryAvailability(itemData: ItemData) {
|
||||||
const id = uniqueId('availability_');
|
const id = uniqueId('availability_');
|
||||||
try {
|
try {
|
||||||
this.addFetchingAvailability({ id, itemId: itemData.sourceId, purchaseOption: 'dig-delivery' });
|
this.addFetchingAvailability({
|
||||||
const res = await this._service.fetchDigDeliveryAvailability(itemData, itemData.quantity).toPromise();
|
id,
|
||||||
|
itemId: itemData.sourceId,
|
||||||
|
purchaseOption: 'dig-delivery',
|
||||||
|
});
|
||||||
|
const res = await this._service
|
||||||
|
.fetchDigDeliveryAvailability(itemData, itemData.quantity)
|
||||||
|
.toPromise();
|
||||||
|
|
||||||
const availability: Availability = {
|
const availability: Availability = {
|
||||||
itemId: itemData.sourceId,
|
itemId: itemData.sourceId,
|
||||||
@@ -363,14 +430,24 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
console.error('_loadDigDeliveryAvailability', error);
|
console.error('_loadDigDeliveryAvailability', error);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.removeFetchingAvailability({ id, itemId: itemData.sourceId, purchaseOption: 'dig-delivery' });
|
this.removeFetchingAvailability({
|
||||||
|
id,
|
||||||
|
itemId: itemData.sourceId,
|
||||||
|
purchaseOption: 'dig-delivery',
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _loadB2bDeliveryAvailability(itemData: ItemData) {
|
private async _loadB2bDeliveryAvailability(itemData: ItemData) {
|
||||||
const id = uniqueId('availability_');
|
const id = uniqueId('availability_');
|
||||||
try {
|
try {
|
||||||
this.addFetchingAvailability({ id, itemId: itemData.sourceId, purchaseOption: 'b2b-delivery' });
|
this.addFetchingAvailability({
|
||||||
const res = await this._service.fetchB2bDeliveryAvailability(itemData, itemData.quantity).toPromise();
|
id,
|
||||||
|
itemId: itemData.sourceId,
|
||||||
|
purchaseOption: 'b2b-delivery',
|
||||||
|
});
|
||||||
|
const res = await this._service
|
||||||
|
.fetchB2bDeliveryAvailability(itemData, itemData.quantity)
|
||||||
|
.toPromise();
|
||||||
|
|
||||||
const availability: Availability = {
|
const availability: Availability = {
|
||||||
itemId: itemData.sourceId,
|
itemId: itemData.sourceId,
|
||||||
@@ -383,14 +460,24 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
console.error('_loadB2bDeliveryAvailability', error);
|
console.error('_loadB2bDeliveryAvailability', error);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.removeFetchingAvailability({ id, itemId: itemData.sourceId, purchaseOption: 'b2b-delivery' });
|
this.removeFetchingAvailability({
|
||||||
|
id,
|
||||||
|
itemId: itemData.sourceId,
|
||||||
|
purchaseOption: 'b2b-delivery',
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _loadDownloadAvailability(itemData: ItemData) {
|
private async _loadDownloadAvailability(itemData: ItemData) {
|
||||||
const id = uniqueId('availability_');
|
const id = uniqueId('availability_');
|
||||||
try {
|
try {
|
||||||
this.addFetchingAvailability({ id, itemId: itemData.sourceId, purchaseOption: 'download' });
|
this.addFetchingAvailability({
|
||||||
const res = await this._service.fetchDownloadAvailability(itemData).toPromise();
|
id,
|
||||||
|
itemId: itemData.sourceId,
|
||||||
|
purchaseOption: 'download',
|
||||||
|
});
|
||||||
|
const res = await this._service
|
||||||
|
.fetchDownloadAvailability(itemData)
|
||||||
|
.toPromise();
|
||||||
|
|
||||||
const availability: Availability = {
|
const availability: Availability = {
|
||||||
itemId: itemData.sourceId,
|
itemId: itemData.sourceId,
|
||||||
@@ -403,7 +490,11 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
console.error('_loadDownloadAvailability', error);
|
console.error('_loadDownloadAvailability', error);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.removeFetchingAvailability({ id, itemId: itemData.sourceId, purchaseOption: 'download' });
|
this.removeFetchingAvailability({
|
||||||
|
id,
|
||||||
|
itemId: itemData.sourceId,
|
||||||
|
purchaseOption: 'download',
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private _checkAndSetAvailability(availability: Availability) {
|
private _checkAndSetAvailability(availability: Availability) {
|
||||||
@@ -411,7 +502,9 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
const availabilities = this.availabilities;
|
const availabilities = this.availabilities;
|
||||||
|
|
||||||
const index = availabilities.findIndex(
|
const index = availabilities.findIndex(
|
||||||
(a) => a.itemId === availability.itemId && a.purchaseOption === availability.purchaseOption,
|
(a) =>
|
||||||
|
a.itemId === availability.itemId &&
|
||||||
|
a.purchaseOption === availability.purchaseOption,
|
||||||
);
|
);
|
||||||
|
|
||||||
if (index > -1) {
|
if (index > -1) {
|
||||||
@@ -423,7 +516,11 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
this.patchState({ availabilities });
|
this.patchState({ availabilities });
|
||||||
} else {
|
} else {
|
||||||
let availabilities = this.availabilities.filter(
|
let availabilities = this.availabilities.filter(
|
||||||
(a) => !(a.itemId === availability.itemId && a.purchaseOption === availability.purchaseOption),
|
(a) =>
|
||||||
|
!(
|
||||||
|
a.itemId === availability.itemId &&
|
||||||
|
a.purchaseOption === availability.purchaseOption
|
||||||
|
),
|
||||||
);
|
);
|
||||||
this.patchState({ availabilities });
|
this.patchState({ availabilities });
|
||||||
}
|
}
|
||||||
@@ -432,7 +529,11 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
private _addCanAddResult(canAdd: CanAdd) {
|
private _addCanAddResult(canAdd: CanAdd) {
|
||||||
let canAddResults = this.canAddResults;
|
let canAddResults = this.canAddResults;
|
||||||
canAddResults = canAddResults.filter(
|
canAddResults = canAddResults.filter(
|
||||||
(c) => !(c.itemId === canAdd.itemId && c.purchaseOption === canAdd.purchaseOption),
|
(c) =>
|
||||||
|
!(
|
||||||
|
c.itemId === canAdd.itemId &&
|
||||||
|
c.purchaseOption === canAdd.purchaseOption
|
||||||
|
),
|
||||||
);
|
);
|
||||||
canAddResults.push(canAdd);
|
canAddResults.push(canAdd);
|
||||||
this.patchState({ canAddResults });
|
this.patchState({ canAddResults });
|
||||||
@@ -474,7 +575,10 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
const b2bDeliveryAvailability = this.availabilities.find(
|
const b2bDeliveryAvailability = this.availabilities.find(
|
||||||
(a) => a.itemId === item.id && a.purchaseOption === 'b2b-delivery',
|
(a) => a.itemId === item.id && a.purchaseOption === 'b2b-delivery',
|
||||||
);
|
);
|
||||||
deliveryAvailability = deliveryAvailability || digDeliveryAvailability || b2bDeliveryAvailability;
|
deliveryAvailability =
|
||||||
|
deliveryAvailability ||
|
||||||
|
digDeliveryAvailability ||
|
||||||
|
b2bDeliveryAvailability;
|
||||||
if (deliveryAvailability) {
|
if (deliveryAvailability) {
|
||||||
payloads['Versand'].push(
|
payloads['Versand'].push(
|
||||||
mapToItemPayload({
|
mapToItemPayload({
|
||||||
@@ -487,7 +591,9 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get Abholung availability
|
// Get Abholung availability
|
||||||
let pickupAvailability = this.availabilities.find((a) => a.itemId === item.id && a.purchaseOption === 'pickup');
|
let pickupAvailability = this.availabilities.find(
|
||||||
|
(a) => a.itemId === item.id && a.purchaseOption === 'pickup',
|
||||||
|
);
|
||||||
if (pickupAvailability) {
|
if (pickupAvailability) {
|
||||||
payloads['Abholung'].push(
|
payloads['Abholung'].push(
|
||||||
mapToItemPayload({
|
mapToItemPayload({
|
||||||
@@ -519,7 +625,9 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
const itemPayloads = payloads[key];
|
const itemPayloads = payloads[key];
|
||||||
if (itemPayloads.length > 0) {
|
if (itemPayloads.length > 0) {
|
||||||
try {
|
try {
|
||||||
const res = await this._service.fetchCanAdd(this.processId, key, itemPayloads).toPromise();
|
const res = await this._service
|
||||||
|
.fetchCanAdd(this.processId, key, itemPayloads)
|
||||||
|
.toPromise();
|
||||||
res.forEach((canAdd) => {
|
res.forEach((canAdd) => {
|
||||||
const item = itemPayloads.find((i) => i.id === canAdd.id);
|
const item = itemPayloads.find((i) => i.id === canAdd.id);
|
||||||
this._addCanAddResult({
|
this._addCanAddResult({
|
||||||
@@ -549,7 +657,9 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
if (value && !selectedItemIds.includes(itemId)) {
|
if (value && !selectedItemIds.includes(itemId)) {
|
||||||
this.patchState({ selectedItemIds: [...selectedItemIds, itemId] });
|
this.patchState({ selectedItemIds: [...selectedItemIds, itemId] });
|
||||||
} else if (!value && selectedItemIds.includes(itemId)) {
|
} else if (!value && selectedItemIds.includes(itemId)) {
|
||||||
this.patchState({ selectedItemIds: selectedItemIds.filter((id) => id !== itemId) });
|
this.patchState({
|
||||||
|
selectedItemIds: selectedItemIds.filter((id) => id !== itemId),
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -561,7 +671,9 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
|
|
||||||
canAddItem(itemId: number): boolean {
|
canAddItem(itemId: number): boolean {
|
||||||
const purchaseOption = this.purchaseOption;
|
const purchaseOption = this.purchaseOption;
|
||||||
const canAdd = this.canAddResults.find((c) => c.itemId === itemId && c.purchaseOption === purchaseOption);
|
const canAdd = this.canAddResults.find(
|
||||||
|
(c) => c.itemId === itemId && c.purchaseOption === purchaseOption,
|
||||||
|
);
|
||||||
|
|
||||||
if (canAdd) {
|
if (canAdd) {
|
||||||
return canAdd.canAdd;
|
return canAdd.canAdd;
|
||||||
@@ -574,20 +686,40 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
this.patchState({ selectedItemIds: [] });
|
this.patchState({ selectedItemIds: [] });
|
||||||
}
|
}
|
||||||
|
|
||||||
getItemsThatHaveAnAvailabilityForPurchaseOption(purchaseOption: PurchaseOption): Item[] {
|
getItemsThatHaveAnAvailabilityForPurchaseOption(
|
||||||
return this.get(Selectors.getItemsThatHaveAnAvailabilityForPurchaseOption(purchaseOption));
|
purchaseOption: PurchaseOption,
|
||||||
|
): Item[] {
|
||||||
|
return this.get(
|
||||||
|
Selectors.getItemsThatHaveAnAvailabilityForPurchaseOption(purchaseOption),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getItemsThatHaveAnAvailabilityForPurchaseOption$(purchaseOption: PurchaseOption): Observable<Item[]> {
|
getItemsThatHaveAnAvailabilityForPurchaseOption$(
|
||||||
return this.select(Selectors.getItemsThatHaveAnAvailabilityForPurchaseOption(purchaseOption));
|
purchaseOption: PurchaseOption,
|
||||||
|
): Observable<Item[]> {
|
||||||
|
return this.select(
|
||||||
|
Selectors.getItemsThatHaveAnAvailabilityForPurchaseOption(purchaseOption),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getItemsThatHaveAnAvailabilityAndCanAddForPurchaseOption(purchaseOption: PurchaseOption): Item[] {
|
getItemsThatHaveAnAvailabilityAndCanAddForPurchaseOption(
|
||||||
return this.get(Selectors.getItemsThatHaveAnAvailabilityAndCanAddForPurchaseOption(purchaseOption));
|
purchaseOption: PurchaseOption,
|
||||||
|
): Item[] {
|
||||||
|
return this.get(
|
||||||
|
Selectors.getItemsThatHaveAnAvailabilityAndCanAddForPurchaseOption(
|
||||||
|
purchaseOption,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getItemsThatHaveAnAvailabilityAndCanAddForPurchaseOption$(purchaseOption: PurchaseOption): Observable<Item[]> {
|
getItemsThatHaveAnAvailabilityAndCanAddForPurchaseOption$(
|
||||||
return this.select(Selectors.getItemsThatHaveAnAvailabilityAndCanAddForPurchaseOption(purchaseOption));
|
purchaseOption: PurchaseOption,
|
||||||
|
): Observable<Item[]> {
|
||||||
|
return this.select(
|
||||||
|
Selectors.getItemsThatHaveAnAvailabilityAndCanAddForPurchaseOption(
|
||||||
|
purchaseOption,
|
||||||
|
),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getAvailabilitiesForItem(itemId: number): Availability[] {
|
getAvailabilitiesForItem(itemId: number): Availability[] {
|
||||||
@@ -679,15 +811,21 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getPrice$(itemId: number) {
|
getPrice$(itemId: number) {
|
||||||
return this.purchaseOption$.pipe(switchMap((po) => this.getPriceForPurchaseOption$(itemId, po)));
|
return this.purchaseOption$.pipe(
|
||||||
|
switchMap((po) => this.getPriceForPurchaseOption$(itemId, po)),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getPriceForPurchaseOption(itemId: number, purchaseOption: PurchaseOption) {
|
getPriceForPurchaseOption(itemId: number, purchaseOption: PurchaseOption) {
|
||||||
return this.get(Selectors.getPriceForPurchaseOption(itemId, purchaseOption));
|
return this.get(
|
||||||
|
Selectors.getPriceForPurchaseOption(itemId, purchaseOption),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getPriceForPurchaseOption$(itemId: number, purchaseOption: PurchaseOption) {
|
getPriceForPurchaseOption$(itemId: number, purchaseOption: PurchaseOption) {
|
||||||
return this.select(Selectors.getPriceForPurchaseOption(itemId, purchaseOption));
|
return this.select(
|
||||||
|
Selectors.getPriceForPurchaseOption(itemId, purchaseOption),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getCanEditPrice(itemId: number) {
|
getCanEditPrice(itemId: number) {
|
||||||
@@ -748,27 +886,51 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
getCanAddResultForItemAndCurrentPurchaseOption(itemId: number) {
|
getCanAddResultForItemAndCurrentPurchaseOption(itemId: number) {
|
||||||
return this.get(Selectors.getCanAddResultForItemAndCurrentPurchaseOption(itemId));
|
return this.get(
|
||||||
|
Selectors.getCanAddResultForItemAndCurrentPurchaseOption(itemId),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getCanAddResultForItemAndCurrentPurchaseOption$(itemId: number) {
|
getCanAddResultForItemAndCurrentPurchaseOption$(itemId: number) {
|
||||||
return this.select(Selectors.getCanAddResultForItemAndCurrentPurchaseOption(itemId));
|
return this.select(
|
||||||
|
Selectors.getCanAddResultForItemAndCurrentPurchaseOption(itemId),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getAvailabilityWithPurchaseOption(itemId: number, purchaseOption: PurchaseOption) {
|
getAvailabilityWithPurchaseOption(
|
||||||
return this.get(Selectors.getAvailabilityWithPurchaseOption(itemId, purchaseOption));
|
itemId: number,
|
||||||
|
purchaseOption: PurchaseOption,
|
||||||
|
) {
|
||||||
|
return this.get(
|
||||||
|
Selectors.getAvailabilityWithPurchaseOption(itemId, purchaseOption),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getAvailabilityWithPurchaseOption$(itemId: number, purchaseOption: PurchaseOption) {
|
getAvailabilityWithPurchaseOption$(
|
||||||
return this.select(Selectors.getAvailabilityWithPurchaseOption(itemId, purchaseOption));
|
itemId: number,
|
||||||
|
purchaseOption: PurchaseOption,
|
||||||
|
) {
|
||||||
|
return this.select(
|
||||||
|
Selectors.getAvailabilityWithPurchaseOption(itemId, purchaseOption),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getCanAddResultWithPurchaseOption(itemId: number, purchaseOption: PurchaseOption) {
|
getCanAddResultWithPurchaseOption(
|
||||||
return this.get(Selectors.getCanAddResultWithPurchaseOption(itemId, purchaseOption));
|
itemId: number,
|
||||||
|
purchaseOption: PurchaseOption,
|
||||||
|
) {
|
||||||
|
return this.get(
|
||||||
|
Selectors.getCanAddResultWithPurchaseOption(itemId, purchaseOption),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getCanAddResultWithPurchaseOption$(itemId: number, purchaseOption: PurchaseOption) {
|
getCanAddResultWithPurchaseOption$(
|
||||||
return this.select(Selectors.getCanAddResultWithPurchaseOption(itemId, purchaseOption));
|
itemId: number,
|
||||||
|
purchaseOption: PurchaseOption,
|
||||||
|
) {
|
||||||
|
return this.select(
|
||||||
|
Selectors.getCanAddResultWithPurchaseOption(itemId, purchaseOption),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
addItemsToShoppingCart() {
|
addItemsToShoppingCart() {
|
||||||
@@ -777,10 +939,16 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
getAddToShoppingCartDTOForItem(itemId: number, purchaseOption: PurchaseOption): AddToShoppingCartDTO {
|
getAddToShoppingCartDTOForItem(
|
||||||
|
itemId: number,
|
||||||
|
purchaseOption: PurchaseOption,
|
||||||
|
): AddToShoppingCartDTO {
|
||||||
const item = this.items.find((i) => i.id === itemId);
|
const item = this.items.find((i) => i.id === itemId);
|
||||||
const price = this.getPriceForPurchaseOption(itemId, this.purchaseOption);
|
const price = this.getPriceForPurchaseOption(itemId, this.purchaseOption);
|
||||||
const availability = this.getAvailabilityWithPurchaseOption(itemId, purchaseOption);
|
const availability = this.getAvailabilityWithPurchaseOption(
|
||||||
|
itemId,
|
||||||
|
purchaseOption,
|
||||||
|
);
|
||||||
|
|
||||||
if (!isItemDTO(item, this.type)) {
|
if (!isItemDTO(item, this.type)) {
|
||||||
throw new Error('Invalid item');
|
throw new Error('Invalid item');
|
||||||
@@ -802,8 +970,12 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
availability: { ...availability.data, price },
|
availability: { ...availability.data, price },
|
||||||
destination,
|
destination,
|
||||||
itemType: item.type,
|
itemType: item.type,
|
||||||
product: { ...item.product, catalogProductNumber: item?.product?.catalogProductNumber ?? String(item.id) },
|
product: {
|
||||||
promotion: { points: item.promoPoints },
|
...item.product,
|
||||||
|
catalogProductNumber:
|
||||||
|
item?.product?.catalogProductNumber ?? String(item.id),
|
||||||
|
},
|
||||||
|
promotion: { value: item.promoPoints },
|
||||||
// retailPrice: {
|
// retailPrice: {
|
||||||
// value: price.value.value,
|
// value: price.value.value,
|
||||||
// currency: price.value.currency,
|
// currency: price.value.currency,
|
||||||
@@ -813,10 +985,16 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
getUpdateShoppingCartItemDTOForItem(itemId: number, purchaseOption: PurchaseOption): UpdateShoppingCartItemDTO {
|
getUpdateShoppingCartItemDTOForItem(
|
||||||
|
itemId: number,
|
||||||
|
purchaseOption: PurchaseOption,
|
||||||
|
): UpdateShoppingCartItemDTO {
|
||||||
const item = this.items.find((i) => i.id === itemId);
|
const item = this.items.find((i) => i.id === itemId);
|
||||||
const price = this.getPriceForPurchaseOption(itemId, this.purchaseOption);
|
const price = this.getPriceForPurchaseOption(itemId, this.purchaseOption);
|
||||||
const availability = this.getAvailabilityWithPurchaseOption(itemId, purchaseOption);
|
const availability = this.getAvailabilityWithPurchaseOption(
|
||||||
|
itemId,
|
||||||
|
purchaseOption,
|
||||||
|
);
|
||||||
|
|
||||||
if (!isShoppingCartItemDTO(item, this.type)) {
|
if (!isShoppingCartItemDTO(item, this.type)) {
|
||||||
throw new Error('Invalid item');
|
throw new Error('Invalid item');
|
||||||
@@ -856,7 +1034,9 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
const payloads = this.selectedItemIds.map((itemId) =>
|
const payloads = this.selectedItemIds.map((itemId) =>
|
||||||
this.getAddToShoppingCartDTOForItem(itemId, purchaseOption),
|
this.getAddToShoppingCartDTOForItem(itemId, purchaseOption),
|
||||||
);
|
);
|
||||||
await this._service.addItemToShoppingCart(this.processId, payloads).toPromise();
|
await this._service
|
||||||
|
.addItemToShoppingCart(this.processId, payloads)
|
||||||
|
.toPromise();
|
||||||
} else if (type === 'update') {
|
} else if (type === 'update') {
|
||||||
const payloads = this.selectedItemIds.map((itemId) =>
|
const payloads = this.selectedItemIds.map((itemId) =>
|
||||||
this.getUpdateShoppingCartItemDTOForItem(itemId, purchaseOption),
|
this.getUpdateShoppingCartItemDTOForItem(itemId, purchaseOption),
|
||||||
@@ -864,8 +1044,13 @@ export class PurchaseOptionsStore extends ComponentStore<PurchaseOptionsState> {
|
|||||||
|
|
||||||
for (const itemId of this.selectedItemIds) {
|
for (const itemId of this.selectedItemIds) {
|
||||||
const item = this.items.find((i) => i.id === itemId);
|
const item = this.items.find((i) => i.id === itemId);
|
||||||
const payload = this.getUpdateShoppingCartItemDTOForItem(itemId, purchaseOption);
|
const payload = this.getUpdateShoppingCartItemDTOForItem(
|
||||||
await this._service.updateItemInShoppingCart(this.processId, item.id, payload).toPromise();
|
itemId,
|
||||||
|
purchaseOption,
|
||||||
|
);
|
||||||
|
await this._service
|
||||||
|
.updateItemInShoppingCart(this.processId, item.id, payload)
|
||||||
|
.toPromise();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new Error('Invalid type');
|
throw new Error('Invalid type');
|
||||||
|
|||||||
@@ -22,12 +22,21 @@ import { UiErrorModalComponent, UiModalService } from '@ui/modal';
|
|||||||
import { CacheService } from '@core/cache';
|
import { CacheService } from '@core/cache';
|
||||||
import { isEqual } from 'lodash';
|
import { isEqual } from 'lodash';
|
||||||
import { BehaviorSubject, combineLatest, Subscription } from 'rxjs';
|
import { BehaviorSubject, combineLatest, Subscription } from 'rxjs';
|
||||||
import { debounceTime, first, map, switchMap, withLatestFrom } from 'rxjs/operators';
|
import {
|
||||||
|
debounceTime,
|
||||||
|
first,
|
||||||
|
map,
|
||||||
|
switchMap,
|
||||||
|
withLatestFrom,
|
||||||
|
} from 'rxjs/operators';
|
||||||
import { ArticleSearchService } from '../article-search.store';
|
import { ArticleSearchService } from '../article-search.store';
|
||||||
import { AddedToCartModalComponent } from './added-to-cart-modal/added-to-cart-modal.component';
|
import { AddedToCartModalComponent } from './added-to-cart-modal/added-to-cart-modal.component';
|
||||||
import { SearchResultItemComponent } from './search-result-item.component';
|
import { SearchResultItemComponent } from './search-result-item.component';
|
||||||
import { ProductCatalogNavigationService } from '@shared/services/navigation';
|
import { ProductCatalogNavigationService } from '@shared/services/navigation';
|
||||||
import { Filter, FilterInputGroupMainComponent } from '@shared/components/filter';
|
import {
|
||||||
|
Filter,
|
||||||
|
FilterInputGroupMainComponent,
|
||||||
|
} from '@shared/components/filter';
|
||||||
import { DomainAvailabilityService, ItemData } from '@domain/availability';
|
import { DomainAvailabilityService, ItemData } from '@domain/availability';
|
||||||
import { asapScheduler } from 'rxjs';
|
import { asapScheduler } from 'rxjs';
|
||||||
import { ShellService } from '@shared/shell';
|
import { ShellService } from '@shared/shell';
|
||||||
@@ -39,8 +48,11 @@ import { ShellService } from '@shared/shell';
|
|||||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
standalone: false,
|
standalone: false,
|
||||||
})
|
})
|
||||||
export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterViewInit {
|
export class ArticleSearchResultsComponent
|
||||||
@ViewChildren(SearchResultItemComponent) listItems: QueryList<SearchResultItemComponent>;
|
implements OnInit, OnDestroy, AfterViewInit
|
||||||
|
{
|
||||||
|
@ViewChildren(SearchResultItemComponent)
|
||||||
|
listItems: QueryList<SearchResultItemComponent>;
|
||||||
@ViewChild(CdkVirtualScrollViewport, { static: false })
|
@ViewChild(CdkVirtualScrollViewport, { static: false })
|
||||||
scrollContainer: CdkVirtualScrollViewport;
|
scrollContainer: CdkVirtualScrollViewport;
|
||||||
|
|
||||||
@@ -59,7 +71,9 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
|
|
||||||
selectedItems$ = combineLatest([this.results$, this.selectedItemIds$]).pipe(
|
selectedItems$ = combineLatest([this.results$, this.selectedItemIds$]).pipe(
|
||||||
map(([items, selectedItemIds]) => {
|
map(([items, selectedItemIds]) => {
|
||||||
return items?.filter((item) => selectedItemIds?.find((selectedItemId) => item.id === selectedItemId));
|
return items?.filter((item) =>
|
||||||
|
selectedItemIds?.find((selectedItemId) => item.id === selectedItemId),
|
||||||
|
);
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -81,7 +95,10 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
return this._environment.matchDesktopLarge();
|
return this._environment.matchDesktopLarge();
|
||||||
}
|
}
|
||||||
|
|
||||||
hasFilter$ = combineLatest([this.searchService.filter$, this.searchService.defaultSettings$]).pipe(
|
hasFilter$ = combineLatest([
|
||||||
|
this.searchService.filter$,
|
||||||
|
this.searchService.defaultSettings$,
|
||||||
|
]).pipe(
|
||||||
map(([filter, defaultFilter]) => {
|
map(([filter, defaultFilter]) => {
|
||||||
const filterQueryParams = filter?.getQueryParams();
|
const filterQueryParams = filter?.getQueryParams();
|
||||||
return !isEqual(
|
return !isEqual(
|
||||||
@@ -100,11 +117,15 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
}
|
}
|
||||||
|
|
||||||
get filterQueryParams() {
|
get filterQueryParams() {
|
||||||
return this.cleanupQueryParams(this.searchService?.filter?.getQueryParams());
|
return this.cleanupQueryParams(
|
||||||
|
this.searchService?.filter?.getQueryParams(),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
get primaryOutletActive$() {
|
get primaryOutletActive$() {
|
||||||
return this._environment.matchDesktop$.pipe(map((matches) => matches && this.route.outlet === 'primary'));
|
return this._environment.matchDesktop$.pipe(
|
||||||
|
map((matches) => matches && this.route.outlet === 'primary'),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private readonly SCROLL_INDEX_TOKEN = 'CATALOG_RESULTS_LIST_SCROLL_INDEX';
|
private readonly SCROLL_INDEX_TOKEN = 'CATALOG_RESULTS_LIST_SCROLL_INDEX';
|
||||||
@@ -129,28 +150,42 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.subscriptions.add(
|
this.subscriptions.add(
|
||||||
combineLatest([this.application.activatedProcessId$, this.route.queryParams])
|
combineLatest([
|
||||||
|
this.application.activatedProcessId$,
|
||||||
|
this.route.queryParams,
|
||||||
|
])
|
||||||
.pipe(
|
.pipe(
|
||||||
debounceTime(0),
|
debounceTime(0),
|
||||||
switchMap(([processId, queryParams]) =>
|
switchMap(([processId, queryParams]) =>
|
||||||
this.application
|
this.application.getSelectedBranch$(processId).pipe(
|
||||||
.getSelectedBranch$(processId)
|
map((selectedBranch) => ({
|
||||||
.pipe(map((selectedBranch) => ({ processId, queryParams, selectedBranch }))),
|
processId,
|
||||||
|
queryParams,
|
||||||
|
selectedBranch,
|
||||||
|
})),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.subscribe(async ({ processId, queryParams, selectedBranch }) => {
|
.subscribe(async ({ processId, queryParams, selectedBranch }) => {
|
||||||
const processChanged = processId !== this.searchService.processId;
|
const processChanged = processId !== this.searchService.processId;
|
||||||
|
|
||||||
const branchChanged = selectedBranch?.id !== this.searchService?.selectedBranch?.id;
|
const branchChanged =
|
||||||
|
selectedBranch?.id !== this.searchService?.selectedBranch?.id;
|
||||||
|
|
||||||
if (processChanged) {
|
if (processChanged) {
|
||||||
if (!!this.searchService.processId && this.searchService.filter instanceof Filter) {
|
if (
|
||||||
|
!!this.searchService.processId &&
|
||||||
|
this.searchService.filter instanceof Filter
|
||||||
|
) {
|
||||||
this.cacheCurrentData(
|
this.cacheCurrentData(
|
||||||
this.searchService.processId,
|
this.searchService.processId,
|
||||||
this.searchService.filter.getQueryParams(),
|
this.searchService.filter.getQueryParams(),
|
||||||
this.searchService?.selectedBranch?.id,
|
this.searchService?.selectedBranch?.id,
|
||||||
);
|
);
|
||||||
this.updateBreadcrumbs(this.searchService.processId, this.searchService.filter.getQueryParams());
|
this.updateBreadcrumbs(
|
||||||
|
this.searchService.processId,
|
||||||
|
this.searchService.filter.getQueryParams(),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
this.searchService.setProcess(processId);
|
this.searchService.setProcess(processId);
|
||||||
}
|
}
|
||||||
@@ -169,9 +204,20 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
this.scrollToItem(await this._getScrollIndexFromCache());
|
this.scrollToItem(await this._getScrollIndexFromCache());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isEqual(cleanQueryParams, this.cleanupQueryParams(this.searchService.filter.getQueryParams()))) {
|
if (
|
||||||
|
!isEqual(
|
||||||
|
cleanQueryParams,
|
||||||
|
this.cleanupQueryParams(
|
||||||
|
this.searchService.filter.getQueryParams(),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
) {
|
||||||
await this.searchService.setDefaultFilter(queryParams);
|
await this.searchService.setDefaultFilter(queryParams);
|
||||||
const data = await this.getCachedData(processId, queryParams, selectedBranch?.id);
|
const data = await this.getCachedData(
|
||||||
|
processId,
|
||||||
|
queryParams,
|
||||||
|
selectedBranch?.id,
|
||||||
|
);
|
||||||
|
|
||||||
if (data.items?.length > 0) {
|
if (data.items?.length > 0) {
|
||||||
this.searchService.setItems(data.items);
|
this.searchService.setItems(data.items);
|
||||||
@@ -179,21 +225,29 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
}
|
}
|
||||||
if (
|
if (
|
||||||
data.items?.length === 0 &&
|
data.items?.length === 0 &&
|
||||||
this.route?.parent?.children?.find((childRoute) => childRoute?.outlet === 'side')?.snapshot?.routeConfig
|
this.route?.parent?.children?.find(
|
||||||
?.path !== 'filter'
|
(childRoute) => childRoute?.outlet === 'side',
|
||||||
|
)?.snapshot?.routeConfig?.path !== 'filter'
|
||||||
) {
|
) {
|
||||||
this.search({ clear: true });
|
this.search({ clear: true });
|
||||||
} else {
|
} else {
|
||||||
const selectedItemIds: Array<string> = queryParams?.selected_item_ids?.split(',') ?? [];
|
const selectedItemIds: Array<string> =
|
||||||
|
queryParams?.selected_item_ids?.split(',') ?? [];
|
||||||
for (const id of selectedItemIds) {
|
for (const id of selectedItemIds) {
|
||||||
if (id) {
|
if (id) {
|
||||||
this.searchService.setSelected({ selected: true, itemId: Number(id) });
|
this.searchService.setSelected({
|
||||||
|
selected: true,
|
||||||
|
itemId: Number(id),
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const process = await this.application.getProcessById$(processId).pipe(first()).toPromise();
|
const process = await this.application
|
||||||
|
.getProcessById$(processId)
|
||||||
|
.pipe(first())
|
||||||
|
.toPromise();
|
||||||
if (process) {
|
if (process) {
|
||||||
await this.updateBreadcrumbs(processId, queryParams);
|
await this.updateBreadcrumbs(processId, queryParams);
|
||||||
await this.createBreadcrumb(processId, queryParams);
|
await this.createBreadcrumb(processId, queryParams);
|
||||||
@@ -240,7 +294,10 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
})
|
})
|
||||||
.navigate();
|
.navigate();
|
||||||
}
|
}
|
||||||
} else if (searchCompleted?.clear || this.route.outlet === 'primary') {
|
} else if (
|
||||||
|
searchCompleted?.clear ||
|
||||||
|
this.route.outlet === 'primary'
|
||||||
|
) {
|
||||||
const ean = this.route?.snapshot?.params?.ean;
|
const ean = this.route?.snapshot?.params?.ean;
|
||||||
|
|
||||||
if (ean) {
|
if (ean) {
|
||||||
@@ -253,7 +310,9 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
.navigate();
|
.navigate();
|
||||||
} else {
|
} else {
|
||||||
await this._navigationService
|
await this._navigationService
|
||||||
.getArticleSearchResultsPath(processId, { queryParams: params })
|
.getArticleSearchResultsPath(processId, {
|
||||||
|
queryParams: params,
|
||||||
|
})
|
||||||
.navigate();
|
.navigate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -266,7 +325,9 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
this.searchService.searchStarted.subscribe(async (options) => {
|
this.searchService.searchStarted.subscribe(async (options) => {
|
||||||
if (!options?.clear) {
|
if (!options?.clear) {
|
||||||
const queryParams = {
|
const queryParams = {
|
||||||
...this.cleanupQueryParams(this.searchService.filter.getQueryParams()),
|
...this.cleanupQueryParams(
|
||||||
|
this.searchService.filter.getQueryParams(),
|
||||||
|
),
|
||||||
main_qs: this.sharedFilterInputGroupMain?.uiInput?.value,
|
main_qs: this.sharedFilterInputGroupMain?.uiInput?.value,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -281,11 +342,19 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
}
|
}
|
||||||
|
|
||||||
private _addScrollIndexToCache(index: number): void {
|
private _addScrollIndexToCache(index: number): void {
|
||||||
this.cache.set<number>({ processId: this.getProcessId(), token: this.SCROLL_INDEX_TOKEN }, index);
|
this.cache.set<number>(
|
||||||
|
{ processId: this.getProcessId(), token: this.SCROLL_INDEX_TOKEN },
|
||||||
|
index,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _getScrollIndexFromCache(): Promise<number> {
|
private async _getScrollIndexFromCache(): Promise<number> {
|
||||||
return (await this.cache.get<number>({ processId: this.getProcessId(), token: this.SCROLL_INDEX_TOKEN })) ?? 0;
|
return (
|
||||||
|
(await this.cache.get<number>({
|
||||||
|
processId: this.getProcessId(),
|
||||||
|
token: this.SCROLL_INDEX_TOKEN,
|
||||||
|
})) ?? 0
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async scrollToItem(i?: number) {
|
async scrollToItem(i?: number) {
|
||||||
@@ -303,12 +372,14 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
}
|
}
|
||||||
|
|
||||||
scrolledIndexChange(index: number) {
|
scrolledIndexChange(index: number) {
|
||||||
const completeListFetched = this.searchService.items.length === this.searchService.hits;
|
const completeListFetched =
|
||||||
|
this.searchService.items.length === this.searchService.hits;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
index &&
|
index &&
|
||||||
!completeListFetched &&
|
!completeListFetched &&
|
||||||
this.searchService.items.length <= this.scrollContainer?.getRenderedRange()?.end
|
this.searchService.items.length <=
|
||||||
|
this.scrollContainer?.getRenderedRange()?.end
|
||||||
) {
|
) {
|
||||||
this.search({ clear: false });
|
this.search({ clear: false });
|
||||||
}
|
}
|
||||||
@@ -326,7 +397,10 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
this.searchService.filter.getQueryParams(),
|
this.searchService.filter.getQueryParams(),
|
||||||
this.searchService?.selectedBranch?.id,
|
this.searchService?.selectedBranch?.id,
|
||||||
);
|
);
|
||||||
await this.updateBreadcrumbs(this.searchService.processId, this.searchService.filter.getQueryParams());
|
await this.updateBreadcrumbs(
|
||||||
|
this.searchService.processId,
|
||||||
|
this.searchService.filter.getQueryParams(),
|
||||||
|
);
|
||||||
|
|
||||||
this.unselectAll();
|
this.unselectAll();
|
||||||
}
|
}
|
||||||
@@ -345,7 +419,15 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
return clean;
|
return clean;
|
||||||
}
|
}
|
||||||
|
|
||||||
search({ filter, clear = false, orderBy = false }: { filter?: Filter; clear?: boolean; orderBy?: boolean }) {
|
search({
|
||||||
|
filter,
|
||||||
|
clear = false,
|
||||||
|
orderBy = false,
|
||||||
|
}: {
|
||||||
|
filter?: Filter;
|
||||||
|
clear?: boolean;
|
||||||
|
orderBy?: boolean;
|
||||||
|
}) {
|
||||||
if (filter) {
|
if (filter) {
|
||||||
this.sharedFilterInputGroupMain.cancelAutocomplete();
|
this.sharedFilterInputGroupMain.cancelAutocomplete();
|
||||||
}
|
}
|
||||||
@@ -354,19 +436,28 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
}
|
}
|
||||||
|
|
||||||
getDetailsPath(itemId: number) {
|
getDetailsPath(itemId: number) {
|
||||||
return this._navigationService.getArticleDetailsPath({ processId: this.application.activatedProcessId, itemId })
|
return this._navigationService.getArticleDetailsPath({
|
||||||
.path;
|
processId: this.application.activatedProcessId,
|
||||||
|
itemId,
|
||||||
|
}).path;
|
||||||
}
|
}
|
||||||
|
|
||||||
async updateBreadcrumbs(
|
async updateBreadcrumbs(
|
||||||
processId: number = this.searchService.processId,
|
processId: number = this.searchService.processId,
|
||||||
queryParams: Record<string, string> = this.searchService.filter?.getQueryParams(),
|
queryParams: Record<
|
||||||
|
string,
|
||||||
|
string
|
||||||
|
> = this.searchService.filter?.getQueryParams(),
|
||||||
) {
|
) {
|
||||||
const selected_item_ids = this.searchService?.selectedItemIds?.toString();
|
const selected_item_ids = this.searchService?.selectedItemIds?.toString();
|
||||||
|
|
||||||
if (queryParams) {
|
if (queryParams) {
|
||||||
const crumbs = await this.breadcrumb
|
const crumbs = await this.breadcrumb
|
||||||
.getBreadcrumbsByKeyAndTags$(processId, ['catalog', 'filter', 'results'])
|
.getBreadcrumbsByKeyAndTags$(processId, [
|
||||||
|
'catalog',
|
||||||
|
'filter',
|
||||||
|
'results',
|
||||||
|
])
|
||||||
.pipe(first())
|
.pipe(first())
|
||||||
.toPromise();
|
.toPromise();
|
||||||
|
|
||||||
@@ -382,13 +473,18 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async createBreadcrumb(processId: number, queryParams: Record<string, string>) {
|
async createBreadcrumb(
|
||||||
|
processId: number,
|
||||||
|
queryParams: Record<string, string>,
|
||||||
|
) {
|
||||||
if (queryParams) {
|
if (queryParams) {
|
||||||
const name = queryParams.main_qs ? queryParams.main_qs : 'Alle Artikel';
|
const name = queryParams.main_qs ? queryParams.main_qs : 'Alle Artikel';
|
||||||
await this.breadcrumb.addBreadcrumbIfNotExists({
|
await this.breadcrumb.addBreadcrumbIfNotExists({
|
||||||
key: processId,
|
key: processId,
|
||||||
name,
|
name,
|
||||||
path: this._navigationService.getArticleSearchResultsPath(processId, { queryParams }).path,
|
path: this._navigationService.getArticleSearchResultsPath(processId, {
|
||||||
|
queryParams,
|
||||||
|
}).path,
|
||||||
params: queryParams,
|
params: queryParams,
|
||||||
section: 'customer',
|
section: 'customer',
|
||||||
tags: ['catalog', 'filter', 'results'],
|
tags: ['catalog', 'filter', 'results'],
|
||||||
@@ -405,8 +501,16 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
crumbs?.forEach((crumb) => this.breadcrumb.removeBreadcrumb(crumb.id));
|
crumbs?.forEach((crumb) => this.breadcrumb.removeBreadcrumb(crumb.id));
|
||||||
}
|
}
|
||||||
|
|
||||||
cacheCurrentData(processId: number, params: Record<string, string> = {}, branchId: number) {
|
cacheCurrentData(
|
||||||
const qparams = this.cleanupQueryParams({ ...params, processId: String(processId), branchId: String(branchId) });
|
processId: number,
|
||||||
|
params: Record<string, string> = {},
|
||||||
|
branchId: number,
|
||||||
|
) {
|
||||||
|
const qparams = this.cleanupQueryParams({
|
||||||
|
...params,
|
||||||
|
processId: String(processId),
|
||||||
|
branchId: String(branchId),
|
||||||
|
});
|
||||||
|
|
||||||
this.cache.set(qparams, {
|
this.cache.set(qparams, {
|
||||||
items: this.searchService.items,
|
items: this.searchService.items,
|
||||||
@@ -414,8 +518,16 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async getCachedData(processId: number, params: Record<string, string> = {}, branchId: number) {
|
async getCachedData(
|
||||||
const qparams = this.cleanupQueryParams({ ...params, processId: String(processId), branchId: String(branchId) });
|
processId: number,
|
||||||
|
params: Record<string, string> = {},
|
||||||
|
branchId: number,
|
||||||
|
) {
|
||||||
|
const qparams = this.cleanupQueryParams({
|
||||||
|
...params,
|
||||||
|
processId: String(processId),
|
||||||
|
branchId: String(branchId),
|
||||||
|
});
|
||||||
const cacheData = await this.cache.get<{
|
const cacheData = await this.cache.get<{
|
||||||
items: ItemDTO[];
|
items: ItemDTO[];
|
||||||
hits: number;
|
hits: number;
|
||||||
@@ -452,7 +564,12 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
}
|
}
|
||||||
|
|
||||||
unselectAll() {
|
unselectAll() {
|
||||||
this.listItems.forEach((listItem) => this.searchService.setSelected({ selected: false, itemId: listItem.item.id }));
|
this.listItems.forEach((listItem) =>
|
||||||
|
this.searchService.setSelected({
|
||||||
|
selected: false,
|
||||||
|
itemId: listItem.item.id,
|
||||||
|
}),
|
||||||
|
);
|
||||||
this.searchService.patchState({ selectedItemIds: [] });
|
this.searchService.patchState({ selectedItemIds: [] });
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -474,39 +591,46 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
availability: {
|
availability: {
|
||||||
availabilityType: item?.catalogAvailability?.status,
|
availabilityType: item?.catalogAvailability?.status,
|
||||||
price: item?.catalogAvailability?.price,
|
price: item?.catalogAvailability?.price,
|
||||||
supplierProductNumber: item?.ids?.dig ? String(item?.ids?.dig) : item?.product?.supplierProductNumber,
|
supplierProductNumber: item?.ids?.dig
|
||||||
|
? String(item?.ids?.dig)
|
||||||
|
: item?.product?.supplierProductNumber,
|
||||||
},
|
},
|
||||||
product: {
|
product: {
|
||||||
catalogProductNumber: String(item?.id),
|
catalogProductNumber: String(item?.id),
|
||||||
...item?.product,
|
...item?.product,
|
||||||
},
|
},
|
||||||
itemType: item?.type,
|
itemType: item?.type,
|
||||||
promotion: { points: item?.promoPoints },
|
promotion: { value: item?.promoPoints },
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
async addItemsToCart(item?: ItemDTO) {
|
async addItemsToCart(item?: ItemDTO) {
|
||||||
const selectedItems = !item ? await this.selectedItems$.pipe(first()).toPromise() : [item];
|
const selectedItems = !item
|
||||||
|
? await this.selectedItems$.pipe(first()).toPromise()
|
||||||
|
: [item];
|
||||||
const items: AddToShoppingCartDTO[] = [];
|
const items: AddToShoppingCartDTO[] = [];
|
||||||
|
|
||||||
const canAddItemsPayload = [];
|
const canAddItemsPayload = [];
|
||||||
|
|
||||||
for (const item of selectedItems) {
|
for (const item of selectedItems) {
|
||||||
const isDownload = item?.product?.format === 'EB' || item?.product?.format === 'DL';
|
const isDownload =
|
||||||
|
item?.product?.format === 'EB' || item?.product?.format === 'DL';
|
||||||
const price = item?.catalogAvailability?.price;
|
const price = item?.catalogAvailability?.price;
|
||||||
const shoppingCartItem: AddToShoppingCartDTO = {
|
const shoppingCartItem: AddToShoppingCartDTO = {
|
||||||
quantity: 1,
|
quantity: 1,
|
||||||
availability: {
|
availability: {
|
||||||
availabilityType: item?.catalogAvailability?.status,
|
availabilityType: item?.catalogAvailability?.status,
|
||||||
price,
|
price,
|
||||||
supplierProductNumber: item?.ids?.dig ? String(item.ids?.dig) : item?.product?.supplierProductNumber,
|
supplierProductNumber: item?.ids?.dig
|
||||||
|
? String(item.ids?.dig)
|
||||||
|
: item?.product?.supplierProductNumber,
|
||||||
},
|
},
|
||||||
product: {
|
product: {
|
||||||
catalogProductNumber: String(item?.id),
|
catalogProductNumber: String(item?.id),
|
||||||
...item?.product,
|
...item?.product,
|
||||||
},
|
},
|
||||||
itemType: item.type,
|
itemType: item.type,
|
||||||
promotion: { points: item?.promoPoints },
|
promotion: { value: item?.promoPoints },
|
||||||
};
|
};
|
||||||
|
|
||||||
if (isDownload) {
|
if (isDownload) {
|
||||||
@@ -519,9 +643,14 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
.getDownloadAvailability({ item: downloadItem })
|
.getDownloadAvailability({ item: downloadItem })
|
||||||
.pipe(first())
|
.pipe(first())
|
||||||
.toPromise();
|
.toPromise();
|
||||||
shoppingCartItem.destination = { data: { target: 16, logistician: downloadAvailability?.logistician } };
|
shoppingCartItem.destination = {
|
||||||
|
data: { target: 16, logistician: downloadAvailability?.logistician },
|
||||||
|
};
|
||||||
if (downloadAvailability) {
|
if (downloadAvailability) {
|
||||||
shoppingCartItem.availability = { ...shoppingCartItem.availability, ...downloadAvailability };
|
shoppingCartItem.availability = {
|
||||||
|
...shoppingCartItem.availability,
|
||||||
|
...downloadAvailability,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
canAddItemsPayload.push({
|
canAddItemsPayload.push({
|
||||||
availabilities: [{ ...item.catalogAvailability, format: 'DL' }],
|
availabilities: [{ ...item.catalogAvailability, format: 'DL' }],
|
||||||
@@ -546,7 +675,10 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
if (response) {
|
if (response) {
|
||||||
const cantAdd = (response as any)?.filter((r) => r.status >= 2);
|
const cantAdd = (response as any)?.filter((r) => r.status >= 2);
|
||||||
if (cantAdd?.length > 0) {
|
if (cantAdd?.length > 0) {
|
||||||
this.openModal({ itemLength: cantAdd.length, canAddMessage: cantAdd[0].message });
|
this.openModal({
|
||||||
|
itemLength: cantAdd.length,
|
||||||
|
canAddMessage: cantAdd[0].message,
|
||||||
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -571,7 +703,15 @@ export class ArticleSearchResultsComponent implements OnInit, OnDestroy, AfterVi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
openModal({ itemLength, canAddMessage, error }: { itemLength: number; canAddMessage?: string; error?: Error }) {
|
openModal({
|
||||||
|
itemLength,
|
||||||
|
canAddMessage,
|
||||||
|
error,
|
||||||
|
}: {
|
||||||
|
itemLength: number;
|
||||||
|
canAddMessage?: string;
|
||||||
|
error?: Error;
|
||||||
|
}) {
|
||||||
const modal = this._uiModal.open({
|
const modal = this._uiModal.open({
|
||||||
title:
|
title:
|
||||||
!error && !canAddMessage
|
!error && !canAddMessage
|
||||||
|
|||||||
@@ -114,15 +114,21 @@ export class CheckoutDummyStore extends ComponentStore<CheckoutDummyState> {
|
|||||||
|
|
||||||
readonly processId$ = this._application.activatedProcessId$;
|
readonly processId$ = this._application.activatedProcessId$;
|
||||||
|
|
||||||
readonly customer$ = this.processId$.pipe(switchMap((processId) => this._checkoutService.getBuyer({ processId })));
|
readonly customer$ = this.processId$.pipe(
|
||||||
|
switchMap((processId) => this._checkoutService.getBuyer({ processId })),
|
||||||
|
);
|
||||||
|
|
||||||
readonly customerFeatures$ = this.processId$.pipe(
|
readonly customerFeatures$ = this.processId$.pipe(
|
||||||
switchMap((processId) => this._checkoutService.getCustomerFeatures({ processId })),
|
switchMap((processId) =>
|
||||||
|
this._checkoutService.getCustomerFeatures({ processId }),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
readonly customerFilter$ = this.customerFeatures$.pipe(
|
readonly customerFilter$ = this.customerFeatures$.pipe(
|
||||||
withLatestFrom(this.processId$),
|
withLatestFrom(this.processId$),
|
||||||
switchMap(([customerFeatures, processId]) => this._checkoutService.canSetCustomer({ processId, customerFeatures })),
|
switchMap(([customerFeatures, processId]) =>
|
||||||
|
this._checkoutService.canSetCustomer({ processId, customerFeatures }),
|
||||||
|
),
|
||||||
map((res) => res.filter),
|
map((res) => res.filter),
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -169,7 +175,11 @@ export class CheckoutDummyStore extends ComponentStore<CheckoutDummyState> {
|
|||||||
tapResponse(
|
tapResponse(
|
||||||
(res) => {
|
(res) => {
|
||||||
const item = res.result[0];
|
const item = res.result[0];
|
||||||
if (!!item && item?.product?.format !== 'EB' && item?.product?.format !== 'DL') {
|
if (
|
||||||
|
!!item &&
|
||||||
|
item?.product?.format !== 'EB' &&
|
||||||
|
item?.product?.format !== 'DL'
|
||||||
|
) {
|
||||||
this.patchState({
|
this.patchState({
|
||||||
item: res.result[0],
|
item: res.result[0],
|
||||||
message: '',
|
message: '',
|
||||||
@@ -229,12 +239,22 @@ export class CheckoutDummyStore extends ComponentStore<CheckoutDummyState> {
|
|||||||
updateCart = this.effect((cb$: Observable<Function>) =>
|
updateCart = this.effect((cb$: Observable<Function>) =>
|
||||||
cb$.pipe(
|
cb$.pipe(
|
||||||
tap((_) => this.patchState({ fetching: true })),
|
tap((_) => this.patchState({ fetching: true })),
|
||||||
withLatestFrom(this.processId$, this.addToCartItem$, this.shoppingCartItemId$),
|
withLatestFrom(
|
||||||
|
this.processId$,
|
||||||
|
this.addToCartItem$,
|
||||||
|
this.shoppingCartItemId$,
|
||||||
|
),
|
||||||
switchMap(([cb, processId, newItem, shoppingCartItemId]) => {
|
switchMap(([cb, processId, newItem, shoppingCartItemId]) => {
|
||||||
const availability = newItem.availability;
|
const availability = newItem.availability;
|
||||||
const quantity = newItem.quantity;
|
const quantity = newItem.quantity;
|
||||||
const destination = newItem.destination;
|
const destination = newItem.destination;
|
||||||
return this.updateCartRequest({ processId, shoppingCartItemId, availability, quantity, destination }).pipe(
|
return this.updateCartRequest({
|
||||||
|
processId,
|
||||||
|
shoppingCartItemId,
|
||||||
|
availability,
|
||||||
|
quantity,
|
||||||
|
destination,
|
||||||
|
}).pipe(
|
||||||
tapResponse(
|
tapResponse(
|
||||||
(res) => {
|
(res) => {
|
||||||
this.patchState({
|
this.patchState({
|
||||||
@@ -270,7 +290,10 @@ export class CheckoutDummyStore extends ComponentStore<CheckoutDummyState> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
addToCartRequest(processId: number, newItem: AddToShoppingCartDTO) {
|
addToCartRequest(processId: number, newItem: AddToShoppingCartDTO) {
|
||||||
return this._checkoutService.addItemToShoppingCart({ processId, items: [newItem] });
|
return this._checkoutService.addItemToShoppingCart({
|
||||||
|
processId,
|
||||||
|
items: [newItem],
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
updateCartRequest({
|
updateCartRequest({
|
||||||
@@ -297,7 +320,11 @@ export class CheckoutDummyStore extends ComponentStore<CheckoutDummyState> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async createAddToCartItem(control: UntypedFormGroup, branch: BranchDTO, update?: boolean) {
|
async createAddToCartItem(
|
||||||
|
control: UntypedFormGroup,
|
||||||
|
branch: BranchDTO,
|
||||||
|
update?: boolean,
|
||||||
|
) {
|
||||||
let item: ItemDTO;
|
let item: ItemDTO;
|
||||||
const quantity = Number(control.get('quantity').value);
|
const quantity = Number(control.get('quantity').value);
|
||||||
const price = this._createPriceDTO(control);
|
const price = this._createPriceDTO(control);
|
||||||
@@ -305,7 +332,11 @@ export class CheckoutDummyStore extends ComponentStore<CheckoutDummyState> {
|
|||||||
// Check if item exists or ean inside the control changed in the meantime
|
// Check if item exists or ean inside the control changed in the meantime
|
||||||
if (!!this.item && this.item.product.ean === control.get('ean').value) {
|
if (!!this.item && this.item.product.ean === control.get('ean').value) {
|
||||||
item = this.item;
|
item = this.item;
|
||||||
promoPoints = await this._getPromoPoints({ itemId: item.id, quantity, price: price.value.value });
|
promoPoints = await this._getPromoPoints({
|
||||||
|
itemId: item.id,
|
||||||
|
quantity,
|
||||||
|
price: price.value.value,
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
item = undefined;
|
item = undefined;
|
||||||
}
|
}
|
||||||
@@ -316,21 +347,33 @@ export class CheckoutDummyStore extends ComponentStore<CheckoutDummyState> {
|
|||||||
quantity,
|
quantity,
|
||||||
availability,
|
availability,
|
||||||
product,
|
product,
|
||||||
promotion: item ? { points: promoPoints } : undefined,
|
promotion: item ? { value: promoPoints } : undefined,
|
||||||
destination: {
|
destination: {
|
||||||
data: { target: 1, targetBranch: { id: branch?.id } },
|
data: { target: 1, targetBranch: { id: branch?.id } },
|
||||||
},
|
},
|
||||||
itemType: this.item?.type ?? this.get((s) => s.shoppingCartItem)?.itemType,
|
itemType:
|
||||||
|
this.item?.type ?? this.get((s) => s.shoppingCartItem)?.itemType,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (update) {
|
if (update) {
|
||||||
const existingItem = this.get((s) => s.shoppingCartItem);
|
const existingItem = this.get((s) => s.shoppingCartItem);
|
||||||
this.patchState({ addToCartItem: newItem, shoppingCartItemId: existingItem?.id });
|
this.patchState({
|
||||||
|
addToCartItem: newItem,
|
||||||
|
shoppingCartItemId: existingItem?.id,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
this.patchState({ addToCartItem: newItem });
|
this.patchState({ addToCartItem: newItem });
|
||||||
}
|
}
|
||||||
|
|
||||||
private async _getPromoPoints({ itemId, quantity, price }: { itemId: number; quantity: number; price: number }) {
|
private async _getPromoPoints({
|
||||||
|
itemId,
|
||||||
|
quantity,
|
||||||
|
price,
|
||||||
|
}: {
|
||||||
|
itemId: number;
|
||||||
|
quantity: number;
|
||||||
|
price: number;
|
||||||
|
}) {
|
||||||
let points: number;
|
let points: number;
|
||||||
try {
|
try {
|
||||||
points = await this._catalogService
|
points = await this._catalogService
|
||||||
@@ -371,7 +414,13 @@ export class CheckoutDummyStore extends ComponentStore<CheckoutDummyState> {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private _createAvailabilityDTO({ price, control }: { price: PriceDTO; control: UntypedFormGroup }): AvailabilityDTO {
|
private _createAvailabilityDTO({
|
||||||
|
price,
|
||||||
|
control,
|
||||||
|
}: {
|
||||||
|
price: PriceDTO;
|
||||||
|
control: UntypedFormGroup;
|
||||||
|
}): AvailabilityDTO {
|
||||||
return {
|
return {
|
||||||
availabilityType: 1024,
|
availabilityType: 1024,
|
||||||
supplier: {
|
supplier: {
|
||||||
@@ -383,7 +432,13 @@ export class CheckoutDummyStore extends ComponentStore<CheckoutDummyState> {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private _createProductDTO({ item, control }: { item?: ItemDTO; control: UntypedFormGroup }): ProductDTO {
|
private _createProductDTO({
|
||||||
|
item,
|
||||||
|
control,
|
||||||
|
}: {
|
||||||
|
item?: ItemDTO;
|
||||||
|
control: UntypedFormGroup;
|
||||||
|
}): ProductDTO {
|
||||||
const formValues: Partial<ProductDTO> = {
|
const formValues: Partial<ProductDTO> = {
|
||||||
ean: control.get('ean').value,
|
ean: control.get('ean').value,
|
||||||
name: control.get('name').value,
|
name: control.get('name').value,
|
||||||
|
|||||||
@@ -31,8 +31,9 @@ const PARAMETER_CODEC = new ParameterCodec();
|
|||||||
export class BaseService {
|
export class BaseService {
|
||||||
constructor(
|
constructor(
|
||||||
protected config: CheckoutConfiguration,
|
protected config: CheckoutConfiguration,
|
||||||
protected http: HttpClient,
|
protected http: HttpClient
|
||||||
) {}
|
) {
|
||||||
|
}
|
||||||
|
|
||||||
private _rootUrl: string = '';
|
private _rootUrl: string = '';
|
||||||
|
|
||||||
@@ -56,7 +57,7 @@ export class BaseService {
|
|||||||
*/
|
*/
|
||||||
protected newParams(): HttpParams {
|
protected newParams(): HttpParams {
|
||||||
return new HttpParams({
|
return new HttpParams({
|
||||||
encoder: PARAMETER_CODEC,
|
encoder: PARAMETER_CODEC
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { Injectable } from '@angular/core';
|
|||||||
providedIn: 'root',
|
providedIn: 'root',
|
||||||
})
|
})
|
||||||
export class CheckoutConfiguration {
|
export class CheckoutConfiguration {
|
||||||
rootUrl: string = 'https://isa-test.paragon-data.net';
|
rootUrl: string = 'https://isa-test.paragon-data.net/checkout/v6';
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface CheckoutConfigurationInterface {
|
export interface CheckoutConfigurationInterface {
|
||||||
|
|||||||
@@ -131,8 +131,9 @@ export { PaymentType } from './models/payment-type';
|
|||||||
export { CountryTargetDTO } from './models/country-target-dto';
|
export { CountryTargetDTO } from './models/country-target-dto';
|
||||||
export { BranchTargetDTO } from './models/branch-target-dto';
|
export { BranchTargetDTO } from './models/branch-target-dto';
|
||||||
export { EntityDTOBaseOfShopDTOAndIShop } from './models/entity-dtobase-of-shop-dtoand-ishop';
|
export { EntityDTOBaseOfShopDTOAndIShop } from './models/entity-dtobase-of-shop-dtoand-ishop';
|
||||||
|
export { CampaignDTO } from './models/campaign-dto';
|
||||||
|
export { LoyaltyDTO } from './models/loyalty-dto';
|
||||||
export { PromotionDTO } from './models/promotion-dto';
|
export { PromotionDTO } from './models/promotion-dto';
|
||||||
export { EntityDTOBaseOfShoppingCartItemDTOAndIShoppingCartItem } from './models/entity-dtobase-of-shopping-cart-item-dtoand-ishopping-cart-item';
|
|
||||||
export { EntityDTOBaseOfCheckoutItemDTOAndICheckoutItem } from './models/entity-dtobase-of-checkout-item-dtoand-icheckout-item';
|
export { EntityDTOBaseOfCheckoutItemDTOAndICheckoutItem } from './models/entity-dtobase-of-checkout-item-dtoand-icheckout-item';
|
||||||
export { DisplayItemDTO } from './models/display-item-dto';
|
export { DisplayItemDTO } from './models/display-item-dto';
|
||||||
export { EntityDTOBaseOfCheckoutDeliveryDTOAndICheckoutDelivery } from './models/entity-dtobase-of-checkout-delivery-dtoand-icheckout-delivery';
|
export { EntityDTOBaseOfCheckoutDeliveryDTOAndICheckoutDelivery } from './models/entity-dtobase-of-checkout-delivery-dtoand-icheckout-delivery';
|
||||||
|
|||||||
@@ -1,14 +1,18 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { AvailabilityDTO } from './availability-dto';
|
import { AvailabilityDTO } from './availability-dto';
|
||||||
|
import { CampaignDTO } from './campaign-dto';
|
||||||
import { EntityDTOContainerOfDestinationDTO } from './entity-dtocontainer-of-destination-dto';
|
import { EntityDTOContainerOfDestinationDTO } from './entity-dtocontainer-of-destination-dto';
|
||||||
import { ItemType } from './item-type';
|
import { ItemType } from './item-type';
|
||||||
|
import { LoyaltyDTO } from './loyalty-dto';
|
||||||
import { ProductDTO } from './product-dto';
|
import { ProductDTO } from './product-dto';
|
||||||
import { PromotionDTO } from './promotion-dto';
|
import { PromotionDTO } from './promotion-dto';
|
||||||
import { Price } from './price';
|
import { Price } from './price';
|
||||||
export interface AddToShoppingCartDTO {
|
export interface AddToShoppingCartDTO {
|
||||||
availability?: AvailabilityDTO;
|
availability?: AvailabilityDTO;
|
||||||
|
campaign?: CampaignDTO;
|
||||||
destination?: EntityDTOContainerOfDestinationDTO;
|
destination?: EntityDTOContainerOfDestinationDTO;
|
||||||
itemType?: ItemType;
|
itemType?: ItemType;
|
||||||
|
loyalty?: LoyaltyDTO;
|
||||||
product?: ProductDTO;
|
product?: ProductDTO;
|
||||||
promotion?: PromotionDTO;
|
promotion?: PromotionDTO;
|
||||||
quantity: number;
|
quantity: number;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { TouchedBase } from './touched-base';
|
import { TouchedBase } from './touched-base';
|
||||||
import { GeoLocation } from './geo-location';
|
import { GeoLocation } from './geo-location';
|
||||||
export interface AddressDTO extends TouchedBase {
|
export interface AddressDTO extends TouchedBase{
|
||||||
apartment?: string;
|
apartment?: string;
|
||||||
careOf?: string;
|
careOf?: string;
|
||||||
city?: string;
|
city?: string;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { AddressDTO } from './address-dto';
|
|||||||
import { CommunicationDetailsDTO } from './communication-details-dto';
|
import { CommunicationDetailsDTO } from './communication-details-dto';
|
||||||
import { Gender } from './gender';
|
import { Gender } from './gender';
|
||||||
import { OrganisationDTO } from './organisation-dto';
|
import { OrganisationDTO } from './organisation-dto';
|
||||||
export interface AddresseeWithReferenceDTO extends EntityReferenceDTO {
|
export interface AddresseeWithReferenceDTO extends EntityReferenceDTO{
|
||||||
address?: AddressDTO;
|
address?: AddressDTO;
|
||||||
communicationDetails?: CommunicationDetailsDTO;
|
communicationDetails?: CommunicationDetailsDTO;
|
||||||
firstName?: string;
|
firstName?: string;
|
||||||
|
|||||||
@@ -1,43 +1,2 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
export type AllergeneType =
|
export type AllergeneType = 0 | 1 | 2 | 4 | 6 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 1536 | 2048 | 6144 | 10240 | 18432 | 34816 | 67584 | 133120 | 264192 | 526336 | 1048576 | 3145728 | 5242880 | 9437184 | 17825792 | 34603008 | 68157440 | 135266304 | 268435456 | 805306368 | 1342177280 | 2415919104 | 4563402752 | 8858370048 | 17448304640 | 34628173824 | 68987912192 | 137438953472;
|
||||||
| 0
|
|
||||||
| 1
|
|
||||||
| 2
|
|
||||||
| 4
|
|
||||||
| 6
|
|
||||||
| 8
|
|
||||||
| 16
|
|
||||||
| 32
|
|
||||||
| 64
|
|
||||||
| 128
|
|
||||||
| 256
|
|
||||||
| 512
|
|
||||||
| 1024
|
|
||||||
| 1536
|
|
||||||
| 2048
|
|
||||||
| 6144
|
|
||||||
| 10240
|
|
||||||
| 18432
|
|
||||||
| 34816
|
|
||||||
| 67584
|
|
||||||
| 133120
|
|
||||||
| 264192
|
|
||||||
| 526336
|
|
||||||
| 1048576
|
|
||||||
| 3145728
|
|
||||||
| 5242880
|
|
||||||
| 9437184
|
|
||||||
| 17825792
|
|
||||||
| 34603008
|
|
||||||
| 68157440
|
|
||||||
| 135266304
|
|
||||||
| 268435456
|
|
||||||
| 805306368
|
|
||||||
| 1342177280
|
|
||||||
| 2415919104
|
|
||||||
| 4563402752
|
|
||||||
| 8858370048
|
|
||||||
| 17448304640
|
|
||||||
| 34628173824
|
|
||||||
| 68987912192
|
|
||||||
| 137438953472;
|
|
||||||
@@ -6,7 +6,7 @@ import { EntityDTOContainerOfLogisticianDTO } from './entity-dtocontainer-of-log
|
|||||||
import { PriceDTO } from './price-dto';
|
import { PriceDTO } from './price-dto';
|
||||||
import { EntityDTOContainerOfShopItemDTO } from './entity-dtocontainer-of-shop-item-dto';
|
import { EntityDTOContainerOfShopItemDTO } from './entity-dtocontainer-of-shop-item-dto';
|
||||||
import { EntityDTOContainerOfSupplierDTO } from './entity-dtocontainer-of-supplier-dto';
|
import { EntityDTOContainerOfSupplierDTO } from './entity-dtocontainer-of-supplier-dto';
|
||||||
export interface AvailabilityDTO extends TouchedBase {
|
export interface AvailabilityDTO extends TouchedBase{
|
||||||
availabilityType?: AvailabilityType;
|
availabilityType?: AvailabilityType;
|
||||||
estimatedDelivery?: DateRangeDTO;
|
estimatedDelivery?: DateRangeDTO;
|
||||||
estimatedShippingDate?: string;
|
estimatedShippingDate?: string;
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
export type AvailabilityType = 0 | 1 | 2 | 32 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384;
|
export type AvailabilityType = 0 | 1 | 2 | 32 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
export type Avoirdupois = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096;
|
export type Avoirdupois = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096;
|
||||||
@@ -4,7 +4,7 @@ import { AddressDTO } from './address-dto';
|
|||||||
import { BranchType } from './branch-type';
|
import { BranchType } from './branch-type';
|
||||||
import { EntityDTOContainerOfLabelDTO } from './entity-dtocontainer-of-label-dto';
|
import { EntityDTOContainerOfLabelDTO } from './entity-dtocontainer-of-label-dto';
|
||||||
import { EntityDTOContainerOfBranchDTO } from './entity-dtocontainer-of-branch-dto';
|
import { EntityDTOContainerOfBranchDTO } from './entity-dtocontainer-of-branch-dto';
|
||||||
export interface BranchDTO extends EntityDTOBaseOfBranchDTOAndIBranch {
|
export interface BranchDTO extends EntityDTOBaseOfBranchDTOAndIBranch{
|
||||||
address?: AddressDTO;
|
address?: AddressDTO;
|
||||||
branchNumber?: string;
|
branchNumber?: string;
|
||||||
branchType?: BranchType;
|
branchType?: BranchType;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import { BranchType } from './branch-type';
|
import { BranchType } from './branch-type';
|
||||||
export interface BranchQueryTokenDTO {
|
export interface BranchQueryTokenDTO {
|
||||||
branchType?: BranchType;
|
branchType?: BranchType;
|
||||||
input?: { [key: string]: string };
|
input?: {[key: string]: string};
|
||||||
labelKey?: string;
|
labelKey?: string;
|
||||||
skip?: number;
|
skip?: number;
|
||||||
take?: number;
|
take?: number;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { TouchedBase } from './touched-base';
|
import { TouchedBase } from './touched-base';
|
||||||
import { EntityDTOContainerOfBranchDTO } from './entity-dtocontainer-of-branch-dto';
|
import { EntityDTOContainerOfBranchDTO } from './entity-dtocontainer-of-branch-dto';
|
||||||
export interface BranchTargetDTO extends TouchedBase {
|
export interface BranchTargetDTO extends TouchedBase{
|
||||||
isDefault?: string;
|
isDefault?: string;
|
||||||
start?: string;
|
start?: string;
|
||||||
stop?: string;
|
stop?: string;
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
export type BranchType = 0 | 1 | 2 | 4 | 8 | 16;
|
export type BranchType = 0 | 1 | 2 | 4 | 8 | 16;
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
import { AddresseeWithReferenceDTO } from './addressee-with-reference-dto';
|
import { AddresseeWithReferenceDTO } from './addressee-with-reference-dto';
|
||||||
import { BuyerStatus } from './buyer-status';
|
import { BuyerStatus } from './buyer-status';
|
||||||
import { BuyerType } from './buyer-type';
|
import { BuyerType } from './buyer-type';
|
||||||
export interface BuyerDTO extends AddresseeWithReferenceDTO {
|
export interface BuyerDTO extends AddresseeWithReferenceDTO{
|
||||||
buyerNumber?: string;
|
buyerNumber?: string;
|
||||||
buyerStatus?: BuyerStatus;
|
buyerStatus?: BuyerStatus;
|
||||||
buyerType?: BuyerType;
|
buyerType?: BuyerType;
|
||||||
|
|||||||
@@ -4,8 +4,9 @@
|
|||||||
* Input
|
* Input
|
||||||
*/
|
*/
|
||||||
export interface BuyerPayload {
|
export interface BuyerPayload {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Kundenattribute
|
* Kundenattribute
|
||||||
*/
|
*/
|
||||||
customerFeatures?: { [key: string]: string };
|
customerFeatures?: {[key: string]: string};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { QueryTokenDTO } from './query-token-dto';
|
|||||||
* Output
|
* Output
|
||||||
*/
|
*/
|
||||||
export interface BuyerResult {
|
export interface BuyerResult {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Kundenattribute
|
* Kundenattribute
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
export type BuyerStatus = 0 | 1 | 2 | 4 | 8 | 16;
|
export type BuyerStatus = 0 | 1 | 2 | 4 | 8 | 16;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
export type BuyerType = 0 | 1 | 2 | 4 | 8 | 16;
|
export type BuyerType = 0 | 1 | 2 | 4 | 8 | 16;
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
/* tslint:disable */
|
||||||
|
import { TouchedBase } from './touched-base';
|
||||||
|
export interface CampaignDTO extends TouchedBase{
|
||||||
|
code?: string;
|
||||||
|
label?: string;
|
||||||
|
type?: string;
|
||||||
|
value?: number;
|
||||||
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
import { EntityDTOContainerOfCategoryDTO } from './entity-dtocontainer-of-category-dto';
|
import { EntityDTOContainerOfCategoryDTO } from './entity-dtocontainer-of-category-dto';
|
||||||
import { EntityDTOContainerOfTenantDTO } from './entity-dtocontainer-of-tenant-dto';
|
import { EntityDTOContainerOfTenantDTO } from './entity-dtocontainer-of-tenant-dto';
|
||||||
export interface CategoryDTO extends EntityDTOBase {
|
export interface CategoryDTO extends EntityDTOBase{
|
||||||
key?: string;
|
key?: string;
|
||||||
name?: string;
|
name?: string;
|
||||||
parent?: EntityDTOContainerOfCategoryDTO;
|
parent?: EntityDTOContainerOfCategoryDTO;
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import { PriceValueDTO } from './price-value-dto';
|
|||||||
import { DisplayItemDTO } from './display-item-dto';
|
import { DisplayItemDTO } from './display-item-dto';
|
||||||
import { EntityDTOContainerOfCheckoutItemDTO } from './entity-dtocontainer-of-checkout-item-dto';
|
import { EntityDTOContainerOfCheckoutItemDTO } from './entity-dtocontainer-of-checkout-item-dto';
|
||||||
import { TermsOfDeliveryDTO } from './terms-of-delivery-dto';
|
import { TermsOfDeliveryDTO } from './terms-of-delivery-dto';
|
||||||
export interface CheckoutDeliveryDTO extends EntityDTOBaseOfCheckoutDeliveryDTOAndICheckoutDelivery {
|
export interface CheckoutDeliveryDTO extends EntityDTOBaseOfCheckoutDeliveryDTOAndICheckoutDelivery{
|
||||||
checkout?: EntityDTOContainerOfCheckoutDTO;
|
checkout?: EntityDTOContainerOfCheckoutDTO;
|
||||||
destination?: EntityDTOContainerOfDestinationDTO;
|
destination?: EntityDTOContainerOfDestinationDTO;
|
||||||
discount?: PriceValueDTO;
|
discount?: PriceValueDTO;
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { EntityDTOContainerOfBranchDTO } from './entity-dtocontainer-of-branch-d
|
|||||||
import { PayerDTO } from './payer-dto';
|
import { PayerDTO } from './payer-dto';
|
||||||
import { PaymentDTO } from './payment-dto';
|
import { PaymentDTO } from './payment-dto';
|
||||||
import { UserAccountDTO } from './user-account-dto';
|
import { UserAccountDTO } from './user-account-dto';
|
||||||
export interface CheckoutDTO extends EntityDTOBaseOfCheckoutDTOAndICheckout {
|
export interface CheckoutDTO extends EntityDTOBaseOfCheckoutDTOAndICheckout{
|
||||||
agreements?: Array<KeyValueDTOOfStringAndString>;
|
agreements?: Array<KeyValueDTOOfStringAndString>;
|
||||||
availableShippingTargets?: Array<SelectionDTOOfShippingTarget>;
|
availableShippingTargets?: Array<SelectionDTOOfShippingTarget>;
|
||||||
buyer?: BuyerDTO;
|
buyer?: BuyerDTO;
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import { EntityDTOContainerOfShoppingCartItemDTO } from './entity-dtocontainer-o
|
|||||||
import { EntityDTOContainerOfCheckoutDTO } from './entity-dtocontainer-of-checkout-dto';
|
import { EntityDTOContainerOfCheckoutDTO } from './entity-dtocontainer-of-checkout-dto';
|
||||||
import { EntityDTOContainerOfCheckoutDeliveryDTO } from './entity-dtocontainer-of-checkout-delivery-dto';
|
import { EntityDTOContainerOfCheckoutDeliveryDTO } from './entity-dtocontainer-of-checkout-delivery-dto';
|
||||||
import { PriceValueDTO } from './price-value-dto';
|
import { PriceValueDTO } from './price-value-dto';
|
||||||
export interface CheckoutItemDTO extends EntityDTOBaseOfCheckoutItemDTOAndICheckoutItem {
|
export interface CheckoutItemDTO extends EntityDTOBaseOfCheckoutItemDTOAndICheckoutItem{
|
||||||
accessories?: Array<EntityDTOContainerOfShoppingCartItemDTO>;
|
accessories?: Array<EntityDTOContainerOfShoppingCartItemDTO>;
|
||||||
checkout?: EntityDTOContainerOfCheckoutDTO;
|
checkout?: EntityDTOContainerOfCheckoutDTO;
|
||||||
delivery?: EntityDTOContainerOfCheckoutDeliveryDTO;
|
delivery?: EntityDTOContainerOfCheckoutDeliveryDTO;
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
export type CheckoutStep = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096;
|
export type CheckoutStep = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096;
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { TouchedBase } from './touched-base';
|
import { TouchedBase } from './touched-base';
|
||||||
export interface CommunicationDetailsDTO extends TouchedBase {
|
export interface CommunicationDetailsDTO extends TouchedBase{
|
||||||
email?: string;
|
email?: string;
|
||||||
fax?: string;
|
fax?: string;
|
||||||
mobile?: string;
|
mobile?: string;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import { EntityDTOBaseOfCompanyDTOAndICompany } from './entity-dtobase-of-company-dtoand-icompany';
|
import { EntityDTOBaseOfCompanyDTOAndICompany } from './entity-dtobase-of-company-dtoand-icompany';
|
||||||
import { AddressDTO } from './address-dto';
|
import { AddressDTO } from './address-dto';
|
||||||
import { EntityDTOContainerOfCompanyDTO } from './entity-dtocontainer-of-company-dto';
|
import { EntityDTOContainerOfCompanyDTO } from './entity-dtocontainer-of-company-dto';
|
||||||
export interface CompanyDTO extends EntityDTOBaseOfCompanyDTOAndICompany {
|
export interface CompanyDTO extends EntityDTOBaseOfCompanyDTOAndICompany{
|
||||||
address?: AddressDTO;
|
address?: AddressDTO;
|
||||||
companyNumber?: string;
|
companyNumber?: string;
|
||||||
costUnit?: string;
|
costUnit?: string;
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
export type ComponentItemDisplayType = 0 | 1 | 2;
|
export type ComponentItemDisplayType = 0 | 1 | 2;
|
||||||
@@ -4,7 +4,7 @@ import { EntityDTOContainerOfCategoryDTO } from './entity-dtocontainer-of-catego
|
|||||||
import { ComponentItemDisplayType } from './component-item-display-type';
|
import { ComponentItemDisplayType } from './component-item-display-type';
|
||||||
import { EntityDTOContainerOfItemDTO } from './entity-dtocontainer-of-item-dto';
|
import { EntityDTOContainerOfItemDTO } from './entity-dtocontainer-of-item-dto';
|
||||||
import { QuantityUnitType } from './quantity-unit-type';
|
import { QuantityUnitType } from './quantity-unit-type';
|
||||||
export interface ComponentItemDTO extends TouchedBase {
|
export interface ComponentItemDTO extends TouchedBase{
|
||||||
category?: EntityDTOContainerOfCategoryDTO;
|
category?: EntityDTOContainerOfCategoryDTO;
|
||||||
description?: string;
|
description?: string;
|
||||||
displayType?: ComponentItemDisplayType;
|
displayType?: ComponentItemDisplayType;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { EntityDTOBaseOfComponentsDTOAndIComponents } from './entity-dtobase-of-
|
|||||||
import { ComponentItemDTO } from './component-item-dto';
|
import { ComponentItemDTO } from './component-item-dto';
|
||||||
import { QuantityUnitType } from './quantity-unit-type';
|
import { QuantityUnitType } from './quantity-unit-type';
|
||||||
import { SetType } from './set-type';
|
import { SetType } from './set-type';
|
||||||
export interface ComponentsDTO extends EntityDTOBaseOfComponentsDTOAndIComponents {
|
export interface ComponentsDTO extends EntityDTOBaseOfComponentsDTOAndIComponents{
|
||||||
items?: Array<ComponentItemDTO>;
|
items?: Array<ComponentItemDTO>;
|
||||||
overallQuantityMax?: number;
|
overallQuantityMax?: number;
|
||||||
overallQuantityMin?: number;
|
overallQuantityMin?: number;
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { EntityDTOBaseOfContributorDTOAndIContributor } from './entity-dtobase-o
|
|||||||
import { OrganisationNamesDTO } from './organisation-names-dto';
|
import { OrganisationNamesDTO } from './organisation-names-dto';
|
||||||
import { PersonNamesDTO } from './person-names-dto';
|
import { PersonNamesDTO } from './person-names-dto';
|
||||||
import { EntityDTOContainerOfTenantDTO } from './entity-dtocontainer-of-tenant-dto';
|
import { EntityDTOContainerOfTenantDTO } from './entity-dtocontainer-of-tenant-dto';
|
||||||
export interface ContributorDTO extends EntityDTOBaseOfContributorDTOAndIContributor {
|
export interface ContributorDTO extends EntityDTOBaseOfContributorDTOAndIContributor{
|
||||||
friendlyName?: string;
|
friendlyName?: string;
|
||||||
organisation?: OrganisationNamesDTO;
|
organisation?: OrganisationNamesDTO;
|
||||||
person?: PersonNamesDTO;
|
person?: PersonNamesDTO;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { TouchedBase } from './touched-base';
|
import { TouchedBase } from './touched-base';
|
||||||
import { EntityDTOContainerOfContributorDTO } from './entity-dtocontainer-of-contributor-dto';
|
import { EntityDTOContainerOfContributorDTO } from './entity-dtocontainer-of-contributor-dto';
|
||||||
export interface ContributorHelperDTO extends TouchedBase {
|
export interface ContributorHelperDTO extends TouchedBase{
|
||||||
contributor?: EntityDTOContainerOfContributorDTO;
|
contributor?: EntityDTOContainerOfContributorDTO;
|
||||||
type?: string;
|
type?: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBaseOfCountryDTOAndICountry } from './entity-dtobase-of-country-dtoand-icountry';
|
import { EntityDTOBaseOfCountryDTOAndICountry } from './entity-dtobase-of-country-dtoand-icountry';
|
||||||
export interface CountryDTO extends EntityDTOBaseOfCountryDTOAndICountry {
|
export interface CountryDTO extends EntityDTOBaseOfCountryDTOAndICountry{
|
||||||
isDefault?: string;
|
isDefault?: string;
|
||||||
isO3166_A_3?: string;
|
isO3166_A_3?: string;
|
||||||
name?: string;
|
name?: string;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { TouchedBase } from './touched-base';
|
import { TouchedBase } from './touched-base';
|
||||||
import { EntityDTOContainerOfCountryDTO } from './entity-dtocontainer-of-country-dto';
|
import { EntityDTOContainerOfCountryDTO } from './entity-dtocontainer-of-country-dto';
|
||||||
export interface CountryTargetDTO extends TouchedBase {
|
export interface CountryTargetDTO extends TouchedBase{
|
||||||
isDefault?: string;
|
isDefault?: string;
|
||||||
start?: string;
|
start?: string;
|
||||||
stop?: string;
|
stop?: string;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import { EntityDTOBaseOfCouponDTOAndICoupon } from './entity-dtobase-of-coupon-dtoand-icoupon';
|
import { EntityDTOBaseOfCouponDTOAndICoupon } from './entity-dtobase-of-coupon-dtoand-icoupon';
|
||||||
import { CouponType } from './coupon-type';
|
import { CouponType } from './coupon-type';
|
||||||
import { PriceValueDTO } from './price-value-dto';
|
import { PriceValueDTO } from './price-value-dto';
|
||||||
export interface CouponDTO extends EntityDTOBaseOfCouponDTOAndICoupon {
|
export interface CouponDTO extends EntityDTOBaseOfCouponDTOAndICoupon{
|
||||||
code?: string;
|
code?: string;
|
||||||
couponType: CouponType;
|
couponType: CouponType;
|
||||||
discount?: number;
|
discount?: number;
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
export type CouponType = 0 | 1 | 2 | 4 | 8;
|
export type CouponType = 0 | 1 | 2 | 4 | 8;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
export type CRUDA = 0 | 1 | 2 | 4 | 8 | 16;
|
export type CRUDA = 0 | 1 | 2 | 4 | 8 | 16;
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBaseOfCurrencyDTOAndICurrency } from './entity-dtobase-of-currency-dtoand-icurrency';
|
import { EntityDTOBaseOfCurrencyDTOAndICurrency } from './entity-dtobase-of-currency-dtoand-icurrency';
|
||||||
export interface CurrencyDTO extends EntityDTOBaseOfCurrencyDTOAndICurrency {
|
export interface CurrencyDTO extends EntityDTOBaseOfCurrencyDTOAndICurrency{
|
||||||
isO4217?: string;
|
isO4217?: string;
|
||||||
name?: string;
|
name?: string;
|
||||||
number?: number;
|
number?: number;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { TouchedBase } from './touched-base';
|
import { TouchedBase } from './touched-base';
|
||||||
export interface DateRangeDTO extends TouchedBase {
|
export interface DateRangeDTO extends TouchedBase{
|
||||||
start?: string;
|
start?: string;
|
||||||
stop?: string;
|
stop?: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,20 +1,2 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
export type DeclarableFoodAdditives =
|
export type DeclarableFoodAdditives = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128 | 256 | 512 | 1024 | 2048 | 4096 | 8192 | 16384 | 32768 | 65536;
|
||||||
| 0
|
|
||||||
| 1
|
|
||||||
| 2
|
|
||||||
| 4
|
|
||||||
| 8
|
|
||||||
| 16
|
|
||||||
| 32
|
|
||||||
| 64
|
|
||||||
| 128
|
|
||||||
| 256
|
|
||||||
| 512
|
|
||||||
| 1024
|
|
||||||
| 2048
|
|
||||||
| 4096
|
|
||||||
| 8192
|
|
||||||
| 16384
|
|
||||||
| 32768
|
|
||||||
| 65536;
|
|
||||||
@@ -5,7 +5,7 @@ import { EntityDTOContainerOfLogisticianDTO } from './entity-dtocontainer-of-log
|
|||||||
import { ShippingAddressDTO } from './shipping-address-dto';
|
import { ShippingAddressDTO } from './shipping-address-dto';
|
||||||
import { ShippingTarget } from './shipping-target';
|
import { ShippingTarget } from './shipping-target';
|
||||||
import { EntityDTOContainerOfBranchDTO } from './entity-dtocontainer-of-branch-dto';
|
import { EntityDTOContainerOfBranchDTO } from './entity-dtocontainer-of-branch-dto';
|
||||||
export interface DestinationDTO extends EntityDTOBaseOfDestinationDTOAndIDestination {
|
export interface DestinationDTO extends EntityDTOBaseOfDestinationDTOAndIDestination{
|
||||||
checkout?: EntityDTOContainerOfCheckoutDTO;
|
checkout?: EntityDTOContainerOfCheckoutDTO;
|
||||||
logistician?: EntityDTOContainerOfLogisticianDTO;
|
logistician?: EntityDTOContainerOfLogisticianDTO;
|
||||||
shippingAddress?: ShippingAddressDTO;
|
shippingAddress?: ShippingAddressDTO;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@
|
|||||||
* Output
|
* Output
|
||||||
*/
|
*/
|
||||||
export interface DestinationResult {
|
export interface DestinationResult {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Lieferziel kann dem Warenkorb hinzugefügt werden
|
* Lieferziel kann dem Warenkorb hinzugefügt werden
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
export type DialogContentType = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128;
|
export type DialogContentType = 0 | 1 | 2 | 4 | 8 | 16 | 32 | 64 | 128;
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
export type DialogSettings = 0 | 1 | 2 | 4;
|
export type DialogSettings = 0 | 1 | 2 | 4;
|
||||||
@@ -1,11 +1,15 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
|
import { CampaignDTO } from './campaign-dto';
|
||||||
|
import { LoyaltyDTO } from './loyalty-dto';
|
||||||
import { PriceDTO } from './price-dto';
|
import { PriceDTO } from './price-dto';
|
||||||
import { PromotionDTO } from './promotion-dto';
|
import { PromotionDTO } from './promotion-dto';
|
||||||
import { ShopItemDTO } from './shop-item-dto';
|
import { ShopItemDTO } from './shop-item-dto';
|
||||||
export interface DisplayItemDTO {
|
export interface DisplayItemDTO {
|
||||||
accessories?: Array<DisplayItemDTO>;
|
accessories?: Array<DisplayItemDTO>;
|
||||||
|
campaign?: CampaignDTO;
|
||||||
components?: Array<DisplayItemDTO>;
|
components?: Array<DisplayItemDTO>;
|
||||||
customProductName?: string;
|
customProductName?: string;
|
||||||
|
loyalty?: LoyaltyDTO;
|
||||||
price?: PriceDTO;
|
price?: PriceDTO;
|
||||||
promotion?: PromotionDTO;
|
promotion?: PromotionDTO;
|
||||||
quantity?: number;
|
quantity?: number;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
import { TouchedBase } from './touched-base';
|
import { TouchedBase } from './touched-base';
|
||||||
import { CRUDA } from './cruda';
|
import { CRUDA } from './cruda';
|
||||||
import { EntityStatus } from './entity-status';
|
import { EntityStatus } from './entity-status';
|
||||||
export interface EntityDTO extends TouchedBase {
|
export interface EntityDTO extends TouchedBase{
|
||||||
changed?: string;
|
changed?: string;
|
||||||
created?: string;
|
created?: string;
|
||||||
cruda?: CRUDA;
|
cruda?: CRUDA;
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfBranchDTOAndIBranch extends EntityDTOBase {}
|
export interface EntityDTOBaseOfBranchDTOAndIBranch extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfCheckoutDeliveryDTOAndICheckoutDelivery extends EntityDTOBase {}
|
export interface EntityDTOBaseOfCheckoutDeliveryDTOAndICheckoutDelivery extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfCheckoutDTOAndICheckout extends EntityDTOBase {}
|
export interface EntityDTOBaseOfCheckoutDTOAndICheckout extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfCheckoutItemDTOAndICheckoutItem extends EntityDTOBase {}
|
export interface EntityDTOBaseOfCheckoutItemDTOAndICheckoutItem extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfCompanyDTOAndICompany extends EntityDTOBase {}
|
export interface EntityDTOBaseOfCompanyDTOAndICompany extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfComponentsDTOAndIComponents extends EntityDTOBase {}
|
export interface EntityDTOBaseOfComponentsDTOAndIComponents extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfContributorDTOAndIContributor extends EntityDTOBase {}
|
export interface EntityDTOBaseOfContributorDTOAndIContributor extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfCountryDTOAndICountry extends EntityDTOBase {}
|
export interface EntityDTOBaseOfCountryDTOAndICountry extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfCouponDTOAndICoupon extends EntityDTOBase {}
|
export interface EntityDTOBaseOfCouponDTOAndICoupon extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfCurrencyDTOAndICurrency extends EntityDTOBase {}
|
export interface EntityDTOBaseOfCurrencyDTOAndICurrency extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfDestinationDTOAndIDestination extends EntityDTOBase {}
|
export interface EntityDTOBaseOfDestinationDTOAndIDestination extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfFileDTOAndIFile extends EntityDTOBase {}
|
export interface EntityDTOBaseOfFileDTOAndIFile extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfItemDTOAndIItem extends EntityDTOBase {}
|
export interface EntityDTOBaseOfItemDTOAndIItem extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfLabelDTOAndILabel extends EntityDTOBase {}
|
export interface EntityDTOBaseOfLabelDTOAndILabel extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfLogisticianDTOAndILogistician extends EntityDTOBase {}
|
export interface EntityDTOBaseOfLogisticianDTOAndILogistician extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfShopDTOAndIShop extends EntityDTOBase {}
|
export interface EntityDTOBaseOfShopDTOAndIShop extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfShopItemDTOAndIShopItem extends EntityDTOBase {}
|
export interface EntityDTOBaseOfShopItemDTOAndIShopItem extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfShoppingCartDTOAndIShoppingCart extends EntityDTOBase {}
|
export interface EntityDTOBaseOfShoppingCartDTOAndIShoppingCart extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +0,0 @@
|
|||||||
/* tslint:disable */
|
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
|
||||||
export interface EntityDTOBaseOfShoppingCartItemDTOAndIShoppingCartItem extends EntityDTOBase {}
|
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfSupplierDTOAndISupplier extends EntityDTOBase {}
|
export interface EntityDTOBaseOfSupplierDTOAndISupplier extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfTenantDTOAndITenant extends EntityDTOBase {}
|
export interface EntityDTOBaseOfTenantDTOAndITenant extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfTextDTOAndIText extends EntityDTOBase {}
|
export interface EntityDTOBaseOfTextDTOAndIText extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfVATDTOAndIVAT extends EntityDTOBase {}
|
export interface EntityDTOBaseOfVATDTOAndIVAT extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOBase } from './entity-dtobase';
|
import { EntityDTOBase } from './entity-dtobase';
|
||||||
export interface EntityDTOBaseOfVoucherDTOAndIVoucher extends EntityDTOBase {}
|
export interface EntityDTOBaseOfVoucherDTOAndIVoucher extends EntityDTOBase{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTO } from './entity-dto';
|
import { EntityDTO } from './entity-dto';
|
||||||
export interface EntityDTOBase extends EntityDTO {}
|
export interface EntityDTOBase extends EntityDTO{
|
||||||
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { BranchDTO } from './branch-dto';
|
import { BranchDTO } from './branch-dto';
|
||||||
export interface EntityDTOContainerOfBranchDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfBranchDTO extends EntityDTOReferenceContainer{
|
||||||
data?: BranchDTO;
|
data?: BranchDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { CategoryDTO } from './category-dto';
|
import { CategoryDTO } from './category-dto';
|
||||||
export interface EntityDTOContainerOfCategoryDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfCategoryDTO extends EntityDTOReferenceContainer{
|
||||||
data?: CategoryDTO;
|
data?: CategoryDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { CheckoutDeliveryDTO } from './checkout-delivery-dto';
|
import { CheckoutDeliveryDTO } from './checkout-delivery-dto';
|
||||||
export interface EntityDTOContainerOfCheckoutDeliveryDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfCheckoutDeliveryDTO extends EntityDTOReferenceContainer{
|
||||||
data?: CheckoutDeliveryDTO;
|
data?: CheckoutDeliveryDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { CheckoutDTO } from './checkout-dto';
|
import { CheckoutDTO } from './checkout-dto';
|
||||||
export interface EntityDTOContainerOfCheckoutDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfCheckoutDTO extends EntityDTOReferenceContainer{
|
||||||
data?: CheckoutDTO;
|
data?: CheckoutDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { CheckoutItemDTO } from './checkout-item-dto';
|
import { CheckoutItemDTO } from './checkout-item-dto';
|
||||||
export interface EntityDTOContainerOfCheckoutItemDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfCheckoutItemDTO extends EntityDTOReferenceContainer{
|
||||||
data?: CheckoutItemDTO;
|
data?: CheckoutItemDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { CompanyDTO } from './company-dto';
|
import { CompanyDTO } from './company-dto';
|
||||||
export interface EntityDTOContainerOfCompanyDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfCompanyDTO extends EntityDTOReferenceContainer{
|
||||||
data?: CompanyDTO;
|
data?: CompanyDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { ComponentsDTO } from './components-dto';
|
import { ComponentsDTO } from './components-dto';
|
||||||
export interface EntityDTOContainerOfComponentsDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfComponentsDTO extends EntityDTOReferenceContainer{
|
||||||
data?: ComponentsDTO;
|
data?: ComponentsDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { ContributorDTO } from './contributor-dto';
|
import { ContributorDTO } from './contributor-dto';
|
||||||
export interface EntityDTOContainerOfContributorDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfContributorDTO extends EntityDTOReferenceContainer{
|
||||||
data?: ContributorDTO;
|
data?: ContributorDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { CountryDTO } from './country-dto';
|
import { CountryDTO } from './country-dto';
|
||||||
export interface EntityDTOContainerOfCountryDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfCountryDTO extends EntityDTOReferenceContainer{
|
||||||
data?: CountryDTO;
|
data?: CountryDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { CouponDTO } from './coupon-dto';
|
import { CouponDTO } from './coupon-dto';
|
||||||
export interface EntityDTOContainerOfCouponDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfCouponDTO extends EntityDTOReferenceContainer{
|
||||||
data?: CouponDTO;
|
data?: CouponDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { CurrencyDTO } from './currency-dto';
|
import { CurrencyDTO } from './currency-dto';
|
||||||
export interface EntityDTOContainerOfCurrencyDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfCurrencyDTO extends EntityDTOReferenceContainer{
|
||||||
data?: CurrencyDTO;
|
data?: CurrencyDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { DestinationDTO } from './destination-dto';
|
import { DestinationDTO } from './destination-dto';
|
||||||
export interface EntityDTOContainerOfDestinationDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfDestinationDTO extends EntityDTOReferenceContainer{
|
||||||
data?: DestinationDTO;
|
data?: DestinationDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { FileDTO } from './file-dto';
|
import { FileDTO } from './file-dto';
|
||||||
export interface EntityDTOContainerOfFileDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfFileDTO extends EntityDTOReferenceContainer{
|
||||||
data?: FileDTO;
|
data?: FileDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { ItemDTO } from './item-dto';
|
import { ItemDTO } from './item-dto';
|
||||||
export interface EntityDTOContainerOfItemDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfItemDTO extends EntityDTOReferenceContainer{
|
||||||
data?: ItemDTO;
|
data?: ItemDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { LabelDTO } from './label-dto';
|
import { LabelDTO } from './label-dto';
|
||||||
export interface EntityDTOContainerOfLabelDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfLabelDTO extends EntityDTOReferenceContainer{
|
||||||
data?: LabelDTO;
|
data?: LabelDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { LogisticianDTO } from './logistician-dto';
|
import { LogisticianDTO } from './logistician-dto';
|
||||||
export interface EntityDTOContainerOfLogisticianDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfLogisticianDTO extends EntityDTOReferenceContainer{
|
||||||
data?: LogisticianDTO;
|
data?: LogisticianDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { ShopDTO } from './shop-dto';
|
import { ShopDTO } from './shop-dto';
|
||||||
export interface EntityDTOContainerOfShopDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfShopDTO extends EntityDTOReferenceContainer{
|
||||||
data?: ShopDTO;
|
data?: ShopDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { ShopItemDTO } from './shop-item-dto';
|
import { ShopItemDTO } from './shop-item-dto';
|
||||||
export interface EntityDTOContainerOfShopItemDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfShopItemDTO extends EntityDTOReferenceContainer{
|
||||||
data?: ShopItemDTO;
|
data?: ShopItemDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { ShoppingCartItemDTO } from './shopping-cart-item-dto';
|
import { ShoppingCartItemDTO } from './shopping-cart-item-dto';
|
||||||
export interface EntityDTOContainerOfShoppingCartItemDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfShoppingCartItemDTO extends EntityDTOReferenceContainer{
|
||||||
data?: ShoppingCartItemDTO;
|
data?: ShoppingCartItemDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { SupplierDTO } from './supplier-dto';
|
import { SupplierDTO } from './supplier-dto';
|
||||||
export interface EntityDTOContainerOfSupplierDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfSupplierDTO extends EntityDTOReferenceContainer{
|
||||||
data?: SupplierDTO;
|
data?: SupplierDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { TenantDTO } from './tenant-dto';
|
import { TenantDTO } from './tenant-dto';
|
||||||
export interface EntityDTOContainerOfTenantDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfTenantDTO extends EntityDTOReferenceContainer{
|
||||||
data?: TenantDTO;
|
data?: TenantDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { TextDTO } from './text-dto';
|
import { TextDTO } from './text-dto';
|
||||||
export interface EntityDTOContainerOfTextDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfTextDTO extends EntityDTOReferenceContainer{
|
||||||
data?: TextDTO;
|
data?: TextDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
import { VoucherDTO } from './voucher-dto';
|
import { VoucherDTO } from './voucher-dto';
|
||||||
export interface EntityDTOContainerOfVoucherDTO extends EntityDTOReferenceContainer {
|
export interface EntityDTOContainerOfVoucherDTO extends EntityDTOReferenceContainer{
|
||||||
data?: VoucherDTO;
|
data?: VoucherDTO;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { TouchedBase } from './touched-base';
|
import { TouchedBase } from './touched-base';
|
||||||
import { ExternalReferenceDTO } from './external-reference-dto';
|
import { ExternalReferenceDTO } from './external-reference-dto';
|
||||||
export interface EntityDTOReferenceContainer extends TouchedBase {
|
export interface EntityDTOReferenceContainer extends TouchedBase{
|
||||||
displayLabel?: string;
|
displayLabel?: string;
|
||||||
enabled?: boolean;
|
enabled?: boolean;
|
||||||
externalReference?: ExternalReferenceDTO;
|
externalReference?: ExternalReferenceDTO;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
import { TouchedBase } from './touched-base';
|
import { TouchedBase } from './touched-base';
|
||||||
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
import { EntityDTOReferenceContainer } from './entity-dtoreference-container';
|
||||||
export interface EntityReferenceDTO extends TouchedBase {
|
export interface EntityReferenceDTO extends TouchedBase{
|
||||||
pId?: string;
|
pId?: string;
|
||||||
reference?: EntityDTOReferenceContainer;
|
reference?: EntityDTOReferenceContainer;
|
||||||
source?: number;
|
source?: number;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user