Пример #1
0
        public ActionResult EditExpense(int id)
        {
            var expense = _expenseRepository.FindById(id).MapToView();

            if (expense == null)
            {
                return(HttpNotFound());
            }

            FillDropDownValuesForOfficialCurrency();
            FillDropDownValuesForExpenseCategory();

            // Allowance and Private Car Transportation can NOT be edited
            if (expense.ExpenseCategoryId == 1)
            {
                TempData["allowanceExpenseCanNotBeEditedMessage"] = "Allowance expense is calculated from departure/return dates and can not be edited here!";
                ViewBag.WarningMessage = TempData["allowanceExpenseCanNotBeEditedMessage"].ToString();
                return(PartialView("_InfoMessage"));
            }
            else if (expense.ExpenseCategoryId == 10)
            {
                TempData["privateCarExpenseCanNotBeEditedMessage"] = "Private Car expense is calculated from start/end mileage and can not be edited here!";
                ViewBag.WarningMessage = TempData["privateCarExpenseCanNotBeEditedMessage"].ToString();
                return(PartialView("_InfoMessage"));
            }
            else
            {
                return(PartialView("_EditExpense", expense));
            }
        }
Пример #2
0
            public async Task Handle(Command request, CancellationToken cancellationToken)
            {
                int expenseCategoryId;

                if (request.Category.IsNew)
                {
                    var expenseCategory = new ExpenseCategory(request.Category.Name);
                    await _expenseCategoryRepository.AddAsync(expenseCategory);

                    await _expenseCategoryRepository.SaveChangesAsync();

                    expenseCategoryId = expenseCategory.ExpenseCategoryId;
                }
                else
                {
                    expenseCategoryId = request.Category.ExpenseCategoryId.Value;
                }

                var expense = await _expenseRepository.FindById(request.ExpenseId);

                if (!request.JustThisOne && expense.ExpenseRecipientId.HasValue)
                {
                    var expenseRecipient = await _expenseRecipientRepository.FindById(expense.ExpenseRecipientId.Value);

                    expenseRecipient.ChangeExpenseCategory(expenseCategoryId, expense.ExpenseMonth);
                    await _expenseRecipientRepository.SaveChangesAsync();
                }
                else
                {
                    expense.SetExpenseCategory(expenseCategoryId);
                    await _expenseRepository.SaveChangesAsync();
                }
            }
Пример #3
0
            public async Task Handle(Command request, CancellationToken cancellationToken)
            {
                var expense = await _expenseRepository.FindById(request.ExpenseId);

                if (expense.ExpenseType == ExpenseType.BankTransfer)
                {
                    await _savingsAccountRepository.AddAsync(new SavingsAccount(expense.ExpenseRecipientDetailCode));

                    await _savingsAccountRepository.SaveChangesAsync();
                }
            }
Пример #4
0
            public async Task Handle(Command request, CancellationToken cancellationToken)
            {
                var expenseRecipient = request.Recipient.IsNew
                    ? new ExpenseRecipient(request.Recipient.Name)
                    : await _expenseRecipientRepository.FindById(request.Recipient.ExpenseRecipientId.Value);

                var expense = await _expenseRepository.FindById(request.ExpenseId);

                if (expense.ExpenseType == ExpenseType.PosPayment)
                {
                    expenseRecipient.AddPosTerminal(expense.ExpenseRecipientDetailCode);
                }
                else if (expense.ExpenseType == ExpenseType.BankTransfer)
                {
                    expenseRecipient.AddIban(expense.ExpenseRecipientDetailCode);
                }
                else if (expense.ExpenseType == ExpenseType.DirectDebitPayment)
                {
                    expenseRecipient.AddDirectDebit(expense.ExpenseRecipientDetailCode);
                }

                if (request.Recipient.IsNew)
                {
                    await _expenseRecipientRepository.AddAsync(expenseRecipient);
                }

                await _expenseRecipientRepository.SaveChangesAsync();

                if (expense.ExpenseType == ExpenseType.CashWithdrawal)
                {
                    expense.SetExpenseRecipient(expenseRecipient.ExpenseRecipientId);
                    expense.SetExpenseCategory(expenseRecipient.ExpenseCategoryId);
                    await _expenseRepository.UpdateAsync(expense);

                    await _expenseRepository.SaveChangesAsync();
                }
            }