This commit is contained in:
2023-07-21 21:06:45 +03:00
parent 2f108bef4f
commit fa5a8a9001
37 changed files with 2319 additions and 28 deletions
@@ -2,6 +2,7 @@
using Microsoft.EntityFrameworkCore;
using Models.Accounts;
using MyOffice.Data.Models.Currencies;
using MyOffice.Data.Repositories;
public class AccountRepository : AppRepository<Account>, IAccountRepository
@@ -94,8 +95,49 @@ public class AccountRepository : AppRepository<Account>, IAccountRepository
public List<Account> FindAccounts(Guid userId, string term)
{
return _context.Accounts
.Where(x => x.AccessRights.Any(a => a.UserId == userId))
.Where(x => x.AccessRights!.Any(a => a.UserId == userId))
.Where(x => x.Name.Contains(term))
.ToList();
}
public decimal GetPeriodIncome(Guid userId, DateTime from, DateTime to)
{
return _context.Motions
.Where(x => !x.Item.Category!.IsInternal)
.Where(x => x.Account!.AccessRights!.Any(u => u.UserId == userId))
.Where(x => x.DateTime >= from && x.DateTime <= to)
.Sum(x => x.AmountPlus);
}
public decimal GetPeriodOutcome(Guid userId, DateTime from, DateTime to)
{
return _context.Motions
.Where(x => !x.Item.Category!.IsInternal)
.Where(x => x.Account!.AccessRights!.Any(u => u.UserId == userId))
.Where(x => x.DateTime >= from && x.DateTime <= to)
.Sum(x => x.AmountMinus);
}
public List<AccountSimple> GetRestAtDate(Guid userId, DateTime date)
{
return _context.Motions
.Where(x => x.Account!.AccessRights!.Any(u => u.UserId == userId))
.Where(x => x.DateTime <= date)
.GroupBy(x => new
{
x.AccountId,
x.Account.Name,
CurrencyId = x.Account!.CurrencyGlobalId,
CurrencyName = x.Account!.CurrencyGlobal!.Name,
})
.Select(x => new AccountSimple
{
Id = x.Key.AccountId,
Name = x.Key.Name,
CurrencyId = x.Key.CurrencyId,
CurrencyShortName = x.Key.CurrencyName,
Rest = x.Sum(g => (g.AmountPlus - g.AmountMinus))
})
.ToList();
}
}