Esempio n. 1
0
        private void CreateExpenseGroupsForTransactions(SummaryRebalanceTransactionModel model, DateTime transactionDate)
        {
            var provider = new ExpenseProvider(_dbContext);

            foreach (RebalanceTransactionModel transaction in model.Transactions)
            {
                // From property
                var     debitCategory = MakeCategory(DebitCategoryPrefix, transaction.ToAddress);
                Expense debitExpense  = provider.GetRebalanceExpenseByKey(transaction.FromProperty, debitCategory, transactionDate);
                if (debitExpense != null)
                {
                    debitExpense.ParentId = debitExpense.ExpenseId;
                    provider.Update(debitExpense.ExpenseId, debitExpense);
                }

                // To Property
                var creditCategory = MakeCategory(CreditCategoryPrefix, transaction.FromAddress);
                var creditExpense  = provider.GetRebalanceExpenseByKey(transaction.ToProperty, creditCategory, transactionDate);
                if (creditExpense != null)
                {
                    creditExpense.ParentId = creditExpense.ExpenseId;
                    provider.Update(creditExpense.ExpenseId, creditExpense);
                }
            }
            CommitChanges();
        }
Esempio n. 2
0
        private bool CreateExpenseForTransaction(string propertyCode, double amount, DateTime transactionDate, string category)
        {
            var     provider = new ExpenseProvider(_dbContext);
            Expense expense  = provider.GetRebalanceExpenseByKey(propertyCode, category, transactionDate);

            if (expense == null)
            {
                amount = -Math.Round(amount, 2);

                expense = new Expense
                {
                    ExpenseDate      = transactionDate,
                    Category         = category,
                    ExpenseAmount    = (float)amount,
                    PropertyCode     = propertyCode,
                    ParentId         = 0,
                    ApprovalStatus   = RevenueApprovalStatus.Approved,
                    ApprovedNote     = "Rebalance",
                    ConfirmationCode = string.Empty,
                };

                provider.Create(expense);
                return(true);
            }
            else
            {
                return(false);
            }
        }