Only show active contract area

This commit is contained in:
2023-04-16 23:27:27 +02:00
parent d049424615
commit d4e217efad
3 changed files with 10 additions and 1 deletions

View File

@ -10,6 +10,9 @@ using System.Windows.Controls.Primitives;
namespace Elwig.Helpers { namespace Elwig.Helpers {
public static class Utils { public static class Utils {
public static int CurrentSeason => DateTime.Now.Year - (DateTime.Now.Month <= 3 ? 1 : 0);
public static void SetInputChanged(Control input) { public static void SetInputChanged(Control input) {
var brush = Brushes.Orange; var brush = Brushes.Orange;
if (input is ComboBox cb) { if (input is ComboBox cb) {

View File

@ -1,3 +1,4 @@
using Elwig.Helpers;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -144,6 +145,11 @@ namespace Elwig.Models {
[InverseProperty("Member")] [InverseProperty("Member")]
public virtual ISet<Contract> Contracts { get; private set; } public virtual ISet<Contract> Contracts { get; private set; }
[NotMapped]
public virtual ISet<Contract> ActiveContracts => Contracts
.Where(c => c.YearFrom <= Utils.CurrentSeason && (c.YearTo ?? int.MaxValue) >= Utils.CurrentSeason)
.ToHashSet();
[InverseProperty("Member")] [InverseProperty("Member")]
public virtual BillingAddr BillingAddress { get; private set; } public virtual BillingAddr BillingAddress { get; private set; }

View File

@ -387,7 +387,7 @@ namespace Elwig.Windows {
case "email": ContactEmailInput.IsChecked = true; break; case "email": ContactEmailInput.IsChecked = true; break;
} }
AreaCommitment.Text = $"{m.Contracts.Select(c => c.Area).Sum():N0} m²"; AreaCommitment.Text = $"{m.ActiveContracts.Select(c => c.Area).Sum():N0} m²";
Menu_Member_SendEmail.IsEnabled = m.Email != null; Menu_Member_SendEmail.IsEnabled = m.Email != null;