Void functionality complete
This commit is contained in:
@@ -117,14 +117,6 @@ const getOrderBox = () => $('.orderBoxTable tbody')
|
|||||||
const goToNextPage = (e: JQuery.TriggeredEvent) => navigatePage(1, $(e.target))
|
const goToNextPage = (e: JQuery.TriggeredEvent) => navigatePage(1, $(e.target))
|
||||||
const goToPrevPage = (e: JQuery.TriggeredEvent) => navigatePage(-1, $(e.target))
|
const goToPrevPage = (e: JQuery.TriggeredEvent) => navigatePage(-1, $(e.target))
|
||||||
|
|
||||||
const voidInstructionRow = (instructionId: number) => {
|
|
||||||
OrderScreen.order_items = OrderScreen.order_items.filter(orderItem => orderItem.id != instructionId)
|
|
||||||
OrderScreen.selected_item_ids = array_remove(OrderScreen.selected_item_ids, instructionId)
|
|
||||||
renderOrderBox()
|
|
||||||
}
|
|
||||||
|
|
||||||
const voidAllInstructions = (instructions: number[]) => instructions.forEach(voidInstructionRow)
|
|
||||||
|
|
||||||
const setItemQty = (orderItem: orderItem, qty: number) => {
|
const setItemQty = (orderItem: orderItem, qty: number) => {
|
||||||
if(!orderItem || !OrderScreen.order_items.find(existingItem => orderItem.id == existingItem.id)) return;
|
if(!orderItem || !OrderScreen.order_items.find(existingItem => orderItem.id == existingItem.id)) return;
|
||||||
|
|
||||||
@@ -136,10 +128,9 @@ const setItemQty = (orderItem: orderItem, qty: number) => {
|
|||||||
OrderScreen.selected_item_ids = array_remove(OrderScreen.selected_item_ids, orderItem.id)
|
OrderScreen.selected_item_ids = array_remove(OrderScreen.selected_item_ids, orderItem.id)
|
||||||
if(orderItem.item.item_type == "item") {
|
if(orderItem.item.item_type == "item") {
|
||||||
const lastItem = newItems.filter(orderItem => orderItem.item.item_type == "item")?.last()
|
const lastItem = newItems.filter(orderItem => orderItem.item.item_type == "item")?.last()
|
||||||
OrderScreen.last_added_item_ids = newItems.length > 0 ? [lastItem.id] : []
|
OrderScreen.last_added_item_ids = newItems.length > 0 && lastItem ? [lastItem.id] : []
|
||||||
}
|
}
|
||||||
setOrderItems(newItems)
|
setOrderItems(newItems)
|
||||||
voidAllInstructions(instructionIds)
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -197,12 +188,12 @@ const addItemToOrderBox = (newOrderItem:orderItem) => {
|
|||||||
deselectAllRows()
|
deselectAllRows()
|
||||||
}
|
}
|
||||||
|
|
||||||
const getParentItem = (orderItemId: number) => {
|
const getParentItem = (orderItemId: number, itemList:orderItem[]) => {
|
||||||
const itemIndex = OrderScreen.order_items.findIndex(orderItem => orderItem.id === orderItemId);
|
const itemIndex = itemList.findIndex(orderItem => orderItem.id === orderItemId);
|
||||||
if(OrderScreen.order_items[itemIndex].item.item_type == "item"){
|
if(itemList[itemIndex].item.item_type == "item"){
|
||||||
return OrderScreen.order_items[itemIndex]
|
return itemList[itemIndex]
|
||||||
}
|
}
|
||||||
return OrderScreen.order_items
|
return itemList
|
||||||
.filter((orderItem, index) => index < itemIndex && orderItem.item.item_type === 'item')
|
.filter((orderItem, index) => index < itemIndex && orderItem.item.item_type === 'item')
|
||||||
.last()
|
.last()
|
||||||
}
|
}
|
||||||
@@ -397,6 +388,7 @@ const itemRowClicked = (e: JQuery.TriggeredEvent) => {
|
|||||||
if(!row.hasClass('selected')) {
|
if(!row.hasClass('selected')) {
|
||||||
OrderScreen.selected_item_ids = array_push(OrderScreen.selected_item_ids, orderItem.id)
|
OrderScreen.selected_item_ids = array_push(OrderScreen.selected_item_ids, orderItem.id)
|
||||||
getInstructionItems(orderItem.id).forEach(instruction => OrderScreen.selected_item_ids = array_push(OrderScreen.selected_item_ids, instruction.id))
|
getInstructionItems(orderItem.id).forEach(instruction => OrderScreen.selected_item_ids = array_push(OrderScreen.selected_item_ids, instruction.id))
|
||||||
|
OrderScreen.selected_item_ids = OrderScreen.selected_item_ids.unique()
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
OrderScreen.selected_item_ids = array_remove(OrderScreen.selected_item_ids, orderItem.id)
|
OrderScreen.selected_item_ids = array_remove(OrderScreen.selected_item_ids, orderItem.id)
|
||||||
@@ -407,10 +399,18 @@ const itemRowClicked = (e: JQuery.TriggeredEvent) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const voidOrderItems = (orderItemIds: number[]) => {
|
const voidOrderItems = (orderItemIds: number[]) => {
|
||||||
|
const originalOrderItemList = clone(OrderScreen.order_items)
|
||||||
|
const originalSelectedIds = clone(OrderScreen.selected_item_ids)
|
||||||
orderItemIds.forEach(orderItemId => {
|
orderItemIds.forEach(orderItemId => {
|
||||||
const orderItemToVoid = OrderScreen.order_items.find(item => item.id == orderItemId)
|
const orderItemToVoid = OrderScreen.order_items.find(item => item.id == orderItemId)
|
||||||
if(orderItemToVoid)
|
if(orderItemToVoid) {
|
||||||
decrementItemQty(orderItemToVoid)
|
if(orderItemToVoid.item.item_type == "instruction") {
|
||||||
|
const parentItem = getParentItem(orderItemToVoid.id, originalOrderItemList)
|
||||||
|
if(originalSelectedIds.includes(parentItem.id) && parentItem.qty-1 < 1){
|
||||||
|
decrementItemQty(orderItemToVoid)
|
||||||
|
}
|
||||||
|
} else decrementItemQty(orderItemToVoid)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user