Added open food/freetext commands
This commit is contained in:
@@ -59,6 +59,7 @@ let getOrderScreenData (id: int) =
|
|||||||
order_screen_pages = Entity.getAllInVenue<order_screen_page_group>
|
order_screen_pages = Entity.getAllInVenue<order_screen_page_group>
|
||||||
sales_categories = Entity.getAllInVenue<sales_category>
|
sales_categories = Entity.getAllInVenue<sales_category>
|
||||||
print_groups = Entity.getAllInVenue<print_group>
|
print_groups = Entity.getAllInVenue<print_group>
|
||||||
|
custom_item = Entity.getAllByColumn<item> "item_code" "OPEN000" |> first
|
||||||
|}
|
|}
|
||||||
|> ajaxSuccess
|
|> ajaxSuccess
|
||||||
|> json
|
|> json
|
||||||
|
|||||||
@@ -38,8 +38,10 @@ let GetFileName (file: string) = Path.GetFileName file
|
|||||||
|
|
||||||
let length (variable: 'T[]) = variable.Length
|
let length (variable: 'T[]) = variable.Length
|
||||||
let first (array: 'a[]) = array[0]
|
let first (array: 'a[]) = array[0]
|
||||||
|
|
||||||
let last (array: 'a[]) = array[array.Length-1]
|
let last (array: 'a[]) = array[array.Length-1]
|
||||||
|
|
||||||
|
let filterFirst (array:'a[]) = if array.Length > 0 then [|array[0]|] else [||]
|
||||||
|
|
||||||
let removeFalseValues (variable: bool[]) = variable |> Array.filter id
|
let removeFalseValues (variable: bool[]) = variable |> Array.filter id
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
open System
|
open System
|
||||||
open DredgePos.Types
|
open DredgePos.Types
|
||||||
|
open FSharp.Data
|
||||||
open Microsoft.AspNetCore.Http
|
open Microsoft.AspNetCore.Http
|
||||||
open Floorplan
|
open Floorplan
|
||||||
open Giraffe
|
open Giraffe
|
||||||
@@ -64,6 +65,13 @@ let loadOrderScreen (ctx: HttpContext) (tableNumber: int) : HttpHandler =
|
|||||||
|> Array.map OrderScreen.getPagesHTML
|
|> Array.map OrderScreen.getPagesHTML
|
||||||
|> String.concat "\n"
|
|> String.concat "\n"
|
||||||
|
|
||||||
|
let customItem =
|
||||||
|
Entity.getAllByColumn<item> "item_code" "OPEN000"
|
||||||
|
|> filterFirst
|
||||||
|
|> Array.map jsonEncode
|
||||||
|
|> String.concat ""
|
||||||
|
|
||||||
|
|
||||||
let variables = map [
|
let variables = map [
|
||||||
"title", "Order"
|
"title", "Order"
|
||||||
"categoryList", categoryList
|
"categoryList", categoryList
|
||||||
@@ -72,6 +80,7 @@ let loadOrderScreen (ctx: HttpContext) (tableNumber: int) : HttpHandler =
|
|||||||
"coverSelectorButton", coverSelectorButton
|
"coverSelectorButton", coverSelectorButton
|
||||||
"covers", coverString
|
"covers", coverString
|
||||||
"salesCategoryOverrideButtons", OrderScreen.generateSalesCategoryOverrideButtons ()
|
"salesCategoryOverrideButtons", OrderScreen.generateSalesCategoryOverrideButtons ()
|
||||||
|
"custom", OrderScreen.generateSalesCategoryOverrideButtons ()
|
||||||
]
|
]
|
||||||
|
|
||||||
let styles = ["dredgepos.orderScreen.css"]
|
let styles = ["dredgepos.orderScreen.css"]
|
||||||
|
|||||||
@@ -90,5 +90,7 @@
|
|||||||
"msgbox_amount_select":"Enter Amount",
|
"msgbox_amount_select":"Enter Amount",
|
||||||
"msgbox_qty_select":"How many would you like to select?",
|
"msgbox_qty_select":"How many would you like to select?",
|
||||||
|
|
||||||
"void_mode": "Void Mode is ON."
|
"void_mode": "Void Mode is ON.",
|
||||||
|
"enter_item_name": "Enter Item Name",
|
||||||
|
"enter_item_price": "Enter Item Price"
|
||||||
}
|
}
|
||||||
@@ -2,6 +2,7 @@ type OrderScreenData = {
|
|||||||
order_screen_pages: order_screen_page[]
|
order_screen_pages: order_screen_page[]
|
||||||
sales_categories: sales_category[]
|
sales_categories: sales_category[]
|
||||||
print_groups: print_group[]
|
print_groups: print_group[]
|
||||||
|
custom_item: item
|
||||||
}
|
}
|
||||||
|
|
||||||
type OrderScreen = {
|
type OrderScreen = {
|
||||||
@@ -14,6 +15,7 @@ type OrderScreen = {
|
|||||||
selected_item_ids: number[]
|
selected_item_ids: number[]
|
||||||
qty_override: number
|
qty_override: number
|
||||||
print_group_override: print_group
|
print_group_override: print_group
|
||||||
|
custom_item: item,
|
||||||
}
|
}
|
||||||
|
|
||||||
let OrderScreen : OrderScreen = {
|
let OrderScreen : OrderScreen = {
|
||||||
@@ -25,7 +27,8 @@ let OrderScreen : OrderScreen = {
|
|||||||
order_item_id_generator: newestId(),
|
order_item_id_generator: newestId(),
|
||||||
selected_item_ids: [],
|
selected_item_ids: [],
|
||||||
qty_override: 1,
|
qty_override: 1,
|
||||||
print_group_override: null
|
print_group_override: null,
|
||||||
|
custom_item: null
|
||||||
}
|
}
|
||||||
|
|
||||||
const loadPageGroup = (e: Event) => {
|
const loadPageGroup = (e: Event) => {
|
||||||
@@ -49,12 +52,16 @@ const setupOrderScreen = (data: OrderScreenData) => {
|
|||||||
OrderScreen.order_screen_pages = data.order_screen_pages
|
OrderScreen.order_screen_pages = data.order_screen_pages
|
||||||
OrderScreen.sales_categories = data.sales_categories
|
OrderScreen.sales_categories = data.sales_categories
|
||||||
OrderScreen.print_groups = data.print_groups
|
OrderScreen.print_groups = data.print_groups
|
||||||
|
OrderScreen.custom_item = data.custom_item
|
||||||
|
|
||||||
updateOrderBoxTotals()
|
updateOrderBoxTotals()
|
||||||
let doc = $(document)
|
let doc = $(document)
|
||||||
doc.on('click', '.nextButton', goToNextPage)
|
doc.on('click', '.nextButton', goToNextPage)
|
||||||
doc.on('click', '.prevButton', goToPrevPage)
|
doc.on('click', '.prevButton', goToPrevPage)
|
||||||
doc.on('click', '.loadPageGroup', loadPageGroup)
|
doc.on('click', '.loadPageGroup', loadPageGroup)
|
||||||
doc.on('click', '[data-primary-action=item]', itemButtonClicked)
|
doc.on('click', '[data-primary-action=item]', itemButtonClicked)
|
||||||
|
doc.on('click', '.freetextButton', freetext)
|
||||||
|
doc.on('click', '.openItemButton', openItem)
|
||||||
doc.on('click', '.orderBoxTable tbody tr', itemRowClicked)
|
doc.on('click', '.orderBoxTable tbody tr', itemRowClicked)
|
||||||
doc.on('click', '.voidButton', voidButtonClicked)
|
doc.on('click', '.voidButton', voidButtonClicked)
|
||||||
doc.on('dblclick', '.voidButton', voidLastItem)
|
doc.on('dblclick', '.voidButton', voidLastItem)
|
||||||
@@ -131,12 +138,15 @@ const addInstructionToOrderBox = (instruction: orderItem) => {
|
|||||||
if(parentRow.is(selectedRow) || !parentRow.hasClass('selected')) {
|
if(parentRow.is(selectedRow) || !parentRow.hasClass('selected')) {
|
||||||
const newRow = createOrderRow(instruction)
|
const newRow = createOrderRow(instruction)
|
||||||
getLastInstructionRow(selectedRow).after(newRow.pulse())
|
getLastInstructionRow(selectedRow).after(newRow.pulse())
|
||||||
|
newRow.setColumnValue(lang('printgroup_header'), selectedRow.getColumnValue(lang('printgroup_header')))
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const lastRow = orderBox.find('tr').last()
|
||||||
orderBox.append(newRow.pulse())
|
orderBox.append(newRow.pulse())
|
||||||
|
newRow.setColumnValue(lang('printgroup_header'), lastRow.getColumnValue(lang('printgroup_header')))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -363,7 +373,6 @@ const scrollToElement = (element: JQuery) => element.get()[0].scrollIntoView()
|
|||||||
|
|
||||||
const overrideQty = () => showVirtualNumpad(lang('multiplier'), 4, false, true, true, qtyOverridden)
|
const overrideQty = () => showVirtualNumpad(lang('multiplier'), 4, false, true, true, qtyOverridden)
|
||||||
|
|
||||||
|
|
||||||
const qtyOverridden = (qtyString: string) => OrderScreen.qty_override = Number(qtyString)
|
const qtyOverridden = (qtyString: string) => OrderScreen.qty_override = Number(qtyString)
|
||||||
|
|
||||||
const printGroupOverride = (e: JQuery.TriggeredEvent) => {
|
const printGroupOverride = (e: JQuery.TriggeredEvent) => {
|
||||||
@@ -387,4 +396,36 @@ const printGroupOverride = (e: JQuery.TriggeredEvent) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const freetext = () => showVirtualKeyboard('', 32,false, freetextSubmitted)
|
||||||
|
|
||||||
|
const freetextSubmitted = (text: string) => {
|
||||||
|
if(text.trim().length < 1) return
|
||||||
|
|
||||||
|
if($('.orderBoxTable tbody tr').length < 1){
|
||||||
|
posAlert(lang('freetext_no_order'))
|
||||||
|
}
|
||||||
|
|
||||||
|
const item = OrderScreen.custom_item
|
||||||
|
item.item_type = 'instruction'
|
||||||
|
item.item_name = text
|
||||||
|
|
||||||
|
addNewItem(item)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const openItem = () => showVirtualKeyboard(lang('enter_item_name'), 32,false, openItemTextSubmitted)
|
||||||
|
|
||||||
|
const openItemTextSubmitted = (text: string) => {
|
||||||
|
const submitFunction = (priceString: string) => {
|
||||||
|
const price = currency(priceString)
|
||||||
|
const item = OrderScreen.custom_item
|
||||||
|
item.item_type = 'item'
|
||||||
|
item.item_name = text
|
||||||
|
item.price1 = price.value
|
||||||
|
|
||||||
|
addNewItem(item)
|
||||||
|
}
|
||||||
|
showVirtualNumpad(lang('enter_item_price'), 4, false, true, true, submitFunction)
|
||||||
|
}
|
||||||
|
|
||||||
$(() => ajax('/orderScreen/getOrderScreenData/1', null, 'get', setupOrderScreen, null, null) )
|
$(() => ajax('/orderScreen/getOrderScreenData/1', null, 'get', setupOrderScreen, null, null) )
|
||||||
@@ -99,6 +99,7 @@ body
|
|||||||
|
|
||||||
.posButton.active, .posButton:active
|
.posButton.active, .posButton:active
|
||||||
border: inset 2px
|
border: inset 2px
|
||||||
|
background: var(--posbutton-background-active)
|
||||||
|
|
||||||
.posButton.voidButton
|
.posButton.voidButton
|
||||||
background: var(--void-button-background)
|
background: var(--void-button-background)
|
||||||
|
|||||||
@@ -48,12 +48,12 @@
|
|||||||
<div class="functionColumn">
|
<div class="functionColumn">
|
||||||
<a class="posButton accumulateButton" data-active-in-mode="accumulate"><!--[lang:accumulate_function]--></a>
|
<a class="posButton accumulateButton" data-active-in-mode="accumulate"><!--[lang:accumulate_function]--></a>
|
||||||
<a class="selectCoversButton posButton"><!--[lang:select_covers]--></a>
|
<a class="selectCoversButton posButton"><!--[lang:select_covers]--></a>
|
||||||
<a class="keyboardButton posButton"><!--[lang:freetext_button]--></a>
|
<a class="freetextButton posButton"><!--[lang:freetext_button]--></a>
|
||||||
<a class="numpadButton posButton"><!--[lang:numpad_button]--></a>
|
<a class="numpadButton posButton"><!--[lang:numpad_button]--></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="functionColumn">
|
<div class="functionColumn">
|
||||||
<a class="posButton voidButton" data-active-in-mode="void"><!--[lang:void]--></a>
|
<a class="posButton voidButton" data-active-in-mode="void"><!--[lang:void]--></a>
|
||||||
<a class="posButton"></a>
|
<a class="posButton openItemButton"></a>
|
||||||
</div>
|
</div>
|
||||||
<div class="functionColumn">
|
<div class="functionColumn">
|
||||||
<a class="posButton"><!--[lang:pay_function]--></a>
|
<a class="posButton"><!--[lang:pay_function]--></a>
|
||||||
|
|||||||
Reference in New Issue
Block a user