Default to last purchased price and quantity when adding transaction item

This commit is contained in:
2023-07-28 20:23:31 +01:00
parent 4fc1052829
commit 560c162ee1
7 changed files with 104 additions and 58 deletions

View File

@ -25,19 +25,11 @@ public class ItemsController : Controller
itemsQuery = itemsQuery.Where(item => EF.Functions.ILike(item.Brand + ' ' + item.Name, searchPattern));
}
var lastPurchasesQuery = dbContext.ItemPurchases
.GroupBy(purchase => purchase.ItemId)
.Select(purchases => new
{
ItemId = purchases.Key,
CreatedAt = purchases.Max(purchase => purchase.CreatedAt),
});
var items = await itemsQuery
.OrderBy(item => item.Brand)
.ThenBy(item => item.Name)
.GroupJoin(
lastPurchasesQuery,
dbContext.ItemPurchases.Where(purchase => purchase.IsLastPurchase),
item => item.Id,
lastPurchase => lastPurchase.ItemId,
(item, lastPurchase) => new { item, lastPurchase })