public void CreateExpenseGroup(Expense entity) { try { var dataProvider = new ExpenseProvider(_context); dataProvider.Create(entity); dataProvider.Commit(); if (entity.ExpenseId == 0) { entity.ExpenseId = dataProvider.GetGroupByKey(entity.PropertyCode, entity.Category, entity.ExpenseDate.Value); } if (entity.ExpenseId > 0) { entity.ParentId = entity.ExpenseId; dataProvider.Update(entity.ExpenseId, entity); dataProvider.Commit(); } } catch { throw; } }
private void CreateExpenseGroupAsNeeded(SummaryRebalanceTransactionModel model, DateTime transactionDate) { const string RebalanceApprovalNote = "Rebalance"; var provider = new ExpenseProvider(_dbContext); foreach (RebalanceTransactionModel t in model.Transactions) { int id = provider.GetGroupByKey(t.FromProperty, DebitGroupCategory, transactionDate); if (id == 0) { var expense = new Expense { ExpenseDate = transactionDate, Category = DebitGroupCategory, ExpenseAmount = 0, PropertyCode = t.FromProperty, ApprovalStatus = RevenueApprovalStatus.Approved, ApprovedNote = RebalanceApprovalNote, ConfirmationCode = string.Empty, }; provider.CreateExpenseGroup(expense); } id = provider.GetGroupByKey(t.ToProperty, CreditGroupCategory, transactionDate); if (id == 0) { var expense = new Expense { ExpenseDate = transactionDate, Category = CreditGroupCategory, ExpenseAmount = 0, PropertyCode = t.ToProperty, ApprovalStatus = RevenueApprovalStatus.Approved, ApprovedNote = RebalanceApprovalNote, ConfirmationCode = string.Empty, }; provider.CreateExpenseGroup(expense); } } }
private bool CreateExpenseForTransaction(string propertyCode, double amount, DateTime transactionDate, string groupCategory, string category) { var provider = new ExpenseProvider(_dbContext); int groupId = provider.GetGroupByKey(propertyCode, groupCategory, transactionDate); if (groupId > 0) { amount = -Math.Round(amount, 2); var expense = new Expense { ExpenseDate = transactionDate, Category = category, ExpenseAmount = (float)amount, PropertyCode = propertyCode, ParentId = groupId, ApprovalStatus = RevenueApprovalStatus.Approved, ApprovedNote = string.Empty, ConfirmationCode = string.Empty, }; provider.Create(expense); var entity = provider.Retrieve(groupId); if (entity != null) { entity.ExpenseAmount += (float)amount; provider.Update(entity.ExpenseId, entity); } return(true); } else { return(false); } }