#1182 Set Partial Qty on SetSupplier

This commit is contained in:
Sebastian
2020-10-26 18:14:15 +01:00
parent f72e9de980
commit c0a475bc44
3 changed files with 40 additions and 6 deletions

View File

@@ -15,6 +15,8 @@ import {
distinctUntilChanged,
shareReplay,
withLatestFrom,
take,
tap,
} from 'rxjs/operators';
import {
OrderItemProcessingStatusValue,
@@ -389,8 +391,21 @@ export class ShelfOrderDetailsComponent {
this.resetPartialPickup();
}
refreshView() {
this.orderItems$ = this.getOrderItems$();
async refreshView() {
const data = await race(
this.orderNumber$.pipe(
take(1),
tap((orderNumber) => {
this.detailsFacade.fetchOrderItemsByOrderNumber(orderNumber);
})
),
this.compartmentCode$.pipe(
take(1),
tap((compartmentCode) => {
this.detailsFacade.fetchOrderItemsByCompartmentCode(compartmentCode);
})
)
).toPromise();
}
async executeAction(
@@ -498,7 +513,7 @@ export class ShelfOrderDetailsComponent {
this.selectedForPartialPickup.set(orderItem.orderItemId, orderItem);
this.quantityForPartialPickup.set(
orderItem.orderItemId,
isNullOrUndefined(quantity) ? orderItem.overallQuantity : quantity
isNullOrUndefined(quantity) ? orderItem.quantity : quantity
);
}
}

View File

@@ -163,7 +163,7 @@ export class ShelfOrderDetailsService {
break;
case 268435456:
results = await this.setSupplier(items);
results = await this.setSupplier(items, data.quantityForPartialPickup);
break;
default:
@@ -238,9 +238,10 @@ export class ShelfOrderDetailsService {
setSupplier(
items: (OrderItemListItemDTO & {
receipts?: ReceiptDTO[];
})[]
})[],
quantityForPartialPickup: Map<number, number>
) {
return this.setStatus(items, 268435456);
return this.detailsFacade.setSupplier(items, quantityForPartialPickup);
}
async setDetermineSupplier(

View File

@@ -212,6 +212,24 @@ export class DetailsFacade {
return this.changeStatus(data);
}
setSupplier(items: OrderItemListItemDTO[], quantities?: Map<number, number>) {
const data = items.map(
({ orderId, orderItemId, orderItemSubsetId, quantity }) => ({
orderId,
orderItemId,
orderItemSubsetId,
data: {
processingStatus: 268435456,
quantity:
!!quantities && quantities.has(orderItemId)
? quantities.get(orderItemId)
: quantity,
} as StatusValues,
})
);
return this.changeStatus(data);
}
async arrived(items: OrderItemListItemDTO[], compartmentInfo: string) {
const payloads = items.map(
({ orderId, orderItemId, orderItemSubsetId }) => ({