Example #1
0
 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);
 }
Example #2
0
 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)
     });
 }
Example #3
0
        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);
        }
Example #4
0
 public Dictionary <string, Balance> GetMonthlyBalanceHistory(AccountingParams accountingParams)
 {
     return(AccountingRepository.GetMonthlyBalanceHistory(accountingParams));
 }
Example #5
0
 public Balance GetBalance(AccountingParams accountingParams)
 {
     return(AccountingRepository.GetBalance(accountingParams));
 }
Example #6
0
 public ActionResult <Dictionary <string, Balance> > GetBalanceHistory(
     [FromQuery] AccountingParams accountingParams)
 {
     return(AccountingService.GetMonthlyBalanceHistory(accountingParams.ToModel()));
 }
Example #7
0
 public ActionResult <Balance> GetBalance([FromQuery] AccountingParams accountingParams)
 {
     return(AccountingService.GetBalance(accountingParams.ToModel()));
 }