From 983b7ae909e32fafbdf4efc520dd65ea0b26c2e8 Mon Sep 17 00:00:00 2001 From: dredgy <72254513+dredgy@users.noreply.github.com> Date: Mon, 25 Jul 2022 12:59:23 +1000 Subject: [PATCH] Void functions mostly working, pending testing. --- typescript/dredgepos.core.ts | 2 +- typescript/dredgepos.orderScreen.ts | 13 ++++++++----- typescript/types.ts | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/typescript/dredgepos.core.ts b/typescript/dredgepos.core.ts index 25fae76..8ba02b2 100644 --- a/typescript/dredgepos.core.ts +++ b/typescript/dredgepos.core.ts @@ -194,7 +194,7 @@ const pulseElement = (element: JQuery) => { .on('animationend', () => element.removeClass('pulse')) } -Array.prototype.collect = function(this: x[], func: (item: x) => x[]) { +Array.prototype.collect = function(this: x[], func: (item: x) => y[]) { return this.map(func).flat(1) } diff --git a/typescript/dredgepos.orderScreen.ts b/typescript/dredgepos.orderScreen.ts index 603f2bb..f81f0be 100644 --- a/typescript/dredgepos.orderScreen.ts +++ b/typescript/dredgepos.orderScreen.ts @@ -118,6 +118,7 @@ const goToNextPage = (e: JQuery.TriggeredEvent) => navigatePage(1, $(e.target)) const goToPrevPage = (e: JQuery.TriggeredEvent) => navigatePage(-1, $(e.target)) const setItemQty = (orderItem: orderItem, qty: number) => { + const instructionIds = getInstructionItems(orderItem.id).map(orderItem => orderItem.id) const newItems = qty > 0 ? OrderScreen.order_items.map(existingOrderItem => { if(existingOrderItem.id == orderItem.id){ @@ -125,13 +126,17 @@ const setItemQty = (orderItem: orderItem, qty: number) => { } return existingOrderItem }) - : array_remove(OrderScreen.order_items, orderItem) + : OrderScreen.order_items.filter(existingOrderItem => existingOrderItem.id != orderItem.id && !instructionIds.includes(existingOrderItem.id)) + if(qty < 1){ OrderScreen.selected_item_ids = array_remove(OrderScreen.selected_item_ids, orderItem.id) + const lastItem = newItems.filter(orderItem => orderItem.item.item_type == "item")?.last() + OrderScreen.last_added_item_ids = newItems.length > 0 ? [lastItem.id] : [] } - + setOrderItems(newItems) + } const incrementItemQty = (orderItem:orderItem) => setItemQty(orderItem, orderItem.qty+1) @@ -214,9 +219,7 @@ const addInstructionToOrderBox = (instruction: orderItem) => { const addAfter = OrderScreen.selected_item_ids.length ? OrderScreen.selected_item_ids.map(selectedItemId => getLastInstructionItem(selectedItemId).id).unique() : OrderScreen.last_added_item_ids.map(itemId => getLastInstructionItem(itemId).id) - - console.log(addAfter) - + const newItems = OrderScreen.order_items.collect(existingItem => { const newInstruction = createNewOrderItem(instruction.item, instruction.qty, instruction.print_group) addOrderItemsToPulse(newInstruction.id) diff --git a/typescript/types.ts b/typescript/types.ts index a8a098a..7129634 100644 --- a/typescript/types.ts +++ b/typescript/types.ts @@ -111,5 +111,5 @@ interface Array { first(): T last(): T unique(): this - collect(func: (item: T) => any[]): any[] + collect(func: (item: T) => y[]): y[] } \ No newline at end of file