mirror of
https://dev.azure.com/hugendubel/ISA/_git/ISA-Frontend
synced 2025-12-28 22:42:11 +01:00
Merge tag '5022-Bezahlte-undunbezahlte-Ware-auf-der-seben-AHF-nummer' into develop
Hotfix 5022 - AHF Buchungh von Bezalten und nicht Bezahlten artikeln auf unterschiedliche Abholfächer 5022-Bezahlte-undunbezahlte-Ware-auf-der-seben-AHF-nummer
This commit is contained in:
@@ -13,11 +13,14 @@ export const selectFetchingOrderItems = (s: PickupShelfDetailsState) => s.fetchi
|
||||
export const selectDisplayedOrderItemProcessingStatus = (s: PickupShelfDetailsState) =>
|
||||
s.displayedOrderItemProcessingStatus;
|
||||
|
||||
export const selectDisplayedCompartmentCode = (s: PickupShelfDetailsState) => s.displayedCompartmentCode;
|
||||
export const selectDisplayedCompartmentCode = (s: PickupShelfDetailsState) =>
|
||||
s.displayedCompartmentCode;
|
||||
|
||||
export const selectDisplayedCompartmentInfo = (s: PickupShelfDetailsState) => s.displayedCompartmentInfo;
|
||||
export const selectDisplayedCompartmentInfo = (s: PickupShelfDetailsState) =>
|
||||
s.displayedCompartmentInfo;
|
||||
|
||||
export const selectDisplayedOrderItemSubsetId = (s: PickupShelfDetailsState) => s.displayedOrderItemSubsetId;
|
||||
export const selectDisplayedOrderItemSubsetId = (s: PickupShelfDetailsState) =>
|
||||
s.displayedOrderItemSubsetId;
|
||||
|
||||
export const selectOrderItems = (s: PickupShelfDetailsState): DBHOrderItemListItemDTO[] => {
|
||||
let items = selectOrderItemsRaw(s);
|
||||
@@ -87,14 +90,17 @@ export const selectFetchPartial = (s: PickupShelfDetailsState) => !!s.fetchParti
|
||||
|
||||
export const selectFetchReceipts = (s: PickupShelfDetailsState) => !!s.fetchingReceipts;
|
||||
|
||||
export const selectSelectedOrderItemIds = (s: PickupShelfDetailsState) => s.selectedOrderItemIds ?? [];
|
||||
export const selectSelectedOrderItemIds = (s: PickupShelfDetailsState) =>
|
||||
s.selectedOrderItemIds ?? [];
|
||||
|
||||
export const selectPreviousSelectedOrderItemSubsetId = (s: PickupShelfDetailsState) =>
|
||||
s.previousSelectedOrderItemSubsetId;
|
||||
|
||||
export const selectOrderItemSubsetLoading = (s: PickupShelfDetailsState) => s.orderItemSubsetLoading;
|
||||
export const selectOrderItemSubsetLoading = (s: PickupShelfDetailsState) =>
|
||||
s.orderItemSubsetLoading;
|
||||
|
||||
export const selectDisableHeaderStatusDropdown = (s: PickupShelfDetailsState) => s.disableHeaderStatusDropdown;
|
||||
export const selectDisableHeaderStatusDropdown = (s: PickupShelfDetailsState) =>
|
||||
s.disableHeaderStatusDropdown;
|
||||
|
||||
export const selectedOrderItems = (s: PickupShelfDetailsState) => {
|
||||
const selectedOrderItemIds = selectSelectedOrderItemIds(s);
|
||||
@@ -121,10 +127,28 @@ export const selectSelectedOrderItemQuantity = (s: PickupShelfDetailsState) => {
|
||||
return numMap;
|
||||
};
|
||||
|
||||
export const selectSelectedCompartmentInfo = (s: PickupShelfDetailsState) => s.selectedCompartmentInfo;
|
||||
export const selectSelectedCompartmentInfo = (s: PickupShelfDetailsState) =>
|
||||
s.selectedCompartmentInfo;
|
||||
|
||||
export const selectLatestCompartmentCodeAndInfoForOrder = (s: PickupShelfDetailsState) => {
|
||||
const coverItems = selectCoverOrderItems(s);
|
||||
let coverItems = selectCoverOrderItems(s);
|
||||
|
||||
const orderItems = selectedOrderItems(s);
|
||||
|
||||
/**
|
||||
* Ticket #5022 - AHF // Bezahlte und unbezahlte Ware werden auf dieselbe AHF-Nummer gebucht (Abholfach)
|
||||
* Fall 1: Wenn alle ausgewählte Order Items Bezahlt sind, darf man diese nur auf die AHF-Nummer buchen, die auch Bezahlt ist.
|
||||
* Fall 2: Wenn keines der ausgewählte Order Items Bezahlt sind, darf man nur auf die AHF-Nummer buchen, die auch nicht Bezahlt ist.
|
||||
*/
|
||||
const hasFeaturePaid = orderItems?.every((item) => item.features?.paid === 'Bezahlt');
|
||||
const hasSourceKulturPass = orderItems?.every(
|
||||
(item) => item.features?.orderSource === 'KulturPass',
|
||||
);
|
||||
if (hasFeaturePaid || hasSourceKulturPass) {
|
||||
coverItems = coverItems?.filter(
|
||||
(item) => item.features?.paid === 'Bezahlt' || item.features?.orderSource === 'KulturPass',
|
||||
);
|
||||
}
|
||||
|
||||
// Ticket #4397 - Sortieren und Filtern der angezeigten CoverItems nach latestCompartmentCode und Info
|
||||
const coverItem = coverItems
|
||||
@@ -148,14 +172,19 @@ export const selectLatestCompartmentCodeAndInfoForOrder = (s: PickupShelfDetails
|
||||
?.sort((a, b) => new Date(b.readyForPickUp).getTime() - new Date(a.readyForPickUp).getTime())
|
||||
?.find((_) => true);
|
||||
|
||||
return { latestCompartmentCode: coverItem?.compartmentCode, latestCompartmentInfo: coverItem?.compartmentInfo };
|
||||
return {
|
||||
latestCompartmentCode: coverItem?.compartmentCode,
|
||||
latestCompartmentInfo: coverItem?.compartmentInfo,
|
||||
};
|
||||
};
|
||||
|
||||
export const selectFetchingOrderItemSubsetTasks = (orderItemSubsetId: number) => (s: PickupShelfDetailsState) =>
|
||||
s.fetchingOrderItemSubsetTasks?.[orderItemSubsetId] ?? false;
|
||||
export const selectFetchingOrderItemSubsetTasks =
|
||||
(orderItemSubsetId: number) => (s: PickupShelfDetailsState) =>
|
||||
s.fetchingOrderItemSubsetTasks?.[orderItemSubsetId] ?? false;
|
||||
|
||||
export const selectOrderItemSubsetTasks = (orderItemSubsetId: number) => (s: PickupShelfDetailsState) =>
|
||||
s.orderItemSubsetTasks?.[orderItemSubsetId] ?? [];
|
||||
export const selectOrderItemSubsetTasks =
|
||||
(orderItemSubsetId: number) => (s: PickupShelfDetailsState) =>
|
||||
s.orderItemSubsetTasks?.[orderItemSubsetId] ?? [];
|
||||
|
||||
export const selectNotifications = (orderItemSubsetId: number) => (s: PickupShelfDetailsState) => {
|
||||
const tasks = selectOrderItemSubsetTasks(orderItemSubsetId)(s);
|
||||
@@ -174,7 +203,7 @@ export const selectNotifications = (orderItemSubsetId: number) => (s: PickupShel
|
||||
export const selectLatestNotificationDatesFor =
|
||||
(orderItemSubsetId: number, keys: string[]) => (s: PickupShelfDetailsState) => {
|
||||
const notifications = selectNotifications(orderItemSubsetId)(s);
|
||||
let dates: Array<{ type: string; dates: Date[] }> = [];
|
||||
const dates: Array<{ type: string; dates: Date[] }> = [];
|
||||
|
||||
for (const key of keys) {
|
||||
const notification = notifications?.[key] ?? [];
|
||||
@@ -193,17 +222,19 @@ export const selectLatestNotificationDatesFor =
|
||||
return dates;
|
||||
};
|
||||
|
||||
export const selectLatestEmailNotificationDates = (orderItemSubsetId: number) => (s: PickupShelfDetailsState) => {
|
||||
return selectLatestNotificationDatesFor(orderItemSubsetId, [
|
||||
'NOTIFICATION_EMAIL',
|
||||
'REMINDER_EMAIL',
|
||||
'ORDERCONFIRMATION_EMAIL',
|
||||
])(s);
|
||||
};
|
||||
export const selectLatestEmailNotificationDates =
|
||||
(orderItemSubsetId: number) => (s: PickupShelfDetailsState) => {
|
||||
return selectLatestNotificationDatesFor(orderItemSubsetId, [
|
||||
'NOTIFICATION_EMAIL',
|
||||
'REMINDER_EMAIL',
|
||||
'ORDERCONFIRMATION_EMAIL',
|
||||
])(s);
|
||||
};
|
||||
|
||||
export const selectLatestSmsNotificationDate2 = (orderItemSubsetId: number) => (s: PickupShelfDetailsState) => {
|
||||
return selectLatestNotificationDatesFor(orderItemSubsetId, ['NOTIFICATION_SMS'])(s);
|
||||
};
|
||||
export const selectLatestSmsNotificationDate2 =
|
||||
(orderItemSubsetId: number) => (s: PickupShelfDetailsState) => {
|
||||
return selectLatestNotificationDatesFor(orderItemSubsetId, ['NOTIFICATION_SMS'])(s);
|
||||
};
|
||||
|
||||
export const selectCanSelectAction = (s: PickupShelfDetailsState) => {
|
||||
const items = selectOrderItems(s);
|
||||
@@ -235,7 +266,10 @@ export const selectAddToPreviousCompartmentAction = (s: PickupShelfDetailsState)
|
||||
const latestCompartmentInfos = selectLatestCompartmentCodeAndInfoForOrder(s);
|
||||
const firstItem = items?.find((_) => true);
|
||||
|
||||
if ([16, 8192].includes(firstItem?.processingStatus) && latestCompartmentInfos?.latestCompartmentCode) {
|
||||
if (
|
||||
[16, 8192].includes(firstItem?.processingStatus) &&
|
||||
latestCompartmentInfos?.latestCompartmentCode
|
||||
) {
|
||||
// Zubuchen von Bezahlte und unbezahlte Bestellungen nicht möglich
|
||||
// Zubuchen bei Pay&Collect nur innerhalb der gleichen Bestellung möglich
|
||||
|
||||
@@ -280,7 +314,8 @@ export const selectCustomerNumber = (s: PickupShelfDetailsState) => {
|
||||
return order?.buyer?.buyerNumber;
|
||||
};
|
||||
|
||||
export const selectFetchingCoverOrderItems = (s: PickupShelfDetailsState) => s.fetchingCoverOrderItems ?? false;
|
||||
export const selectFetchingCoverOrderItems = (s: PickupShelfDetailsState) =>
|
||||
s.fetchingCoverOrderItems ?? false;
|
||||
|
||||
export const selectCoverOrderItems = (s: PickupShelfDetailsState) => {
|
||||
const coverItems = s.coverOrderItems ?? [];
|
||||
|
||||
Reference in New Issue
Block a user