mirror of
https://dev.azure.com/hugendubel/ISA/_git/ISA-Frontend
synced 2025-12-28 22:42:11 +01:00
Merge branch 'feature/splitscreen-pickup-shelf-design' of https://dev.azure.com/hugendubel/ISA/_git/ISA-Frontend into feature/splitscreen-pickup-shelf-design
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { Injectable, inject } from '@angular/core';
|
||||
import { OrderService } from '@swagger/oms';
|
||||
import { DBHOrderItemListItemDTO, OrderItemSubsetDTO, OrderService } from '@swagger/oms';
|
||||
|
||||
@Injectable({ providedIn: 'root' })
|
||||
export class PickupShelfService {
|
||||
@@ -8,4 +8,13 @@ export class PickupShelfService {
|
||||
getOrderByOrderId(orderId: number) {
|
||||
return this._orderService.OrderGetOrder(orderId);
|
||||
}
|
||||
|
||||
patchOrderItemSubset(item: DBHOrderItemListItemDTO, changes: Partial<OrderItemSubsetDTO>) {
|
||||
return this._orderService.OrderPatchOrderItemSubset({
|
||||
orderId: item.orderId,
|
||||
orderItemId: item.orderItemId,
|
||||
orderItemSubsetId: item.orderItemSubsetId,
|
||||
orderItemSubset: changes,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import { PickupShelfDetailsStore, PickupShelfStore } from './store';
|
||||
import { ActionHandlerService } from './services/action-handler.service';
|
||||
import { KeyValueDTOOfStringAndString, ReceiptDTO } from '@swagger/oms';
|
||||
import { DBHOrderItemListItemDTO, KeyValueDTOOfStringAndString, ReceiptDTO } from '@swagger/oms';
|
||||
import { OrderItemsContext } from '@domain/oms';
|
||||
import { Observable, of } from 'rxjs';
|
||||
|
||||
@@ -69,34 +69,4 @@ export abstract class PickupShelfDetailsBaseComponent {
|
||||
// .getCompletedTasks({ orderId: oi.orderId, orderItemId: oi.orderItemId, orderItemSubsetId: oi.orderItemSubsetId, take: 4, skip: 0 })
|
||||
// .pipe(catchError(() => NEVER))
|
||||
}
|
||||
|
||||
/**
|
||||
* Anmerkung
|
||||
* @param comment Neuer Kommentar
|
||||
*/
|
||||
updateComment(comment: string): void {
|
||||
// const res = await this._omsService
|
||||
// .patchComment({ orderId, orderItemId, orderItemSubsetId, specialComment: this.specialCommentControl.value ?? '' })
|
||||
// .pipe(first())
|
||||
// .toPromise();
|
||||
// updateOrderItem mit neuem Kommentar (auch in der Trefferliste)
|
||||
}
|
||||
|
||||
/**
|
||||
* vsl. Lieferdatum
|
||||
* @param data Datum
|
||||
*/
|
||||
updateEstimatedDeliveryDate(data: Date) {}
|
||||
|
||||
/**
|
||||
* Abholfrist
|
||||
* @param data Datum
|
||||
*/
|
||||
updatePickupDeadline(data: Date) {}
|
||||
|
||||
/**
|
||||
* Zurücklegen bis
|
||||
* @param data Datum
|
||||
*/
|
||||
updatePreferredPickUpDate(data: Date) {}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
(historyClick)="navigateToHistoryPage($event)"
|
||||
[order]="order$ | async"
|
||||
[notifications]="notifications$ | async"
|
||||
(specialCommentChanged)="updateSpecialComment($event)"
|
||||
(specialCommentChanged)="updateSpecialComment(item, $event)"
|
||||
></page-pickup-shelf-details-item>
|
||||
<page-pickup-shelf-details-tags *ngIf="showTagsComponent$ | async"></page-pickup-shelf-details-tags>
|
||||
</div>
|
||||
|
||||
@@ -156,22 +156,28 @@ export class PickupShelfOutDetailsComponent extends PickupShelfDetailsBaseCompon
|
||||
updateDate({ date, type }: { date: Date; type?: 'delivery' | 'pickup' | 'preferred' }) {
|
||||
switch (type) {
|
||||
case 'delivery':
|
||||
this.updateEstimatedDeliveryDate(date);
|
||||
this.store.orderItems.forEach((item) =>
|
||||
this.store.patchOrderItemSubset({ item, changes: { estimatedShippingDate: date.toISOString() } })
|
||||
);
|
||||
break;
|
||||
case 'pickup':
|
||||
this.updatePickupDeadline(date);
|
||||
this.store.orderItems.forEach((item) =>
|
||||
this.store.patchOrderItemSubset({ item, changes: { compartmentStop: date.toISOString() } })
|
||||
);
|
||||
break;
|
||||
case 'preferred':
|
||||
this.updatePreferredPickUpDate(date);
|
||||
this.store.orderItems.forEach((item) =>
|
||||
this.store.patchOrderItemSubset({ item, changes: { preferredPickUpDate: date.toISOString() } })
|
||||
);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
updateSpecialComment(comment: string) {
|
||||
this.updateComment(comment);
|
||||
// TODO: If isDesktop true => Update shelf list item with new comment if specialCommentChanged
|
||||
updateSpecialComment(item: DBHOrderItemListItemDTO, specialComment: string) {
|
||||
this.store.patchOrderItemSubset({ item, changes: { specialComment } }); //
|
||||
this.listStore.patchOrderItem({ orderItemSubsetId: item.orderItemSubsetId, changes: { specialComment } });
|
||||
}
|
||||
|
||||
async navigateToEditPage(orderItem: DBHOrderItemListItemDTO) {
|
||||
|
||||
@@ -6,10 +6,13 @@ import {
|
||||
ListResponseArgsOfDBHOrderItemListItemDTO,
|
||||
OrderDTO,
|
||||
OrderItemProcessingStatusValue,
|
||||
OrderItemSubsetDTO,
|
||||
ReceiptDTO,
|
||||
ReceiptType,
|
||||
ResponseArgsOfIEnumerableOfValueTupleOfLongAndReceiptTypeAndEntityDTOContainerOfReceiptDTO,
|
||||
ResponseArgsOfOrderDTO,
|
||||
ResponseArgsOfOrderItemDTO,
|
||||
ResponseArgsOfOrderItemSubsetDTO,
|
||||
} from '@swagger/oms';
|
||||
import { PickupShelfIOService, PickupShelfService } from '@domain/pickup-shelf';
|
||||
import { Injectable, inject } from '@angular/core';
|
||||
@@ -377,4 +380,45 @@ export class PickupShelfDetailsStore extends ComponentStore<PickupShelfDetailsSt
|
||||
this._modal.error('Fehler beim Laden des Kunden', err);
|
||||
this.patchState({ fetchingCustomer: false });
|
||||
};
|
||||
|
||||
patchOrderItemSubset = this.effect(
|
||||
(specialComment$: Observable<{ item: DBHOrderItemListItemDTO; changes: Partial<OrderItemSubsetDTO> }>) =>
|
||||
specialComment$.pipe(
|
||||
switchMap((data) =>
|
||||
this._pickupShelfService.patchOrderItemSubset(data.item, data.changes).pipe(
|
||||
tapResponse(
|
||||
(res) => this.patchOrderItemSubsetDone(data.item)(res),
|
||||
(err) => this.patchOrderItemSubsetError(err)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
private patchOrderItemSubsetDone = (item: DBHOrderItemListItemDTO) => (res: ResponseArgsOfOrderItemSubsetDTO) => {
|
||||
this.patchOrderItemSubsetInState({
|
||||
orderItemSubsetId: item.orderItemSubsetId,
|
||||
changes: {
|
||||
specialComment: res.result.specialComment,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
private patchOrderItemSubsetError = (err: any) => {
|
||||
this._modal.error('Fehler beim Speichern des Kommentars', err);
|
||||
};
|
||||
|
||||
patchOrderItemSubsetInState = this.updater(
|
||||
(state, { orderItemSubsetId, changes }: { orderItemSubsetId: number; changes: Partial<DBHOrderItemListItemDTO> }) => {
|
||||
return {
|
||||
...state,
|
||||
item: state.orderItems.map((i) => {
|
||||
if (i.orderItemSubsetId === orderItemSubsetId) {
|
||||
return { ...i, ...changes };
|
||||
}
|
||||
return i;
|
||||
}),
|
||||
};
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@@ -274,4 +274,10 @@ export class PickupShelfStore extends ComponentStore<PickupShelfState> implement
|
||||
this._modalService.error('Fehler beim Laden der Liste', err);
|
||||
this.patchState({ fetchingList: false });
|
||||
};
|
||||
|
||||
patchOrderItem = this.updater(
|
||||
(state, { orderItemSubsetId, changes }: { orderItemSubsetId: number; changes: Partial<DBHOrderItemListItemDTO> }) => {
|
||||
return { ...state, list: this.list.map((li) => (li.orderItemSubsetId === orderItemSubsetId ? { ...li, ...changes } : li)) };
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user