diff --git a/src/main.v b/src/main.v index 4efa9e8..f2b5995 100644 --- a/src/main.v +++ b/src/main.v @@ -99,6 +99,30 @@ fn (mut app App) get_last_delivered() ![]Person { }! } +fn (mut app App) get_ordered_per_hour() ![]PerHour { + people := sql app.db { + select from Person + }! + + grouped := arrays.group_by(people, fn (p Person) string { + return '${p.order_time.hour}:${int(p.order_time.minute / 30) * 30} ${p.order_time.day}/${p.order_time.month}' + }) + + max_per_hour := arrays.max(grouped.values().map(it.len)) or { 1 } + 10 + + mut grouped_arr := maps.to_array(grouped, fn [max_per_hour] (k string, v []Person) PerHour { + return PerHour{ + t: v[0].order_time + label: k + amount: v.len + percentage: int(v.len * 100 / max_per_hour) + color: (if v[0].order_time.hour % 2 == 0 { 'green' } else { 'red' }) + } + }) + grouped_arr.sort(a.t < b.t) + return grouped_arr +} + fn (mut app App) get_finished_per_hour() ![]PerHour { people := sql app.db { select from Person where status == 3 @@ -234,6 +258,10 @@ pub fn (mut app App) home() vweb.Result { app.set_status(400, '') return app.text('${err}') } + ordered_per_hour := app.get_ordered_per_hour() or { + app.set_status(400, '') + return app.text('${err}') + } // pannenkoek per uur ppu := app.get_ppu() or { app.set_status(400, '') diff --git a/src/templates/home.html b/src/templates/home.html index ab5ac1f..cf6ad1f 100644 --- a/src/templates/home.html +++ b/src/templates/home.html @@ -192,7 +192,7 @@
-

Aantal bestelde 🥞

+

Aantal gebakken 🥞

@for ph in finished_per_hour @@ -213,6 +213,28 @@
+
+

Aantal bestelde 🥞

+
+
+ @for ph in ordered_per_hour +
+ @ph.amount
+ @end +
+ +
+ @for ph in finished_per_hour +
@ph.label
+ @end +
+
+