public static IQueryable <Bill> ApplySearch(this IQueryable <Bill> query, AccountingParams filter) { if (filter.CondominiumId != null) { query = query.Where(x => x.Condominium.Id == filter.CondominiumId); } if (filter.PartnerId != null) { query = query.Where(x => x.Partner.Id == filter.PartnerId); } if (filter.Tag != null) { query = query.Where(x => x.Tags.Any(tag => tag.Label.Equals(filter.Tag))); } return(query); }
public Balance GetBalance(AccountingParams accountingParams) { return(new Balance() { BillsFromPartner = Bills .ApplySearch(accountingParams) .Where(x => !x.IssuedByCondominium) .Sum(x => x.Items.Sum(x => x.Price)), BillsToPartner = Bills .ApplySearch(accountingParams) .Where(x => x.IssuedByCondominium) .Sum(x => x.Items.Sum(x => x.Price)), TransactionFromPartner = Transactions .ApplySearch(accountingParams) .Where(x => x.IsReceived) .Sum(x => x.Amount), TransactionToPartner = Transactions .ApplySearch(accountingParams) .Where(x => !x.IsReceived) .Sum(x => x.Amount) }); }
public Dictionary <string, Balance> GetMonthlyBalanceHistory(AccountingParams accountingParams) { var now = DateTime.Now; var balances = new Dictionary <string, Balance>(); for (int i = 1; i <= 12; i++) { var from = now - TimeSpan.FromDays(30 * i); var to = now - TimeSpan.FromDays(30 * (i - 1)); var label = from.ToString("yyyy.MM.dd.") + " -"; var billsInTime = Bills.Where(x => x.PaymentDeadline > from && x.PaymentDeadline <= to); var transactionsInTime = Transactions.Where(x => x.Date > from && x.Date <= to); balances.Add(label, new Balance() { BillsFromPartner = billsInTime .ApplySearch(accountingParams) .Where(x => !x.IssuedByCondominium) .Sum(x => x.Items.Sum(x => x.Price)), BillsToPartner = billsInTime .ApplySearch(accountingParams) .Where(x => x.IssuedByCondominium) .Sum(x => x.Items.Sum(x => x.Price)), TransactionFromPartner = transactionsInTime .ApplySearch(accountingParams) .Where(x => x.IsReceived) .Sum(x => x.Amount), TransactionToPartner = transactionsInTime .ApplySearch(accountingParams) .Where(x => !x.IsReceived) .Sum(x => x.Amount) }); } return(balances); }
public Dictionary <string, Balance> GetMonthlyBalanceHistory(AccountingParams accountingParams) { return(AccountingRepository.GetMonthlyBalanceHistory(accountingParams)); }
public Balance GetBalance(AccountingParams accountingParams) { return(AccountingRepository.GetBalance(accountingParams)); }
public ActionResult <Dictionary <string, Balance> > GetBalanceHistory( [FromQuery] AccountingParams accountingParams) { return(AccountingService.GetMonthlyBalanceHistory(accountingParams.ToModel())); }
public ActionResult <Balance> GetBalance([FromQuery] AccountingParams accountingParams) { return(AccountingService.GetBalance(accountingParams.ToModel())); }