Adding instructions and items now complete
This commit is contained in:
656
package-lock.json
generated
656
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -8,7 +8,7 @@
|
|||||||
"removeComments":false,
|
"removeComments":false,
|
||||||
"preserveConstEnums":true,
|
"preserveConstEnums":true,
|
||||||
"outDir":"wwwroot/scripts",
|
"outDir":"wwwroot/scripts",
|
||||||
"target":"ES2016",
|
"target":"ESNext",
|
||||||
"sourceMap":true,
|
"sourceMap":true,
|
||||||
"moduleResolution": "node"
|
"moduleResolution": "node"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -7,34 +7,34 @@ type OrderScreenData = {
|
|||||||
|
|
||||||
type OrderScreen = {
|
type OrderScreen = {
|
||||||
order_screen_pages: order_screen_page[]
|
order_screen_pages: order_screen_page[]
|
||||||
last_added_item: orderItem
|
|
||||||
order_items: orderItem[]
|
order_items: orderItem[]
|
||||||
sales_categories: sales_category[]
|
sales_categories: sales_category[]
|
||||||
print_groups: print_group[]
|
print_groups: print_group[]
|
||||||
order_item_id_generator: Generator
|
order_item_id_generator: Generator
|
||||||
selected_item_ids: number[]
|
selected_item_ids: number[]
|
||||||
pulse_order_item_ids: number[]
|
order_item_ids_to_pulse: number[]
|
||||||
qty_override: number
|
qty_override: number
|
||||||
print_group_override: print_group
|
print_group_override: print_group
|
||||||
custom_item: item,
|
custom_item: item,
|
||||||
selected_cover: number
|
selected_cover: number
|
||||||
table: floorplan_table,
|
table: floorplan_table,
|
||||||
|
last_added_item_ids: number[]
|
||||||
}
|
}
|
||||||
|
|
||||||
let OrderScreen : OrderScreen = {
|
let OrderScreen : OrderScreen = {
|
||||||
order_screen_pages: null,
|
order_screen_pages: null,
|
||||||
last_added_item: null,
|
|
||||||
order_items: [],
|
order_items: [],
|
||||||
print_groups: [],
|
print_groups: [],
|
||||||
sales_categories: [],
|
sales_categories: [],
|
||||||
order_item_id_generator: newestId(),
|
order_item_id_generator: newestId(),
|
||||||
selected_item_ids: [],
|
selected_item_ids: [],
|
||||||
pulse_order_item_ids: [],
|
order_item_ids_to_pulse: [],
|
||||||
qty_override: 1,
|
qty_override: 1,
|
||||||
print_group_override: null,
|
print_group_override: null,
|
||||||
custom_item: null,
|
custom_item: null,
|
||||||
selected_cover: 0,
|
selected_cover: 0,
|
||||||
table: null,
|
table: null,
|
||||||
|
last_added_item_ids: [],
|
||||||
}
|
}
|
||||||
|
|
||||||
const loadPageGroup = (e: Event) => {
|
const loadPageGroup = (e: Event) => {
|
||||||
@@ -142,8 +142,8 @@ const deselectAllRows = () => {
|
|||||||
$('tr.selected').removeClass('selected')
|
$('tr.selected').removeClass('selected')
|
||||||
}
|
}
|
||||||
|
|
||||||
const addOrderItemsToPulse = (id: number) => OrderScreen.pulse_order_item_ids = array_push(OrderScreen.pulse_order_item_ids, id)
|
const addOrderItemsToPulse = (id: number) => OrderScreen.order_item_ids_to_pulse = array_push(OrderScreen.order_item_ids_to_pulse, id)
|
||||||
const removeOrderItemsToPulse = (id: number) => OrderScreen.pulse_order_item_ids = array_remove(OrderScreen.pulse_order_item_ids, id)
|
const removeOrderItemsToPulse = (id: number) => OrderScreen.order_item_ids_to_pulse = array_remove(OrderScreen.order_item_ids_to_pulse, id)
|
||||||
|
|
||||||
const addItemToOrderBox = (newOrderItem:orderItem) => {
|
const addItemToOrderBox = (newOrderItem:orderItem) => {
|
||||||
const existingItems = OrderScreen.order_items
|
const existingItems = OrderScreen.order_items
|
||||||
@@ -154,8 +154,9 @@ const addItemToOrderBox = (newOrderItem:orderItem) => {
|
|||||||
)
|
)
|
||||||
|
|
||||||
if(existingItems.length > 0 && isInMode('accumulate')) {
|
if(existingItems.length > 0 && isInMode('accumulate')) {
|
||||||
incrementItemQty(existingItems[0])
|
|
||||||
addOrderItemsToPulse(existingItems[0].id)
|
addOrderItemsToPulse(existingItems[0].id)
|
||||||
|
incrementItemQty(existingItems[0])
|
||||||
|
OrderScreen.last_added_item_ids = [existingItems[0].id]
|
||||||
} else {
|
} else {
|
||||||
addOrderItemsToPulse(newOrderItem.id)
|
addOrderItemsToPulse(newOrderItem.id)
|
||||||
if(!OrderScreen.selected_item_ids.length) {
|
if(!OrderScreen.selected_item_ids.length) {
|
||||||
@@ -165,15 +166,15 @@ const addItemToOrderBox = (newOrderItem:orderItem) => {
|
|||||||
const newItems =
|
const newItems =
|
||||||
OrderScreen.order_items
|
OrderScreen.order_items
|
||||||
.collect(existingOrderItem => {
|
.collect(existingOrderItem => {
|
||||||
const firstSelectedItemId = getLastInstructionItem(OrderScreen.selected_item_ids.first())?.id
|
const firstSelectedItemId = getLastInstructionItem(OrderScreen.selected_item_ids.first()).id
|
||||||
return firstSelectedItemId == existingOrderItem.id
|
return firstSelectedItemId == existingOrderItem.id
|
||||||
? [existingOrderItem, newOrderItem]
|
? [existingOrderItem, newOrderItem]
|
||||||
: [existingOrderItem]
|
: [existingOrderItem]
|
||||||
})
|
})
|
||||||
setOrderItems(newItems)
|
setOrderItems(newItems)
|
||||||
}
|
}
|
||||||
|
OrderScreen.last_added_item_ids = [newOrderItem.id]
|
||||||
}
|
}
|
||||||
|
|
||||||
deselectAllRows()
|
deselectAllRows()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -189,16 +190,19 @@ const getParentItem = (orderItemId: number) => {
|
|||||||
|
|
||||||
const getInstructionItems = (orderItemId: number) => {
|
const getInstructionItems = (orderItemId: number) => {
|
||||||
const itemIndex = OrderScreen.order_items.findIndex(orderItem => orderItem.id === orderItemId);
|
const itemIndex = OrderScreen.order_items.findIndex(orderItem => orderItem.id === orderItemId);
|
||||||
|
|
||||||
if(!OrderScreen.order_items[itemIndex+1] || OrderScreen.order_items[itemIndex+1].item.item_type == "item")
|
if(!OrderScreen.order_items[itemIndex+1] || OrderScreen.order_items[itemIndex+1].item.item_type == "item")
|
||||||
return [OrderScreen.order_items[itemIndex]]
|
return [OrderScreen.order_items[itemIndex]]
|
||||||
|
|
||||||
const nextItem =
|
const nextItem =
|
||||||
OrderScreen.order_items
|
OrderScreen.order_items
|
||||||
.filter((orderItem, index) => index > itemIndex && orderItem.item.item_type === 'item')
|
.filter((orderItem, index) => index > itemIndex && orderItem.item.item_type === 'item')
|
||||||
.first()
|
?.first()
|
||||||
|
if(!nextItem) {
|
||||||
|
return OrderScreen.order_items.filter((orderItem, index) => index > itemIndex)
|
||||||
|
}
|
||||||
const nextItemIndex = OrderScreen.order_items.findIndex(orderItem => orderItem.id === nextItem.id);
|
const nextItemIndex = OrderScreen.order_items.findIndex(orderItem => orderItem.id === nextItem.id);
|
||||||
return OrderScreen.order_items.slice(itemIndex, nextItemIndex)
|
return OrderScreen.order_items.slice(itemIndex, nextItemIndex)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const getLastInstructionItem = (orderItemId: number) => getInstructionItems(orderItemId).last()
|
const getLastInstructionItem = (orderItemId: number) => getInstructionItems(orderItemId).last()
|
||||||
@@ -206,10 +210,13 @@ const getLastInstructionItem = (orderItemId: number) => getInstructionItems(orde
|
|||||||
const addInstructionToOrderBox = (instruction: orderItem) => {
|
const addInstructionToOrderBox = (instruction: orderItem) => {
|
||||||
//If no items are added, then you can't add an instruction row.
|
//If no items are added, then you can't add an instruction row.
|
||||||
if(!OrderScreen.order_items.length) return
|
if(!OrderScreen.order_items.length) return
|
||||||
|
|
||||||
const addAfter = OrderScreen.selected_item_ids.length
|
const addAfter = OrderScreen.selected_item_ids.length
|
||||||
? OrderScreen.selected_item_ids.map(selectedItemId => getLastInstructionItem(selectedItemId).id).unique()
|
? OrderScreen.selected_item_ids.map(selectedItemId => getLastInstructionItem(selectedItemId).id).unique()
|
||||||
: [getLastInstructionItem(OrderScreen.order_items.last().id).id]
|
: OrderScreen.last_added_item_ids.map(itemId => getLastInstructionItem(itemId).id)
|
||||||
|
|
||||||
|
console.log(addAfter)
|
||||||
|
|
||||||
const newItems = OrderScreen.order_items.collect(existingItem => {
|
const newItems = OrderScreen.order_items.collect(existingItem => {
|
||||||
const newInstruction = createNewOrderItem(instruction.item, instruction.qty, instruction.print_group)
|
const newInstruction = createNewOrderItem(instruction.item, instruction.qty, instruction.print_group)
|
||||||
addOrderItemsToPulse(newInstruction.id)
|
addOrderItemsToPulse(newInstruction.id)
|
||||||
@@ -258,7 +265,7 @@ const renderOrderBox = () => {
|
|||||||
newRow.addClass('selected')
|
newRow.addClass('selected')
|
||||||
}
|
}
|
||||||
|
|
||||||
if(OrderScreen.pulse_order_item_ids.includes(orderItem.id)){
|
if(OrderScreen.order_item_ids_to_pulse.includes(orderItem.id)){
|
||||||
newRow.pulse()
|
newRow.pulse()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -268,7 +275,6 @@ const renderOrderBox = () => {
|
|||||||
if(element) {
|
if(element) {
|
||||||
element.scrollIntoView()
|
element.scrollIntoView()
|
||||||
}
|
}
|
||||||
OrderScreen.last_added_item = null
|
|
||||||
updateOrderBoxTotals()
|
updateOrderBoxTotals()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -111,5 +111,5 @@ interface Array<T> {
|
|||||||
first(): T
|
first(): T
|
||||||
last(): T
|
last(): T
|
||||||
unique(): this
|
unique(): this
|
||||||
collect(func: (item: T) => T[]): T[]
|
collect(func: (item: T) => any[]): any[]
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user