Beispiel #1
0
        public AccountingBalancesDto GetCurrentBalances()
        {
            var balances = new AccountingBalancesDto();

            var latestBankTransaction = Context.Transactions.LastOrDefault(t =>
                                                                           t.TransactionSourceTypeId == (int)SiriusEnums.TransactionSourceTypes.BankAccount);

            var latestChurchTransaction = Context.Transactions.LastOrDefault(t =>
                                                                             t.TransactionSourceTypeId == (int)SiriusEnums.TransactionSourceTypes.ChurchAccount);

            if (latestBankTransaction != null)
            {
                balances.BankBalance = latestBankTransaction.Balance;
            }

            if (latestChurchTransaction != null)
            {
                balances.ChurchBalance = latestChurchTransaction.Balance;
            }

            return(balances);
        }
Beispiel #2
0
        public AccountingBalancesDto GetCurrentBalancesThisMonthOnly()
        {
            var balances = new AccountingBalancesDto();

            var currentMonthTransactionsForBank = Context.Transactions.Where(t =>
                                                                             t.TransactionDate >= DateTime.Now.StartOfMonth() &&
                                                                             t.TransactionDate <= DateTime.Now.EndOfMonth() &&
                                                                             t.TransactionSourceTypeId == (int)SiriusEnums.TransactionSourceTypes.BankAccount);

            var currentMonthTransactionsForChurch = Context.Transactions.Where(t =>
                                                                               t.TransactionDate >= DateTime.Now.StartOfMonth() &&
                                                                               t.TransactionDate <= DateTime.Now.EndOfMonth() &&
                                                                               t.TransactionSourceTypeId == (int)SiriusEnums.TransactionSourceTypes.ChurchAccount);

            if (currentMonthTransactionsForBank.Any())
            {
                var sumOfDebit  = currentMonthTransactionsForBank.Sum(s => s.Debit);
                var sumOfCredit = currentMonthTransactionsForBank.Sum(s => s.Credit);
                balances.BankBalance = sumOfDebit - sumOfCredit;
            }
            else
            {
                balances.BankBalance = 0;
            }

            if (currentMonthTransactionsForChurch.Any())
            {
                var sumOfDebit  = currentMonthTransactionsForChurch.Sum(s => s.Debit);
                var sumOfCredit = currentMonthTransactionsForChurch.Sum(s => s.Credit);
                balances.ChurchBalance = sumOfDebit - sumOfCredit;
            }
            else
            {
                balances.ChurchBalance = 0;
            }

            return(balances);
        }