public IActionResult Edit(InsertJournalEntryViewModel viewModel) { ValidateNewEntry(viewModel); if (!ModelState.IsValid) { viewModel.Accounts = GetAllAccounts(); return(View("Edit", viewModel)); } _journalEntryGroupRepository.InsertDebitCreditEntries(new LedgerEntry { AccountId = viewModel.DebitAccountId, EntryDate = DateTime.Now, Remarks = viewModel.Remarks, EntryValue = viewModel.EntryAmount }, new LedgerEntry { AccountId = viewModel.CreditAccountId, EntryDate = DateTime.Now, Remarks = viewModel.Remarks, EntryValue = -viewModel.EntryAmount }); return(Index()); }
private void ValidateNewEntry(InsertJournalEntryViewModel viewModel) { if (viewModel.EntryAmount <= 0m) { ModelState.AddModelError(nameof(viewModel.EntryAmount), "La cantidad debe ser mayor que 0"); } if (viewModel.DebitAccountId == viewModel.CreditAccountId) { ModelState.AddModelError(nameof(viewModel.DebitAccountId), "No se puede cargar y abonar la misma cuenta."); } }