Merge pull request #9 from dredgy/test_data_update

Migration now orders pages correctly, adds demo floorplan. Some small…
This commit is contained in:
dredgy
2022-07-02 23:29:21 +10:00
committed by GitHub
4 changed files with 137 additions and 27 deletions

View File

@@ -112,7 +112,7 @@ let getTableById (id : int) =
let getRoom (roomId: int) = let getRoom (roomId: int) =
select { select {
table "floorplan_rooms" table "rooms"
where (eq "id" roomId) where (eq "id" roomId)
} |> Database.Select<room> |> first } |> Database.Select<room> |> first

View File

@@ -6,13 +6,24 @@ open System.IO
let spaceButton () = (Entity.GetFirstByColumn<button> "primary_action" "spacer").id let spaceButton () = (Entity.GetFirstByColumn<button> "primary_action" "spacer").id
let getPageOrder pageName =
match pageName with
| "entrees" -> 1
| "mains" -> 2
| "dessert" -> 3
| "beer" -> 4
| "wine" -> 5
| _ -> 0
let CreatePageFromDirectory index (dir: string) = let CreatePageFromDirectory index (dir: string) =
let dirName = DirectoryInfo(dir).Name let dirName = DirectoryInfo(dir).Name
let printGroup = let printGroup =
match dirName.ToLower() with match dirName.ToLower() with
| "beer" | "wine" -> (Entity.GetFirstByColumn<print_group> "name" "Beverage").id | "beer" | "wine" -> (Entity.GetFirstByColumn<print_group> "name" "Drinks").id
| _ -> (Entity.GetFirstByColumn<print_group> "name" "Food").id | "entrees" | "dips" -> (Entity.GetFirstByColumn<print_group> "name" "Entrees").id
| "dessert" -> (Entity.GetFirstByColumn<print_group> "name" "Desserts").id
| _ -> (Entity.GetFirstByColumn<print_group> "name" "Mains").id
let parentName = let parentName =
match dirName.ToLower() with match dirName.ToLower() with
@@ -20,7 +31,7 @@ let CreatePageFromDirectory index (dir: string) =
| _ -> "Food" | _ -> "Food"
let parentCategory = Entity.GetFirstByColumn<sales_category> "name" parentName let parentCategory = Entity.GetFirstByColumn<sales_category> "name" parentName
if dirName.ToLower() <> "dips" && dirName.ToLower() <> "Steak Temperatures" then if dirName.ToLower() <> "dips" && dirName.ToLower() <> "steak temperatures" then
let NewGrid = Entity.Create { let NewGrid = Entity.Create {
id=0 id=0
name=dirName name=dirName
@@ -31,11 +42,19 @@ let CreatePageFromDirectory index (dir: string) =
Entity.Create { Entity.Create {
id=0 id=0
order=index order= getPageOrder (dirName.ToLower())
venue_id=1 venue_id=1
label=dirName label=dirName
grid_id=NewGrid.id grid_id=NewGrid.id
} |> ignore } |> ignore
elif dirName.ToLower() = "steak temperatures" then
Entity.Create {
id=0
name=dirName
rows=4
cols=6
data=""
} |> ignore
else () else ()
Entity.Create { Entity.Create {
@@ -51,38 +70,52 @@ let CreatePageFromDirectory index (dir: string) =
let CreateDefaultPrintGroups (path: string) = let CreateDefaultPrintGroups (path: string) =
Entity.Create { Entity.Create {
id=0 id=0
name="Food" name="Entrees"
printer_id=1 printer_id=1
venue_id=1 venue_id=1
} |> ignore } |> ignore
Entity.Create { Entity.Create {
id=0 id=0
name="Beverage" name="Mains"
printer_id=1 printer_id=1
venue_id=1 venue_id=1
} |> ignore } |> ignore
Entity.Create {
id=0
name="Desserts"
printer_id=1
venue_id=1
} |> ignore
Entity.Create {
id=0
name="Drinks"
printer_id=2
venue_id=1
} |> ignore
path path
let CreateDefaultVenue (path: string) = let CreateDefaultVenue (path: string) =
let venue: venue = { {
id=0 id=0
name="Megalomania" name="Megalomania"
} }
Entity.Create venue |> Entity.Create
|>ignore |>ignore
path path
let CreateDefaultClerk (path: string) = let CreateDefaultClerk (path: string) =
let venue: clerk = { {
id=0 id=0
name="Josh" name="Josh"
login_code=1408 login_code=1408
user_group_id=1 user_group_id=1
} }
Entity.Create venue |> Entity.Create
|>ignore |>ignore
path path
@@ -91,7 +124,7 @@ let CreateDefaultSalesCategories (path: string) =
id=0 id=0
parent=0 parent=0
name="Food" name="Food"
print_group_id=(Entity.GetFirstByColumn<print_group> "name" "Food").id print_group_id=(Entity.GetFirstByColumn<print_group> "name" "Mains").id
venue_id=1 venue_id=1
} |> ignore } |> ignore
@@ -99,7 +132,7 @@ let CreateDefaultSalesCategories (path: string) =
id=0 id=0
parent=0 parent=0
name="Beverage" name="Beverage"
print_group_id=(Entity.GetFirstByColumn<print_group> "name" "Beverage").id print_group_id=(Entity.GetFirstByColumn<print_group> "name" "Drinks").id
venue_id=1 venue_id=1
} |> ignore } |> ignore
@@ -228,7 +261,7 @@ let populateDessertGrid () =
[| [|
getId 0; space; getId 1; space; space ; space; getId 0; space; getId 1; space; space ; space;
space; space; space; space; space; space; space; space; space; space; space; space;
space; getId 2; space; getId 4; space; space; space; getId 2; space; getId 3; space; space;
space; space; space; space; space; space; space; space; space; space; space; space;
space; space; space; space; space; space; space; space; space; space; space; space;
space; space; space; space; space; space; space; space; space; space; space; space;
@@ -283,9 +316,7 @@ let populateSteakTemperaturesGrid () =
let space = spaceButton() let space = spaceButton()
let SalesCategory = Entity.GetFirstByColumn<sales_category> "name" "Steak Temperatures" let SalesCategory = Entity.GetFirstByColumn<sales_category> "name" "Steak Temperatures"
let Temps = Entity.GetAllByColumn<item> "sales_category_id" SalesCategory.id let Temps = Entity.GetAllByColumn<item> "sales_category_id" SalesCategory.id
let grid = let grid = Entity.GetFirstByColumn<grid> "name" "Steak Temperatures"
Entity.GetFirstByColumn<order_screen_page_group> "label" "Steak Temperatures"
|> Entity.GetRelated<grid, order_screen_page_group>
let getId index = let getId index =
match Temps |> Array.tryItem index with match Temps |> Array.tryItem index with
@@ -320,14 +351,13 @@ let CreateItemFromFileName (index: int) (dirName: string) (file: string) =
let fileName = Path.GetFileNameWithoutExtension file let fileName = Path.GetFileNameWithoutExtension file
let itemType = let itemType =
match dirName.ToLower() with match dirName.ToLower() with
| "dips" -> "instruction" | "dips" | "steak temperatures" -> "instruction"
| "steak temperatures" -> "instruction"
| _ -> "item" | _ -> "item"
let categories = (Entity.GetAllByColumn<sales_category> "name" dirName) let categories = (Entity.GetAllByColumn<sales_category> "name" dirName)
let categoryID = let categoryID =
if categories.Length > 0 then categories[0].id if categories.Length > 0 then categories[0].id
else 1 else (Entity.GetFirstByColumn<sales_category> "name" "Mains").id
let newItem = Entity.Create { let newItem = Entity.Create {
id = 0 id = 0
@@ -335,7 +365,7 @@ let CreateItemFromFileName (index: int) (dirName: string) (file: string) =
sales_category_id=categoryID sales_category_id=categoryID
name=fileName name=fileName
item_type=itemType item_type=itemType
price1=10 price1=1000
} }
let classes = let classes =
@@ -365,6 +395,80 @@ let CreateItemsAndButtons (dir: string) =
|> Array.filter (fun file -> Path.GetExtension file = ".png" || Path.GetExtension file = ".jpg") |> Array.filter (fun file -> Path.GetExtension file = ".png" || Path.GetExtension file = ".jpg")
|> Array.iteri (fun index -> CreateItemFromFileName index dirName) |> Array.iteri (fun index -> CreateItemFromFileName index dirName)
let addFloorplanTable tableNumber x y shape width height rotation (room:room) =
Entity.Create {
id=0
table_number=tableNumber
pos_x=x
pos_y=y
shape=shape
width=width
height=height
rotation=rotation
room_id=room.id
venue_id=1
default_covers=2
merged_children=""
previous_state=""
status=0
} |> ignore
room
let PopulateRooms () =
Entity.GetFirstByColumn<room> "name" "Deck & Courtyard"
|> addFloorplanTable 1 1151 1145 "square" 115 115 45
|> addFloorplanTable 2 827 1152 "square" 115 115 0
|> addFloorplanTable 3 836 922 "square" 115 115 0
|> addFloorplanTable 4 956 712 "square" 115 115 0
|> addFloorplanTable 5 535 704 "square" 115 115 0
|> addFloorplanTable 6 265 861 "square" 115 115 0
|> addFloorplanTable 7 265 1031 "square" 115 115 0
|> addFloorplanTable 8 265 1197 "square" 115 115 0
|> addFloorplanTable 19 90 533 "square" 115 115 0
|> addFloorplanTable 20 90 378 "square" 115 115 0
|> addFloorplanTable 21 90 233 "square" 115 115 0
|> addFloorplanTable 22 90 77 "square" 115 115 0
|> addFloorplanTable 23 622 80 "square" 115 115 0
|> addFloorplanTable 24 613 296 "square" 115 115 -45
|> addFloorplanTable 25 498 539 "square" 115 115 0
|> addFloorplanTable 26 854 546 "square" 115 115 0
|> addFloorplanTable 27 932 191 "square" 115 115 45
|> addFloorplanTable 28 1136 79 "square" 115 115 0
|> addFloorplanTable 29 1145 317 "square" 115 115 0
|> addFloorplanTable 30 1145 522 "square" 115 115 0
|> ignore
Entity.GetFirstByColumn<room> "name" "Inside"
|> addFloorplanTable 31 943 1196 "square" 215 90 0
|> addFloorplanTable 32 943 952 "square" 215 90 0
|> addFloorplanTable 33 927 565 "circle" 150 150 0
|> addFloorplanTable 39 725 67 "square" 115 115 0
|> addFloorplanTable 40 685 222 "square" 115 115 0
|> addFloorplanTable 41 685 357 "square" 115 115 0
|> addFloorplanTable 42 725 531 "square" 115 115 0
|> addFloorplanTable 43 185 452 "square" 100 100 0
|> addFloorplanTable 44 185 326 "square" 100 100 0
|> addFloorplanTable 45 185 199 "square" 100 100 0
|> addFloorplanTable 46 185 69 "square" 100 100 0
|> addFloorplanTable 51 685 948 "square" 200 100 0
|> addFloorplanTable 52 685 1198 "square" 200 100 0
|> addFloorplanTable 61 415 762 "circle" 100 100 0
|> addFloorplanTable 62 415 901 "circle" 100 100 0
|> addFloorplanTable 63 415 1039 "circle" 100 100 0
|> addFloorplanTable 64 415 1176 "circle" 100 100 0
|> ignore
Entity.GetFirstByColumn<room> "name" "Function Room"
|> addFloorplanTable 71 1039 361 "square" 110 110 0
|> addFloorplanTable 72 1000 652 "square" 200 100 0
|> addFloorplanTable 73 976 966 "square" 130 130 0
|> addFloorplanTable 74 658 962 "square" 120 115 0
|> addFloorplanTable 75 567 629 "square" 110 200 0
|> addFloorplanTable 76 120 511 "square" 230 100 0
|> addFloorplanTable 77 120 847 "square" 230 100 0
let run () = let run () =
"wwwroot/images/items" "wwwroot/images/items"
|> CreateDefaultVenue |> CreateDefaultVenue
@@ -378,3 +482,4 @@ let run () =
|> Array.iter CreateItemsAndButtons |> Array.iter CreateItemsAndButtons
|> CreateRooms |> CreateRooms
|> PopulateGrids |> PopulateGrids
|> PopulateRooms

View File

@@ -62,7 +62,7 @@ let loadOrderScreenView (ctx: HttpContext) (tableNumber: int) =
let metaTags = [|"viewport", "user-scalable = no, initial-scale=0.8,maximum-scale=0.8 ,shrink-to-fit=yes"|] |> addDefaultMetaTags let metaTags = [|"viewport", "user-scalable = no, initial-scale=0.8,maximum-scale=0.8 ,shrink-to-fit=yes"|] |> addDefaultMetaTags
let printGroupButtons = let printGroupButtons =
Entity.GetAllInVenue<sales_category> Entity.GetAllInVenue<print_group>
|> Array.map View.printGroupButton |> Array.map View.printGroupButton
let orderScreenPageGroupButtons = let orderScreenPageGroupButtons =

View File

@@ -39,8 +39,8 @@ let pageContainer floorplanTable (clerk: clerk) printGroupButtons orderScreenPag
span [_class "voidModeWarning"; VisibleInMode ["void"]] [str (get "void_mode")] span [_class "voidModeWarning"; VisibleInMode ["void"]] [str (get "void_mode")]
] ]
div [_class "orderBoxFooter"] [ div [_class "orderBoxFooter"] [
span [_class "totalPrice"] [str (getAndReplace "totalPrice" ["0.00"])] span [_class "orderBoxTotal"] [str (getAndReplace "totalPrice" ["0.00"])]
small [_class "selectedPrice"] [str (getAndReplace "selectedPrice" ["0.00"])] small [_class "orderBoxSelectedTotal"] [str (getAndReplace "selectedPrice" ["0.00"])]
] ]
] ]
@@ -48,7 +48,12 @@ let pageContainer floorplanTable (clerk: clerk) printGroupButtons orderScreenPag
div [_id "topHalf"] [ div [_id "topHalf"] [
div [_class "functionButtons"] [ div [_class "functionButtons"] [
div [_class "printGroupButtons toggleGroup"] [ div [_class "printGroupButtons toggleGroup"] [
input [_type "hidden"; _class "value"] input [_type "hidden"; _class "value"; _name "print_override"]
posButton "printGroupOverrideButton toggle default" [
(attr "data-value") (string 0)
] [
["default"] |> getAndReplace "print_with" |> str
]
yield! printGroupButtons yield! printGroupButtons
] ]
div [_class "functionColumn"] [ div [_class "functionColumn"] [
@@ -103,7 +108,7 @@ let gridContainer =
] ]
let pageGroupButton (pageGroup: order_screen_page_group) = posButton "loadPageGroup" [(attr "data-page-group-id") (string pageGroup.id)] [str pageGroup.label] let pageGroupButton (pageGroup: order_screen_page_group) = posButton "loadPageGroup" [(attr "data-page-group-id") (string pageGroup.id)] [str pageGroup.label]
let printGroupButton (printGroup: sales_category) = posButton "" [(attr "data-print-group-id") (string printGroup.id)] [str printGroup.name] let printGroupButton (printGroup: print_group) = posButton "toggle printGroupOverrideButton" [(attr "data-value") (string printGroup.id)] [ [printGroup.name] |> getAndReplace "print_with" |> str ]
let itemButtonImage (button: button) = let itemButtonImage (button: button) =
span [ span [