diff --git a/Aberwyn/Controllers/HomeController.cs b/Aberwyn/Controllers/HomeController.cs index 38f94e9..81bdb1b 100644 --- a/Aberwyn/Controllers/HomeController.cs +++ b/Aberwyn/Controllers/HomeController.cs @@ -27,7 +27,14 @@ namespace Aberwyn.Controllers { var isOpen = _context.AppSettings.FirstOrDefault(x => x.Key == "RestaurantIsOpen")?.Value == "True"; ViewBag.RestaurantIsOpen = isOpen; - return View(); + + var now = DateTime.Now; + var showDate = now.Hour >= 18 ? now.Date.AddDays(1) : now.Date; + + var todaysMenu = _menuService.GetMenuForDate(showDate); + + ViewBag.ShowDate = showDate; + return View(todaysMenu); } public IActionResult Privacy() diff --git a/Aberwyn/Data/MenuService.cs b/Aberwyn/Data/MenuService.cs index e0d071c..c5d24de 100644 --- a/Aberwyn/Data/MenuService.cs +++ b/Aberwyn/Data/MenuService.cs @@ -339,6 +339,41 @@ public List GetWeeklyMenu(int weekNumber, int year) return menus; } + public WeeklyMenu? GetMenuForDate(DateTime date) + { + int week = ISOWeek.GetWeekOfYear(date); + int year = date.Year; + + // Gör om till ISO 8601: Måndag = 1, Söndag = 7 + int dayOfWeek = (int)date.DayOfWeek; + if (dayOfWeek == 0) dayOfWeek = 7; + + var menu = _context.WeeklyMenus + .FirstOrDefault(w => w.WeekNumber == week && w.Year == year && w.DayOfWeek == dayOfWeek); + + if (menu != null) + { + var mealIds = new[] { menu.BreakfastMealId, menu.LunchMealId, menu.DinnerMealId } + .Where(id => id.HasValue) + .Select(id => id.Value) + .Distinct() + .ToList(); + + var allMeals = _context.Meals + .Where(m => mealIds.Contains(m.Id)) + .ToDictionary(m => m.Id, m => m.Name); + + if (menu.BreakfastMealId.HasValue && allMeals.TryGetValue(menu.BreakfastMealId.Value, out var breakfast)) + menu.BreakfastMealName = breakfast; + if (menu.LunchMealId.HasValue && allMeals.TryGetValue(menu.LunchMealId.Value, out var lunch)) + menu.LunchMealName = lunch; + if (menu.DinnerMealId.HasValue && allMeals.TryGetValue(menu.DinnerMealId.Value, out var dinner)) + menu.DinnerMealName = dinner; + } + + return menu; + } + public List GetMenuEntriesByDateRange(DateTime startDate, DateTime endDate) { diff --git a/Aberwyn/Views/Budget/Index.cshtml b/Aberwyn/Views/Budget/Index.cshtml index 303cf8b..788539d 100644 --- a/Aberwyn/Views/Budget/Index.cshtml +++ b/Aberwyn/Views/Budget/Index.cshtml @@ -4,230 +4,229 @@ @{ ViewData["Title"] = "Budget"; } +
+
+
+ + + {{ selectedMonthName }} {{ selectedYear }} + + -
-
-
- - - {{ selectedMonthName }} {{ selectedYear }} - - - -
-
- - -
-
- - -
- -
- -
-

Sammanställning

-
    -
  • 💰 Inkomst: {{ getTotalIncome() | number:0 }} kr
  • -
  • 💸 Utgift: {{ getTotalExpense() | number:0 }} kr
  • -
  • 🏦 Sparande: {{ getTotalSaving() | number:0 }} kr
  • -

    - 📈 Kvar: - - {{ getLeftover() | number:0 }} kr - -

    - -
-
-
    -
  • - {{ cat.name }} - {{ getCategorySum(cat) | number:0 }} kr -
  • -
-
- - -
-
-
-

Utgifter

- -

- Totalt: {{ getTotalExpense() | number:0 }} kr -

- -

- Största kategori:
- {{ topExpenseCategory.name }} ({{ topExpenseCategory.percent | number:1 }}%) -

-
- -
- -
-
-
- -
- - - -
-
- -
-
{{ cat.name }}
- - -
- - - - +
+
+ +
-
-
-
+ + +
+ +
+ +
+

Sammanställning

+
    +
  • 💰 Inkomst: {{ getTotalIncome() | number:0 }} kr
  • +
  • 💸 Utgift: {{ getTotalExpense() | number:0 }} kr
  • +
  • 🏦 Sparande: {{ getTotalSaving() | number:0 }} kr
  • +

    + 📈 Kvar: + + {{ getLeftover() | number:0 }} kr + +

    + +
+
+
    +
  • + {{ cat.name }} + {{ getCategorySum(cat) | number:0 }} kr +
  • +
+
+ + +
+
+
+

Utgifter

+ +

+ Totalt: {{ getTotalExpense() | number:0 }} kr +

+ +

+ Största kategori:
+ {{ topExpenseCategory.name }} ({{ topExpenseCategory.percent | number:1 }}%) +

+
+ +
+ +
+
+
+ +
+ + + +
+
+ +
+
{{ cat.name }}
+ + +
+ + + +
+
+
+
+
+
-
- +
+ - - {{ item.name }} - - - {{ item.amount | number:0 }} + + {{ item.name }} + + + {{ item.amount | number:0 }} - -
- -
- - #{{ menuItem.definitionName }} - - -
- - - +
+ + #{{ menuItem.definitionName }} + + +
+ + + +
+ +
+
+ + +
-
+
+
Summa
+
{{ getCategorySum(cat) | number:0 }}
- - +
+ Det finns ingen budgetdata för vald månad ({{ selectedMonth }}/{{ selectedYear }}). +
- -
-
Summa
-
{{ getCategorySum(cat) | number:0 }}
-
- -
- Det finns ingen budgetdata för vald månad ({{ selectedMonth }}/{{ selectedYear }}). -
-
-
- - +
+ + - - -

{{ filteredDefinitions.length }} träffar

-
    -
  • - {{ suggestion.Name }} -
  • -
+ + +

{{ filteredDefinitions.length }} träffar

+
    +
  • + {{ suggestion.Name }} +
  • +
- - + + - - + + - - -
+ + +
-
+
diff --git a/Aberwyn/Views/FoodMenu/Veckomeny.cshtml b/Aberwyn/Views/FoodMenu/Veckomeny.cshtml index 7c79926..8d36044 100644 --- a/Aberwyn/Views/FoodMenu/Veckomeny.cshtml +++ b/Aberwyn/Views/FoodMenu/Veckomeny.cshtml @@ -145,7 +145,7 @@ @foreach (var meal in (List)ViewBag.AvailableMeals) { - + } diff --git a/Aberwyn/Views/Home/Budget.cshtml b/Aberwyn/Views/Home/Budget.cshtml index 28b9226..431ee8c 100644 --- a/Aberwyn/Views/Home/Budget.cshtml +++ b/Aberwyn/Views/Home/Budget.cshtml @@ -7,16 +7,21 @@ + Budget Overview - +
-

Budget Overview

+

Budget Overview

-
+
+ ⏳ Laddar budget... +
+ +
{{ category }} @@ -55,7 +64,7 @@ angular.module('budgetApp', []) .controller('BudgetController', function ($scope, $http) { const today = new Date(); - + $scope.isLoadingBudget = true; // Initialize months and years $scope.months = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12']; $scope.years = [...Array(11).keys()].map(i => today.getFullYear() - 10 + i); @@ -72,11 +81,16 @@ // Automatically filter when month or year changes $scope.filterBudget = function () { + $scope.isLoadingBudget = true; $http.get('/api/budgetapi/items', { params: { month: $scope.selectedMonth, year: $scope.selectedYear } }).then(response => { $scope.budgetItems = response.data; - }).catch(error => console.error("Error fetching budget items:", error)); + $scope.isLoadingBudget = false; + }).catch(error => { + console.error("Error fetching budget items:", error); + $scope.isLoadingBudget = false; + }); }; $scope.getItemsByCategory = function (category) { diff --git a/Aberwyn/Views/Home/Index.cshtml b/Aberwyn/Views/Home/Index.cshtml index 193cfcc..8578759 100644 --- a/Aberwyn/Views/Home/Index.cshtml +++ b/Aberwyn/Views/Home/Index.cshtml @@ -1,18 +1,44 @@ -@{ - ViewData["Title"] = "Welcome to Lewel!"; +@model Aberwyn.Models.WeeklyMenu +@{ + var showDate = (DateTime)ViewBag.ShowDate; + var day = showDate.ToString("dddd", new System.Globalization.CultureInfo("sv-SE")); } + - - - - - - @ViewData["Title"] +
+
+

Välkommen till + L + E + W + E + L

+

Idag är det @day – dagens meny är:

- - -
-

Välkommen

Kika på Menyn om du vill. + @if (Model != null) + { +
+ @if (!string.IsNullOrWhiteSpace(Model.BreakfastMealName)) { +

Frukost: @Model.BreakfastMealName

+ } + @if (!string.IsNullOrWhiteSpace(Model.LunchMealName)) { +

Lunch: @Model.LunchMealName

+ } + @if (!string.IsNullOrWhiteSpace(Model.DinnerMealName)) { +

Middag: @Model.DinnerMealName

+ } + + @if (ViewBag.RestaurantIsOpen as bool? == true) + { +

Pizzerian är öppen!

Klicka här för att Beställa pizza + } +
+ } + else + { +

Ingen meny är inlagd för denna dag.

+ } + + Visa hela veckomenyn
- - +
diff --git a/Aberwyn/Views/Home/Menu.cshtml b/Aberwyn/Views/Home/Menu.cshtml index 461db06..9634090 100644 --- a/Aberwyn/Views/Home/Menu.cshtml +++ b/Aberwyn/Views/Home/Menu.cshtml @@ -32,13 +32,13 @@
{{day}}
diff --git a/Aberwyn/Views/Meal/Index.cshtml b/Aberwyn/Views/Meal/Index.cshtml index 07e4abf..c3e324d 100644 --- a/Aberwyn/Views/Meal/Index.cshtml +++ b/Aberwyn/Views/Meal/Index.cshtml @@ -1,6 +1,3 @@ -@{ - -} @@ -9,6 +6,11 @@ + +