Utils: Add ActiveAreaCommitments()
This commit is contained in:
@ -488,5 +488,15 @@ namespace Elwig.Helpers {
|
|||||||
return obj.GetHashCode();
|
return obj.GetHashCode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static IQueryable<AreaCom> ActiveAreaCommitments(IQueryable<AreaCom> query) => ActiveAreaCommitments(query, CurrentYear);
|
||||||
|
public static IQueryable<AreaCom> ActiveAreaCommitments(IQueryable<AreaCom> query, int yearTo) {
|
||||||
|
return query.Where(c => (c.YearFrom <= CurrentYear) && (c.YearTo == null || c.YearTo >= yearTo));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static IEnumerable<AreaCom> ActiveAreaCommitments(IEnumerable<AreaCom> query) => ActiveAreaCommitments(query, CurrentYear);
|
||||||
|
public static IEnumerable<AreaCom> ActiveAreaCommitments(IEnumerable<AreaCom> query, int yearTo) {
|
||||||
|
return query.Where(c => (c.YearFrom <= CurrentYear) && (c.YearTo == null || c.YearTo >= yearTo));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -156,9 +156,8 @@ namespace Elwig.Models.Entities {
|
|||||||
[InverseProperty(nameof(AreaCom.Member))]
|
[InverseProperty(nameof(AreaCom.Member))]
|
||||||
public virtual ICollection<AreaCom> AreaCommitments { get; private set; } = null!;
|
public virtual ICollection<AreaCom> AreaCommitments { get; private set; } = null!;
|
||||||
|
|
||||||
public IEnumerable<AreaCom> ActiveAreaCommitments(AppDbContext ctx) {
|
public IQueryable<AreaCom> ActiveAreaCommitments(AppDbContext ctx) {
|
||||||
return ctx.AreaCommitments
|
return Utils.ActiveAreaCommitments(ctx.AreaCommitments.Where(c => c.MgNr == MgNr));
|
||||||
.Where(c => c.MgNr == MgNr && c.YearFrom <= Utils.CurrentYear && (c.YearTo ?? int.MaxValue) >= Utils.CurrentYear);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[InverseProperty(nameof(BillingAddr.Member))]
|
[InverseProperty(nameof(BillingAddr.Member))]
|
||||||
|
@ -82,7 +82,7 @@ namespace Elwig.Windows {
|
|||||||
List<string> filterNames = [];
|
List<string> filterNames = [];
|
||||||
IQueryable<AreaCom> areaComQuery = ctx.AreaCommitments.Where(a => a.MgNr == Member.MgNr).OrderBy(a => a.FbNr);
|
IQueryable<AreaCom> areaComQuery = ctx.AreaCommitments.Where(a => a.MgNr == Member.MgNr).OrderBy(a => a.FbNr);
|
||||||
if (ActiveAreaCommitmentInput.IsChecked == true) {
|
if (ActiveAreaCommitmentInput.IsChecked == true) {
|
||||||
areaComQuery = areaComQuery.Where(a => (a.YearFrom <= Utils.CurrentYear) && (a.YearTo == null || a.YearTo >= Utils.CurrentYear));
|
areaComQuery = Utils.ActiveAreaCommitments(areaComQuery);
|
||||||
filterNames.Add("aktiv");
|
filterNames.Add("aktiv");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -311,7 +311,7 @@ namespace Elwig.Windows {
|
|||||||
|
|
||||||
if (RecipientsAreaComMembersInput.IsChecked == true) {
|
if (RecipientsAreaComMembersInput.IsChecked == true) {
|
||||||
var vtrg = MemberAreaComInput.SelectedItems.Cast<AreaComType>().Select(a => a.VtrgId).ToList();
|
var vtrg = MemberAreaComInput.SelectedItems.Cast<AreaComType>().Select(a => a.VtrgId).ToList();
|
||||||
query = query.Where(m => m.AreaCommitments.Any(a => a.YearFrom <= year && (a.YearTo == null || a.YearTo >= year) && vtrg.Contains(a.VtrgId)));
|
query = query.Where(m => Utils.ActiveAreaCommitments(m.AreaCommitments).Any(c => vtrg.Contains(c.VtrgId)));
|
||||||
} else if (year > 0 && RecipientsDeliveryMembersInput.IsChecked == true) {
|
} else if (year > 0 && RecipientsDeliveryMembersInput.IsChecked == true) {
|
||||||
query = query.Where(m => m.Deliveries.Any(d => d.Year == year));
|
query = query.Where(m => m.Deliveries.Any(d => d.Year == year));
|
||||||
} else if (year > 0 && RecipientsNonDeliveryMembersInput.IsChecked == true) {
|
} else if (year > 0 && RecipientsNonDeliveryMembersInput.IsChecked == true) {
|
||||||
|
@ -100,7 +100,7 @@ namespace Elwig.Windows {
|
|||||||
var allMembers = await ctx.Members.Where(m => m.DefaultKgNr == k.KgNr).CountAsync();
|
var allMembers = await ctx.Members.Where(m => m.DefaultKgNr == k.KgNr).CountAsync();
|
||||||
StatusDefaultKgs.Text += $"{activeMembers:N0} ({allMembers:N0})";
|
StatusDefaultKgs.Text += $"{activeMembers:N0} ({allMembers:N0})";
|
||||||
var year = Utils.CurrentNextSeason;
|
var year = Utils.CurrentNextSeason;
|
||||||
var activeAreaComs = await ctx.AreaCommitments.Where(c => c.KgNr == k.KgNr && c.YearFrom <= year && (c.YearTo == null || c.YearTo >= year)).CountAsync();
|
var activeAreaComs = await Utils.ActiveAreaCommitments(ctx.AreaCommitments.Where(c => c.KgNr == k.KgNr), year).CountAsync();
|
||||||
var allAreaComs = await ctx.AreaCommitments.Where(c => c.KgNr == k.KgNr).CountAsync();
|
var allAreaComs = await ctx.AreaCommitments.Where(c => c.KgNr == k.KgNr).CountAsync();
|
||||||
StatusAreaCommitments.Text += $"{activeAreaComs:N0} ({allAreaComs:N0})";
|
StatusAreaCommitments.Text += $"{activeAreaComs:N0} ({allAreaComs:N0})";
|
||||||
var deliveryParts = await ctx.DeliveryParts.Where(p => p.KgNr == k.KgNr).CountAsync();
|
var deliveryParts = await ctx.DeliveryParts.Where(p => p.KgNr == k.KgNr).CountAsync();
|
||||||
|
Reference in New Issue
Block a user